[asciilib] setting up graphics backend
This commit is contained in:
4
projects/asciilib2/src/asciilib/Game.hx
Normal file
4
projects/asciilib2/src/asciilib/Game.hx
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
package asciilib;
|
||||||
|
|
||||||
|
@:build(kiss.Kiss.build("src/asciilib/Game.kiss"))
|
||||||
|
class Game {}
|
18
projects/asciilib2/src/asciilib/Game.kiss
Normal file
18
projects/asciilib2/src/asciilib/Game.kiss
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
(defnew [:String title
|
||||||
|
:Int width
|
||||||
|
:Int height
|
||||||
|
:Int letterWidth
|
||||||
|
:Int letterHeight
|
||||||
|
:GameLogic gameLogic
|
||||||
|
:GraphicsBackend _graphicsBackend]
|
||||||
|
[graphics (new Graphics width height)
|
||||||
|
logic gameLogic
|
||||||
|
graphicsBackend _graphicsBackend]
|
||||||
|
|
||||||
|
(graphicsBackend.initialize title width height letterWidth letterHeight))
|
||||||
|
|
||||||
|
(defmethod update [:Float deltaSeconds]
|
||||||
|
(gameLogic.update deltaSeconds))
|
||||||
|
|
||||||
|
(defmethod draw []
|
||||||
|
(graphicsBackend.draw graphics))
|
6
projects/asciilib2/src/asciilib/GameLogic.hx
Normal file
6
projects/asciilib2/src/asciilib/GameLogic.hx
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
package asciilib;
|
||||||
|
|
||||||
|
interface GameLogic {
|
||||||
|
public function update(deltaSeconds:Float):Void;
|
||||||
|
public function draw(graphics:Graphics):Void;
|
||||||
|
}
|
4
projects/asciilib2/src/asciilib/Graphics.hx
Normal file
4
projects/asciilib2/src/asciilib/Graphics.hx
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
package asciilib;
|
||||||
|
|
||||||
|
@:build(kiss.Kiss.build("src/asciilib/Graphics.kiss"))
|
||||||
|
class Graphics {}
|
2
projects/asciilib2/src/asciilib/Graphics.kiss
Normal file
2
projects/asciilib2/src/asciilib/Graphics.kiss
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
(defnew [width height]
|
||||||
|
[surface (new Surface width height)])
|
6
projects/asciilib2/src/asciilib/GraphicsBackend.hx
Normal file
6
projects/asciilib2/src/asciilib/GraphicsBackend.hx
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
package asciilib;
|
||||||
|
|
||||||
|
interface GraphicsBackend {
|
||||||
|
function initialize(title:String, width:Int, height:Int, letterWidth:Int, letterHeight:Int):Void;
|
||||||
|
function draw(graphics:Graphics):Void;
|
||||||
|
}
|
Reference in New Issue
Block a user