[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