From 8f76ba782669bc986a5e450e5a50ac84232c1323 Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Wed, 21 Sep 2022 23:19:45 +0200 Subject: Began rewriting the game as a wasm4 cartridge --- src/game.zig | 47 ++++++++++++----------------------------------- 1 file changed, 12 insertions(+), 35 deletions(-) (limited to 'src/game.zig') diff --git a/src/game.zig b/src/game.zig index 7f44856..7dbba66 100644 --- a/src/game.zig +++ b/src/game.zig @@ -1,50 +1,27 @@ const std = @import("std"); -const spoon = @import("spoon"); +const utils = @import("utils.zig"); +const w4 = @import("wasm4.zig"); const ball = @import("ball.zig"); const brothers = @import("brothers.zig"); -const playfield = @import("playfield.zig"); pub const Game = struct { ball: ball.Ball = undefined, brothers: [2]brothers.Brother = 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); - try self.ball.draw(rc); - var score: [1]u8 = undefined; - try rc.moveCursorTo(1, 3); - score[0] = '0' + self.brothers[0].score; - _ = try rc.buffer.writer().write(score[0..]); - try rc.moveCursorTo(1, 76); - score[0] = '0' + self.brothers[1].score; - _ = try rc.buffer.writer().write(score[0..]); + playerSide: utils.side = undefined, + pub fn draw(self: *Game) void { + self.ball.draw(); + self.brothers[0].draw(); + self.brothers[1].draw(); + // draw the net + w4.DRAW_COLORS.* = 0x42; + w4.rect(78, 100, 4, 61); } - pub fn moveJump(self: *Game, side: brothers.Side) void { - self.brothers[@enumToInt(side)].moveJump(); - } - pub fn moveLeft(self: *Game, side: brothers.Side) void { - self.brothers[@enumToInt(side)].moveLeft(); - } - pub fn moveRight(self: *Game, side: brothers.Side) void { - self.brothers[@enumToInt(side)].moveRight(); - } - pub fn reset(self: *Game, side: brothers.Side) void { - self.side = side; + pub fn reset(self: *Game) void { self.brothers[0].reset(.left); self.brothers[1].reset(.right); - self.resetRound(); - } - pub fn resetRound(self: *Game) void { - self.ball.reset(.left); + self.ball.resetRound(.left); self.brothers[0].resetRound(); self.brothers[1].resetRound(); } - pub fn step(self: *Game) void { - self.ball.step(); - self.brothers[0].step(&self.ball); - self.brothers[1].step(&self.ball); - } }; -- cgit v1.2.3