added animation to the bullet & sprites to all major components
This commit is contained in:
parent
348b4fd181
commit
0aa534c4d1
2 changed files with 16 additions and 9 deletions
Binary file not shown.
|
Before Width: | Height: | Size: 709 B After Width: | Height: | Size: 688 B |
25
game.odin
25
game.odin
|
|
@ -25,7 +25,8 @@ PLAYER_RECT :: glm.vec2{SPRITE_CELL * GLOBAL_SPRITE_SCALE, SPRITE_CELL * GLOBAL_
|
|||
|
||||
// texture offset for ship
|
||||
SHIP_TO :: glm.vec2{0, 112}
|
||||
BULLET_TO :: glm.vec2{32, 112}
|
||||
BULLET_TO := [2]glm.vec2{{0, 80}, {16, 80}}
|
||||
BULLET_FRAME_ANIM := 0
|
||||
|
||||
AlienKind :: enum {
|
||||
ORANGE,
|
||||
|
|
@ -101,6 +102,9 @@ update_game :: proc(state: ^GameState) {
|
|||
log.info("Done setting up game")
|
||||
}
|
||||
|
||||
// update bullet frame idx
|
||||
if frame_counter % 10 == 0 { BULLET_FRAME_ANIM = (BULLET_FRAME_ANIM + 1) % len(BULLET_TO) }
|
||||
|
||||
// Press enter to change to ENDING screen
|
||||
if (rl.IsKeyPressed(rl.KeyboardKey.ENTER)) {
|
||||
state.screen = .ENDING
|
||||
|
|
@ -156,8 +160,8 @@ update_game :: proc(state: ^GameState) {
|
|||
|
||||
}
|
||||
|
||||
ship_sprite_cell_offset := rl.Rectangle{SHIP_TO.x, SHIP_TO.y, SPRITE_CELL, SPRITE_CELL}
|
||||
bullet_sprite_cell_offset := rl.Rectangle{BULLET_TO.x, BULLET_TO.y, SPRITE_CELL, SPRITE_CELL}
|
||||
// ship_sprite_cell_offset := rl.Rectangle{SHIP_TO.x, SHIP_TO.y, SPRITE_CELL, SPRITE_CELL}
|
||||
// bullet_sprite_cell_offset := rl.Rectangle{BULLET_TO.x, BULLET_TO.y, SPRITE_CELL, SPRITE_CELL}
|
||||
|
||||
draw_game :: proc(state: ^GameState) {
|
||||
using state
|
||||
|
|
@ -166,7 +170,7 @@ draw_game :: proc(state: ^GameState) {
|
|||
|
||||
rl.DrawTexturePro(
|
||||
texture_atlas,
|
||||
ship_sprite_cell_offset,
|
||||
{SHIP_TO.x, SHIP_TO.y, SPRITE_CELL, SPRITE_CELL},
|
||||
{player_pos.x, player_pos.y, f32(PLAYER_RECT.x), f32(PLAYER_RECT.y)},
|
||||
{SPRITE_CELL, SPRITE_CELL},
|
||||
0,
|
||||
|
|
@ -178,7 +182,7 @@ draw_game :: proc(state: ^GameState) {
|
|||
rl.DrawTexturePro(
|
||||
texture_atlas,
|
||||
{ALIENS_TO[alien.id].x, ALIENS_TO[alien.id].y, SPRITE_CELL, SPRITE_CELL},
|
||||
{alien.position.x, alien.position.y, SPRITE_CELL, SPRITE_CELL},
|
||||
{alien.position.x, alien.position.y, ALIEN_RECT.x, ALIEN_RECT.y},
|
||||
{SPRITE_CELL, SPRITE_CELL},
|
||||
0,
|
||||
rl.WHITE,
|
||||
|
|
@ -193,10 +197,12 @@ draw_game :: proc(state: ^GameState) {
|
|||
|
||||
for &bullet in bullets {
|
||||
if !bullet.alive {continue}
|
||||
rl.DrawCircle(
|
||||
c.int(bullet.position.x),
|
||||
c.int(bullet.position.y),
|
||||
f32(BULLET_RECT.x / 2),
|
||||
rl.DrawTexturePro(
|
||||
texture_atlas,
|
||||
{BULLET_TO[BULLET_FRAME_ANIM].x, BULLET_TO[BULLET_FRAME_ANIM].y, SPRITE_CELL, SPRITE_CELL},
|
||||
{bullet.position.x, bullet.position.y, BULLET_RECT.x, BULLET_RECT.y},
|
||||
{SPRITE_CELL, SPRITE_CELL},
|
||||
0,
|
||||
rl.WHITE,
|
||||
)
|
||||
}
|
||||
|
|
@ -235,3 +241,4 @@ draw_game :: proc(state: ^GameState) {
|
|||
rl.DrawText(rl.TextFormat("Score: %d", player_score), 130, 220, 20, rl.MAROON)
|
||||
// rl.DrawText("GAMEPLAY SCREEN", 20, 20, 40, rl.MAROON)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue