From a899bc060b6180635f3ff4ac73b7e6aee4fe9a7b Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Mon, 22 Aug 2022 20:18:30 +0200 Subject: Implemented a ball with basic physics and collisions --- src/game.zig | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/game.zig') diff --git a/src/game.zig b/src/game.zig index 8af1889..c8492df 100644 --- a/src/game.zig +++ b/src/game.zig @@ -1,16 +1,19 @@ const std = @import("std"); const spoon = @import("spoon"); +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); } pub fn moveJump(self: *Game, side: brothers.Side) void { self.brothers[@enumToInt(side)].moveJump(); @@ -26,11 +29,13 @@ pub const Game = struct { self.resetRound(); } pub fn resetRound(self: *Game) void { + self.ball.reset(.left); self.brothers[0].reset(.left); self.brothers[1].reset(.right); } pub fn step(self: *Game) void { - self.brothers[0].step(); - self.brothers[1].step(); + self.ball.step(); + self.brothers[0].step(&self.ball); + self.brothers[1].step(&self.ball); } }; -- cgit v1.2.3