diff options
author | Julien Dessaux | 2022-08-14 15:36:59 +0200 |
---|---|---|
committer | Julien Dessaux | 2022-08-14 15:52:24 +0200 |
commit | a9c30f6236af36f6c428b0b10dd4d48a21c70733 (patch) | |
tree | cc31fd0e649409edb114046270a9a9f3100e8687 /src/game.zig | |
parent | Wrote initial game objects (diff) | |
download | grenade-brothers-a9c30f6236af36f6c428b0b10dd4d48a21c70733.tar.gz grenade-brothers-a9c30f6236af36f6c428b0b10dd4d48a21c70733.tar.bz2 grenade-brothers-a9c30f6236af36f6c428b0b10dd4d48a21c70733.zip |
Implement left and right movements
Diffstat (limited to '')
-rw-r--r-- | src/game.zig | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/game.zig b/src/game.zig index fc64001..97c2c80 100644 --- a/src/game.zig +++ b/src/game.zig @@ -6,17 +6,28 @@ const playfield = @import("playfield.zig"); pub const Game = struct { brothers: [2]brothers.Brother = undefined, - character: ?brothers.Side = undefined, + side: brothers.Side = undefined, pub fn draw(self: Game, rc: *spoon.Term.RenderContext) !void { try playfield.draw(rc); try self.brothers[0].draw(rc); try self.brothers[1].draw(rc); } - pub fn reset(self: *Game) void { + pub fn moveLeft(self: *Game) void { + self.brothers[@enumToInt(self.side)].moveLeft(); + } + pub fn moveRight(self: *Game) void { + self.brothers[@enumToInt(self.side)].moveRight(); + } + pub fn reset(self: *Game, side: brothers.Side) void { + self.side = side; self.resetRound(); } pub fn resetRound(self: *Game) void { self.brothers[0].reset(brothers.Side.left); self.brothers[1].reset(brothers.Side.right); } + pub fn step(self: *Game) void { + self.brothers[0].step(); + self.brothers[1].step(); + } }; |