Monkey X is a high-level programming language designed for video game development for many different platforms, including desktop and laptop computers, mobile phones, tablets, and video game consoles. The language itself is an object-oriented dialect of BASIC, which the compiler translates into native source code for several target platforms. The resulting code is then compiled normally. Read more on Wikipedia...
'Showcases use of Lambda functions and Generics.
Local testStack := New Stack< MyObject >
For Local n := 1 To 20
Local newItem := New MyObject
newItem.depth = Rnd( 0, 100 )
testStack.Push( newItem )
testStack.Sort( Lambda:Int( x:MyObject,y:MyObject )
For Local n := Eachin testStack
Print( n.depth )
Field depth := 0
' The 'Player' class, as referenced previously (Placement does not matter):
' Declare all of our fields (Class-local variables):
' These two variables will act as our position on the screen.
' (Alternatively, an 'Array or third-party class could be used)
Field x:Float, y:Float
' This will be a reference to an 'Image' object we'll specify.
' Overloading 'New' mainly works the same way as constructors in other languages.
' Returning is generally not recommended for constructors.
Method New(img:Image, x:Float=100, y:Float=100)
' Due to the arguments using the same names, 'Self'
' is required to resolve our fields' names:
Self.image = img
Self.x = x
Self.y = y
' This will be our main render-method for this object:
' Draw the 'image' object to the screen using our 'x' and 'y' fields.
DrawImage(image, x, y)
' Returning in a 'Void' function is not required. (Some still recommend it)