atom0s Moderator Reputation: 198
Joined: 25 Jan 2006 Posts: 8517 Location: 127.0.0.1
|
Posted: Mon Jul 25, 2011 12:35 pm Post subject: The Lame Game - Lua Edition |
|
|
If you know about the easter egg in Cheat Engine called (TLG - The Lame Game) you'll understand what this is. This is a similar game written using the Lua engine in CE. I used a label rather then the stick figure image due to not wanting to require extra files to run the script. It's fairly basic and pointless but figured I'd post it anyway.
Code: |
--[[
TLG: The Lame Game - Lua Edition
coded by: Wiccaan
]]--
local lame_game =
{
-- Form Variables
form_width = 490,
form_height = 375,
-- Game Variables
score = 0,
pos_x = 0,
pos_y = 0,
canclick = false,
-- Control Objects
_formobj = nil,
_timerobj = nil,
_scoreobj = nil,
_entityobj = nil,
};
------------------------------------------------------------------------
-- func: math.clamp
-- desc: Keeps the given input value within the low/high values.
------------------------------------------------------------------------
function math.clamp( input, low, high )
if ( input > high ) then input = high; end
if ( input < low ) then input = low; end
return input;
end
------------------------------------------------------------------------
-- func: lame_game:start
-- desc: Initializes the game information.
------------------------------------------------------------------------
function lame_game:start( )
-- Setup form..
self._formobj = createForm();
form_centerScreen( self._formobj );
control_setSize( self._formobj, self.form_width, self.form_height );
control_setCaption( self._formobj, 'TLG: The Lame Game - Lua Edition' );
-- Prepare score label..
self._scoreobj = createLabel( self._formobj );
control_setCaption( self._scoreobj, string.format( 'Current Score: %d', self.score ) );
-- Prepare entity object..
self._entityobj = createLabel( self._formobj );
control_setCaption( self._entityobj, '[ CLICK ]' );
control_onClick( self._entityobj, function( ) self:onClick() end );
-- Prepare timer..
self._timerobj = createTimer( self._formobj, false );
timer_setInterval( self._timerobj, 1000 );
timer_onTimer( self._timerobj, function( ) self:onTimer() end );
timer_setEnabled( self._timerobj, true );
end
------------------------------------------------------------------------
-- func: lame_game:onTimer
-- desc: Timer callback that is called each interval.
------------------------------------------------------------------------
function lame_game:onTimer( )
-- Allow new clicks..
self.canclick = true;
-- Move entity randomly..
self.pos_x = math.clamp( math.random( 1, self.form_width ), 1, self.form_width - 50 );
self.pos_y = math.clamp( math.random( 1, self.form_height ), 1, self.form_height - 15 );
control_setPosition( self._entityobj, self.pos_x, self.pos_y );
-- Update score..
control_setCaption( self._scoreobj, string.format( 'Current Score: %d', self.score ) );
end
------------------------------------------------------------------------
-- func: lame_game:onClick
-- desc: Control callback to handle click events.
------------------------------------------------------------------------
function lame_game:onClick( )
if self.canclick == false then
return;
end
-- User clicked, update score and disable clicks.
self.score = self.score + 1;
self.canclick = false;
control_setCaption( self._scoreobj, string.format( 'Current Score: %d', self.score ) );
end
lame_game:start( );
|
_________________
- Retired. |
|