diff --git a/game.odin b/game.odin index 13aa85a..e1d2a5d 100644 --- a/game.odin +++ b/game.odin @@ -215,7 +215,7 @@ fire_bullet :: proc(state: ^GameState, shot_from_player := true) { log.info("Fired bullet: ", bullet) } -// Since I'm using a #soa array I can't directly modify the alien & bullet entities... +// Since I'm using a #soa array I can't directly modify the alien & bullet entities...I think? damage_alien :: proc( state: ^GameState, bullet_in: Bullet, diff --git a/sprites.odin b/sprites.odin index 43365e3..8a2f6c5 100644 --- a/sprites.odin +++ b/sprites.odin @@ -2,6 +2,9 @@ package space_invaders import glm "core:math/linalg/glsl" +// TO -> texture offset + +// x,y, width, height LOGO_TO :: [2]glm.vec2{{0, 0}, {128-(SPRITE_CELL * 2), SPRITE_CELL * 2}} GLOBAL_SPRITE_SCALE :: 2 @@ -12,6 +15,8 @@ ALIENS_PER_ROW :: 11 ALIENS :: ALIEN_ROWS * ALIENS_PER_ROW ALIEN_SIDE_STEP :: 20 * GLOBAL_SPRITE_SCALE ALIEN_RECT :: glm.vec2{SPRITE_CELL * GLOBAL_SPRITE_SCALE, SPRITE_CELL * GLOBAL_SPRITE_SCALE} +// note: this multiplication by GLOBAL_SPRITE_SCALE is a hack, but it's a weekend project +// so i won't bother refactoring it MAX_BULLETS :: 100 BULLET_SPEED :: 240 @@ -26,7 +31,7 @@ SHIP_TO :: glm.vec2{0, 112} BULLET_TO := [2]glm.vec2{{0, 80}, {16, 80}} BULLET_FRAME_ANIM := 0 -// texture atlas offset for aliens +// texture atlas offset for aliens (x,y), height & width is implied by SPRITE_CELL ALIENS_TO := [AlienKind]glm.vec2 { .ORANGE = {0, 128 - (SPRITE_CELL * 2)}, .GREEN = {SPRITE_CELL * 1, 128 - (SPRITE_CELL * 2)}, @@ -34,6 +39,7 @@ ALIENS_TO := [AlienKind]glm.vec2 { .RED = {SPRITE_CELL * 3, 128 - (SPRITE_CELL * 2)}, } ALIEN_DEATH_FRAMES :: 4 +// texture atlas offset for aliens' death frames (x,y), height & width is implied by SPRITE_CELL ALIEN_DEATH_ANIMATION_TO := [ALIEN_DEATH_FRAMES]glm.vec2 { {0, 128 - (SPRITE_CELL * 4)}, {SPRITE_CELL * 1, 128 - (SPRITE_CELL * 4)},