Fixed quotes and spelling in new actor examples. Fixed RollingNumbers to do nothing instead of crashing if it's rendered before it loads its metrics.

This commit is contained in:
Kyzentun
2015-02-05 18:56:56 -07:00
parent fa560d755c
commit 1de3cce1cd
5 changed files with 47 additions and 24 deletions
@@ -1,17 +1,17 @@
-- A simple BitmapText example. Puts Hello World! in the center of the screen.
-- A simple BitmapText example. Puts "Hello World!" in the center of the screen.
-- BitmapTexts put text on the screen (pretty self-explanatory)
Def.BitmapText{
Font=Common normal,
-- Chooses the font for the text. The font needs to be in the themes Fonts folder or
-- the fallback themes Fonts folder. By default, Common normal is
-- _open sans semibold.
-- File is used in XML files from ITG, instead of Font. Its deprecated.
-- You shouldnt use it.
Font="Common Normal",
-- Chooses the font for the text. The font needs to be in the theme's Fonts
-- folder or the fallback theme's Fonts folder. By default, Common Normal
-- is "_open sans semibold".
-- File is used in XML files from ITG, instead of Font. It's deprecated.
-- You shouldn't use it.
Text=Hello World!,
Text="Hello World!",
-- Chooses what the BitmapText will show. Pretty straightforward.
OnCommand=cmd(Center)
OnCommand= function(self) self:Center() end,
-- Puts the text in the center in the center of the screen.
}
@@ -4,16 +4,16 @@
Def.Quad{
-- Quads have no special attributes, but they do have a few special functions.
OnCommand=function(self)
self:SetWidth(40) -- scales the quads width to 40
self:SetHeight(40) -- scales the quads height to 40
self:SetWidth(40) -- scales the quad's width to 40
self:SetHeight(40) -- scales the quad's height to 40
-- SetWidth and SetHeight must be capitalized to work.
-- SetSize (or setsize) is a shorthand for SetWidth and SetHeight.
-- The syntax is setsize(x, y), where x is the width and y is the height.
-- The default width and height is 1, which is less than 1 pixel on some displays
self:diffuse(color(Red))
self:diffuse(Color.Red)
-- Sets the color to red.
-- A list of all possible names for the colors can be found in
-- A list of all possible names for the colors can be found in
-- Themes/_fallback/Scripts/02 Colors.lua
self:Center()
@@ -4,35 +4,40 @@
-- To test this, put this in your metrics ini:
[RollingNumbersExample]
Fallback=RollingNumbers
Fallback="RollingNumbers"
TextFormat=%04.0f
TextFormat="%04.0f"
ApproachSeconds=10
Commify=true
LeadingZeroMultiplyColor=Color.Orange
-- Be sure to reload the metrics if StepMania is currently open.
-- Lets go over the parts:
-- TextFormat: How many trailing zeroes you want, using the format xx.0f, where xx
-- Let's go over the parts:
-- TextFormat: How many trailing zeroes you want, using the format "xx.0f", where xx
-- is the number.
-- ApproachSeconds: How many seconds it takes to reach the target number (explained later)
-- Commify: Whether or not to use commas every 3 digits, i.e. 1,000 vs 1000.
-- Commify can only be true or false.
-- LeadingZeroMultiplyColor: The color of the closest zero to the number.
-- For example, if you were to make LeadingZeroMultiplyColor red, and
-- your RollingNumber was at 100 with a TextFormat of %04.0f, then
-- your RollingNumber was at 100 with a TextFormat of "%04.0f", then
-- then the zero before the 1 (0100) would be red.
-- Now, for the actual thing:
Def.RollingNumbers{
-- RollingNumbers derives from BitmapText, so youre gonna need a font.
Font=Common Normal,
-- RollingNumbers derives from BitmapText, so you're gonna need a font.
Font="Common Normal",
-- Text is unnecessary however, and may break the game.
-- The Text field is ignored.
-- Lets load the metrics and set our target number
OnCommand=cmd(Load,RollingNumbersExample;targetnumber,1000)
-- Let's load the metrics and set our target number
-- If you don't call Load, your RollingNumbers actor will not be rendered
-- and you won't be able to set the target number.
OnCommand= function(self)
self:Load("RollingNumbersExample"):targetnumber(1000)
:xy(_screen.cx, _screen.cy - 100)
end
}
-- Your RollingNumber should start at zero, then take 10 seconds to reach 1000.
+18 -1
View File
@@ -13,10 +13,12 @@ RollingNumbers::RollingNumbers()
m_fCurrentNumber = 0;
m_fTargetNumber = 0;
m_fScoreVelocity = 0;
m_metrics_loaded= false;
}
void RollingNumbers::Load( const RString &sMetricsGroup )
{
m_metrics_loaded= true;
TEXT_FORMAT.Load(sMetricsGroup, "TextFormat");
APPROACH_SECONDS.Load(sMetricsGroup, "ApproachSeconds");
COMMIFY.Load(sMetricsGroup, "Commify");
@@ -40,6 +42,10 @@ void RollingNumbers::DrawPart(RageColor const* diffuse, RageColor const& stroke,
void RollingNumbers::DrawPrimitives()
{
if(!m_metrics_loaded)
{
return;
}
RageColor diffuse_orig[NUM_DIFFUSE_COLORS];
RageColor diffuse_temp[NUM_DIFFUSE_COLORS];
RageColor stroke_orig= GetCurrStrokeColor();
@@ -93,6 +99,11 @@ void RollingNumbers::Update( float fDeltaTime )
void RollingNumbers::SetTargetNumber( float fTargetNumber )
{
if(!m_metrics_loaded)
{
LuaHelpers::ReportScriptError("You must use Load to load the metrics for a RollingNumbers actor before doing anything else.");
return;
}
if( fTargetNumber == m_fTargetNumber ) // no change
return;
m_fTargetNumber = fTargetNumber;
@@ -109,9 +120,15 @@ void RollingNumbers::SetTargetNumber( float fTargetNumber )
void RollingNumbers::UpdateText()
{
if(!m_metrics_loaded)
{
return;
}
RString s = ssprintf( TEXT_FORMAT.GetValue(), m_fCurrentNumber );
if( COMMIFY )
if(COMMIFY)
{
s = Commify( s );
}
SetText( s );
}
+1
View File
@@ -40,6 +40,7 @@ private:
float m_fTargetNumber;
/** @brief The speed we are trying to reach the target number. */
float m_fScoreVelocity;
bool m_metrics_loaded;
};
#endif