typedef struct {
} ship;
Sint32 curtime = jo_get_ticks();
if(explodeShip != true){
//Display the normal ship sprite.
} else if(explodeShip == true){
//Display the explode sprite.
if(curtime > 99){
//Display an empty sprite.
}
}
#ifndef __ENEMY_H__
# define __ENEMY_H__
# define ENEMY_TILE_COUNT (4)
/*
typedef enum
{
// NONE,
} e_ship;
*/
typedef struct
{
int anim_id;
// int x;
// int y;
// int speed;
// t_ship_horiz_move move;
char is_alive;
char is_dead;
// char is_moving_horizontaly;
// char reverse_animation;
// int shield_pos_x;
// int shield_pos_y;
// int shield_angle;
// int score;
} e_ship;
#endif /* !__ENEMY_H__ */
#include "enemy.h"
static e_ship enemy;
static int enemy_sprite_id;
static int enemy_dead_sprite_id;
inline bool draw_enemy_dead(jo_node *node)
{
jo_sprite_draw3D(enemy_dead_sprite_id, node->data.coord.x, node->data.coord.y, 520);
node->data.coord.y += 2;
if (jo_list_any(&enemies_list, check_if_laser_hit_enemy, node))
get_enemy.anim_id();
}
inline void start_enemy_animation(char check_if_laser_hit_enemy)
{
jo_start_sprite_anim(enemy.anim_id);
enemy.anim_id = jo_create_sprite_anim(enemy_sprite_id, 4, 2);
}
void init_game(void)
{
jo_tile enemy_tileset[ENEMY_TILE_COUNT] =
{
{0, 0, 40, 40},
{40, 0, 40, 40},
{80, 0, 40, 40},
{120, 0, 40, 40},
};
enemy_dead_sprite_id = jo_sprite_add_tga_tileset(JO_ROOT_DIR, "ENEMY.TGA", JO_COLOR_Blue, enemy_tileset, ENEMY_TILE_COUNT);
enemy_sprite_id = jo_sprite_add_tga(JO_ROOT_DIR, "EN.TGA", JO_COLOR_Blue);
enemy.anim_id = jo_create_sprite_anim(enemy_dead_sprite_id, ENEMY_TILE_COUNT, 4);
}
#ifndef __ENEMY_H__
# define __ENEMY_H__
# define ENEMY_TILE_COUNT (4)
/*
typedef enum
{
NONE,
} e_ship;
*/
typedef struct
{
int anim_id;
char alive;
char status;
char max_anim_frames;
char timer;
// int x;
// int y;
// int speed;
// t_ship_horiz_move move;
char first_dead_sprite_id;
// char is_moving_horizontaly;
// char reverse_animation;
// int shield_pos_x;
// int shield_pos_y;
// int shield_angle;
// int score;
} e_ship;
#endif /* !__ENEMY_H__ */
#include "enemy.h"
static e_ship enemy;
static int enemy_sprite_id;
static int enemy_dead_sprite_id;
inline bool explodeEnemy(jo_node *node)
{
Sint32 curtime = jo_get_ticks();
if(explodeEnemy != true)
{
jo_sprite_draw3D(enemy_sprite_id, node->data.coord.x, node->data.coord.y, 520);
}
else if(explodeEnemy == true)
{
jo_sprite_draw3D(enemy_dead_sprite_id, node->data.coord.x, node->data.coord.y, 520);
}
if(curtime > 99)
{
jo_sprite_draw3D(enemy_sprite_id, node->data.coord.x, node->data.coord.y, 520);
}
}
inline void renderEnemy(e_ship * enemy, char alive, char status, char max_anim_frames, char timer, jo_node *node)
{
if (enemy->status & alive)
Display(enemy);
else if (enemy->timer ++ < max_anim_frames)
Display(enemy + enemy->timer);
else
enemy->timer=max_anim_frames;
}
inline void start_enemy_animation(e_ship enemy, char first_dead_sprite_id)
{
jo_start_sprite_anim(enemy.anim_id);
// enemy.reverse_animation = reverse_animation;
enemy.anim_id = jo_create_sprite_anim(first_dead_sprite_id, 4, 2);
}
void init_game(void)
{
jo_tile enemy_tileset[ENEMY_TILE_COUNT] =
{
{0, 0, 40, 40},
{40, 0, 40, 40},
{80, 0, 40, 40},
{120, 0, 40, 40},
};
enemy_dead_sprite_id = jo_sprite_add_tga_tileset(JO_ROOT_DIR, "ENEMY.TGA", JO_COLOR_Blue, enemy_tileset, ENEMY_TILE_COUNT);
enemy_sprite_id = jo_sprite_add_tga(JO_ROOT_DIR, "EN.TGA", JO_COLOR_Blue);
enemy.anim_id = jo_create_sprite_anim(enemy_dead_sprite_id, ENEMY_TILE_COUNT, 4);
extern e_ship enemy;
inline bool explodeEnemy(jo_node *node);
just becomes
void explodeEnemy(jo_node *node);