Skip to content

Instantly share code, notes, and snippets.

@codetravis
codetravis / seven_one.monkey
Created December 6, 2016 12:54
7.1 Adding collection for enemies
#FantomX_UsePhysics = True
Import fantomX
Import character
Class Game Extends App
Field engine:ftEngine
Field default_layer:ftLayer
Field default_scene:ftScene
@codetravis
codetravis / seven_two.monkey
Created December 6, 2016 12:57
7.2 Modify the character class to only respond to controls if it is a player character
Import fantomX
Class Character
Field box:ftObject
Field is_player:Bool
Method New(box:ftObject, player:Bool=False)
Self.box = box
Self.is_player = player
@codetravis
codetravis / seven_three.monkey
Created December 6, 2016 13:03
7.3 Change player creation code to signify that it is a player controlled character
Method OnCreate()
engine = New ftEngine
default_scene = engine.GetDefaultScene()
default_layer = engine.GetDefaultLayer()
Local box:ftObject = engine.CreateBox(120, 20, engine.GetCanvasWidth()/2, engine.GetCanvasHeight()/2)
box.SetColor(0, 70, 70)
box.SetMaxSpeed(20.0)
box.SetMinSpeed(-20.0)
@codetravis
codetravis / seven_four.monkey
Created December 6, 2016 13:21
7.4 Add enemy generator
#FantomX_UsePhysics = True
Import fantomX
Import character
Class Game Extends App
Field engine:ftEngine
Field default_layer:ftLayer
Field default_scene:ftScene
@codetravis
codetravis / seven_five.monkey
Last active December 9, 2016 14:11
7.5 Improve enemy generator to make it more interesting
#FantomX_UsePhysics = True
Import fantomX
Import character
Class Game Extends App
Field engine:ftEngine
Field default_layer:ftLayer
Field default_scene:ftScene
@codetravis
codetravis / seven_six.monkey
Last active December 9, 2016 14:16
7.6 Add collision groups and check for collision
Field last_enemy_time:Float
Field next_enemy_interval:Float
' create named collision groups
Const PLAYER_GROUP:Int = 1
Const ENEMY_GROUP:Int = 2
Method OnCreate()
Self.engine = New ftEngine
@codetravis
codetravis / seven_seven.monkey
Last active December 9, 2016 14:16
7.7 Custom extended ftEngine
Import fantomX
Class CustomEngine Extends ftEngine
Method OnObjectCollision:Int(obj_one:ftObject, obj_two:ftObject)
If (obj_one.GetText() = "PLAYER" And obj_two.GetText() = "ENEMY")
obj_two.SetText("DESTROYED")
obj_two.SetColWith(obj_one.GetColGroup(), False)
Else If (obj_two.GetText() = "PLAYER" And obj_one.GetText() = "ENEMY")
obj_one.SetText("DESTROYED")
@codetravis
codetravis / seven_eight.monkey
Created December 9, 2016 14:05
7.8 Add engine object text tags and remove destroyed objects
' in OnCreate
box.SetColGroup(PLAYER_GROUP)
box.SetColType(Self.engine.ctBox)
' Player box text
box.SetText("PLAYER")
Method OnUpdate()
Local time_delta:Float = Float(engine.CalcDeltaTime())/60.0
If ((Millisecs() - Self.last_enemy_time) > Self.next_enemy_interval)
@codetravis
codetravis / eight_one.monkey
Last active December 14, 2016 13:36
8.1 Include health as part of the Character class and its constructor
Import fantomX
Class Character
Field box:ftObject
' Give characters health
Field current_health:Int
Field max_health:Int
Field is_player:Bool
@codetravis
codetravis / eight_two.monkey
Created December 14, 2016 13:42
8.2 Give the player and enemies health
Class Game Extends App
' .............
Method OnCreate()
Self.engine = New CustomEngine
default_scene = engine.GetDefaultScene()
default_layer = engine.GetDefaultLayer()