Exemplo n.º 1
0
static void
update(struct game_state *gs)
{
	if (inner_state.state != IS_LEVEL_CLEARED &&
	  inner_state.state != IS_LEVEL_TRANSITION)
		update_eye();

	update_crosshair();
	update_background();
	update_water();
	update_particles();
	update_explosions();

	if (ship_is_visible()) {
		update_ship();
		update_missiles();
		update_bombs();
		update_lasers();
		update_foes();
	}

	update_powerups();
	update_in_game_texts();

	if (inner_state.state == IS_IN_GAME) {
		update_multiplier();
		update_combo();
	}

	if (inner_state.state == IS_GAME_OVER) {
		if (inner_state.tics >= GAME_OVER_FADE_IN_TICS) {
			if (!update_stats_table()) {
				gc.score += game_over_stats.bonus;
				set_inner_state(IS_RANK);
			}
		}
	}

	if (inner_state.state == IS_LEVEL_CLEARED) {
		if (inner_state.tics >= LEVEL_CLEARED_FADE_IN_TICS) {
			if (!update_stats_table()) {
				gc.score += game_over_stats.bonus;
				set_inner_state(IS_LEVEL_TRANSITION);
			}
		}
	}

	update_level_tics();
	update_inner_state();

	if (serializing)
		serialize();
}
Exemplo n.º 2
0
void Game_Utils::hurt( Hurt_Args & hurt_args )
{
	UI::Actor_Layer* al = get_actor_layer();
	if(!al){
		return ;
	}
	al->sprite_hurt(hurt_args.hurt_sprite_id_, hurt_args.hurt_sprite_type_, hurt_args.attcker_id_,(Hurt_Type)hurt_args.hurt_type_, hurt_args.hurt_value_, hurt_args.hurting_vellovity_, hurt_args.hurting_v_h_vellovity_, hurt_args.yinzhi_time_/1000.f);

	UI::Game_UI_Delegate* gl = get_Game_UI_layer();
	if(gl)
	{
		update_combo(hurt_args.hurt_sprite_id_, hurt_args.hurt_sprite_type_, 0);
		gl->update_hp(hurt_args.hurt_sprite_id_, hurt_args.hurt_sprite_type_,(Hurt_Type)hurt_args.hurt_type_, hurt_args.hurt_value_);
	}
}