Skip to content

Instantly share code, notes, and snippets.

@codetravis
codetravis / gist:69c9b5c91bcb4cae3972
Created March 9, 2015 01:50
Basic 2D Velocity Calculation
Local deltax:Float = Abs(target.x - position.x)
Local deltay:Float = Abs(target.y - position.y)
Local sum_delta:Float = deltax + deltay
If (target.x > position.x)
velocity.x = speed * (deltax / sum_delta)
Else If (target.x < position.x)
velocity.x = -speed * (deltax / sum_delta)
End
@codetravis
codetravis / five_one.monkey
Last active November 6, 2016 23:33
5.1 Import Fantom X
#FantomX_UsePhysics = True
Import fantomX
Class Game Extends App
Field engine:ftEngine
Method OnCreate:Int()
engine = New ftEngine
@codetravis
codetravis / five_two.monkey
Last active November 6, 2016 23:33
5.2 Add Default Layer and Scene
#FantomX_UsePhysics = True
Import fantomX
Class Game Extends App
Field engine:ftEngine
Field default_layer:ftLayer
Field default_scene:ftScene
@codetravis
codetravis / five_three.monkey
Last active November 6, 2016 23:32
5.3 OnUpdate and OnRender Function Setup
#FantomX_UsePhysics = True
Import fantomX
Class Game Extends App
Field engine:ftEngine
Field default_layer:ftLayer
Field default_scene:ftScene
@codetravis
codetravis / six_one.monkey
Last active November 26, 2016 18:34
6.1 Character Class
' character.monkey
Import fantomX
Class Character
Method New()
End
End
@codetravis
codetravis / six_two.monkey
Created November 26, 2016 18:23
6.2 Creating a box and adding it to the Character class
' main.monkey OnCreate class
Method OnCreate()
engine = New ftEngine
default_scene = engine.GetDefaultScene()
default_layer = engine.GetDefaultLayer()
' create a box ftObject
Local box:ftObject = engine.CreateBox(120, 20, engine.GetCanvasWidth()/2, engine.GetCanvasHeight()/2)
box.SetColor(0, 70, 70)
@codetravis
codetravis / six_three.monkey
Created November 26, 2016 18:30
6.3 Tell Fantom Engine to render objects
' main.monkey OnRender function
Method OnRender()
engine.Clear(255, 0, 0)
engine.Render()
engine.SetColor(0, 70, 70)
engine.GetCanvas().DrawText("Last Touch: " + engine.GetTouchX() + ", " + engine.GetTouchY(),
engine.GetLocalX(10), engine.GetLocalY(10))
engine.RenderFlush()
End
@codetravis
codetravis / six_four.monkey
Created November 26, 2016 18:39
6.4 Add update method to the character class
Import fantomX
Class Character
Field box:ftObject
Method New(box:ftObject)
Self.box = box
End
@codetravis
codetravis / six_five.monkey
Created November 26, 2016 18:41
6.5 Add player update to game's OnUpdate method
' main.monkey
Method OnUpdate()
Local time_delta:Float = Float(engine.CalcDeltaTime())/60.0
' Call the player's Character class update method
player.Update()
If engine.GetPaused() = False
engine.Update(time_delta)
End
@codetravis
codetravis / six_six.monkey
Created November 26, 2016 19:25
6.6 adding boundary checks to player movement so they can't leave the screen
' character.monkey
Method Update(game_width:Float, game_height:Float)
Local x_speed:Float = Self.box.GetSpeedX()
Local y_speed:Float = Self.box.GetSpeedY()
If (KeyDown(KEY_LEFT))
Self.box.SetSpeedX(x_speed - 1.0)
Else If (KeyDown(KEY_RIGHT))
Self.box.SetSpeedX(x_speed + 1.0)
End