From e8c4458ed8f71c9e605b9aa8b88df290c7ec9c22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lera=20Elvo=C3=A9?= Date: Wed, 5 Feb 2025 02:36:57 +0300 Subject: [PATCH] little birdy moves --- data/fonts/Lunchtype21_Regular.ttf | Bin 0 -> 72312 bytes data/scripts/game.lua | 8 +++- data/scripts/player.lua | 64 +++++++++++++++++++++++++++++ data/scripts/util.lua | 12 ++++++ data/sprites/bird1.png | Bin 0 -> 270 bytes data/sprites/bird2.png | Bin 0 -> 317 bytes 6 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 data/fonts/Lunchtype21_Regular.ttf create mode 100644 data/scripts/player.lua create mode 100644 data/scripts/util.lua create mode 100644 data/sprites/bird1.png create mode 100644 data/sprites/bird2.png diff --git a/data/fonts/Lunchtype21_Regular.ttf b/data/fonts/Lunchtype21_Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..668f0511d827252ad2611465e3f8d02ca9b04b77 GIT binary patch literal 72312 zcmeFad7NBDxj$TWdf)eb-)FjK?U|mQ$xLR+%w(BKGLuXaG6@NUBqV_ZB6~!XMNq(t zsJMX2;$=|~4J!VU3|Dah5f|`^*9BB?7to8!;#Jc9exIuD=}7`8zW0y!_xZdhIn~vt z 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

lQWI>^UlG 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 literal 0 HcmV?d00001 diff --git a/data/scripts/game.lua b/data/scripts/game.lua index 204cb81..8d98c5e 100644 --- a/data/scripts/game.lua +++ b/data/scripts/game.lua @@ -1,8 +1,14 @@ +local Vector2 = require "types.vector2" +local player = require "player" + -- called every frame, with constant delta time function game_tick() -- ctx.initialization_needed is true first frame and every time dynamic reload is performed if ctx.initialization_needed then - -- ctx.udata persists on reload + player:init() ctx.udata = {} end + + draw_camera_2d{} + player:tick(ctx) end diff --git a/data/scripts/player.lua b/data/scripts/player.lua new file mode 100644 index 0000000..d692814 --- /dev/null +++ b/data/scripts/player.lua @@ -0,0 +1,64 @@ +local Vector2 = require "types.vector2" +local util = require "util" + +local SPR = { + "sprites/bird1.png", + "sprites/bird2.png", +} + +local TERMINAL_V_VEL = 25 + +local p = { + position = Vector2(0, 50), + velocity = Vector2(), + size = Vector2(64, 64), + spr_idx = 1, + flip = false, +} + +function p:rect() + return {x = self.position.x, y = self.position.y, w = self.size.x, h = self.size.y} +end + +function p:init() + self.position.y = 50 + self.position.x = ctx.resolution.x / 2 +end + +function p:is_on_ground() + return self.position.y >= ctx.resolution.y - 64 +end + +function p:tick(ctx) + input_action{name = "left", control = "LEFT"} + input_action{name = "right", control = "RIGHT"} + + input_action{name = "jump", control = "SPACE"} + + self.velocity.x = util.lerp(self.velocity.x, 0, 0.14) + + if not self:is_on_ground() then + self.velocity.y = math.min(self.velocity.y + 1, TERMINAL_V_VEL) + else + self.position.y = ctx.resolution.y - 64 + end + + local movement = util.b2n(input_action_just_pressed{name = "right"}) - util.b2n(input_action_just_pressed{name = "left"}) + if movement ~= 0 then + self.flip = movement < 0 + end + + if movement ~= 0 then + self.velocity.y = -10 + self.velocity.x = movement * 20 + end + + if self.velocity.x < -0.1 or self.velocity.x > 0.1 then + self.spr_idx = (math.floor(ctx.frame_number / 11) % 2) + 1 + end + + self.position = self.position + self.velocity + draw_sprite{rect = self:rect(), texture = SPR[self.spr_idx], flip_x = self.flip} +end + +return p \ No newline at end of file diff --git a/data/scripts/util.lua b/data/scripts/util.lua new file mode 100644 index 0000000..7315df4 --- /dev/null +++ b/data/scripts/util.lua @@ -0,0 +1,12 @@ +local util = {} + +function util.b2n(b) + return b and 1 or 0 +end + +function util.lerp(v1, v2, t) + -- return (1 - t) * v1 + t * v2 + return v1 + t * (v2 - v1) +end + +return util \ No newline at end of file diff --git a/data/sprites/bird1.png b/data/sprites/bird1.png new file mode 100644 index 0000000000000000000000000000000000000000..adc458ae56533480e8debc1273f3155fe9bbbaff GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|e{s5m4S0D`n4gVV&8vg%p;Nd7( z3FNYt1o;Is{09P=3u++ED?MEtLn`LHo%ovfhyqV@BJ-UR#v2T&t?%qF?`&N3>B8Or z!s|jV{y5xtW#`(p`=|U5{glYIYm$5P0x5TP8O@M*)9Im74H@^pgdVQ;X69Je~LVAu9x;9S4#!Nf3!t~>Q{i#9lzGkaFBGpVkhe~PC?RG_jU_!CnFpQ8fzGrk^; z+V^q}dp|qaG^FkSWa-i;E%0>4Eq-aEhTmJitlC!@9UYxt%dl#VjLz|O(eWT(dAjFa(9pop0Ax12 zX=G0U^4Us){DMJp|NmE2KKKU|x#H>K7*a9k?ZiN#W(6LXM&SLt2Oo~pQQ$xq-DL*Pu(9`wv+kPrhhsz4(?AyADq9|XgOC~w&06V`m*m+ zxii>;CM;*Y!?=F}r%