Esempio n. 1
0
void cRokko::Update_Normal_Dying(void)
{
    if (m_vely < m_gravity_max) {
        Add_Velocity_Y_Max(1.5f, m_gravity_max);
    }

    if (m_dying_counter >= 5.0f && m_curr_img < 3)
        Set_Image_Num(3);
    else if (m_dying_counter >= 10.0f && m_curr_img == 3)
        Set_Image_Num(4);
    else if (m_dying_counter >= 15.0f && m_curr_img == 4)
        Set_Image_Num(5);

    Move(m_velx, m_vely);

    if (m_rot_z - m_start_rot_z < 90) {
        Add_Rotation_Z(pFramerate->m_speed_factor);
    }

    // generate smoke
    m_smoke_counter += pFramerate->m_speed_factor * 4;
    if (m_smoke_counter >= 2.0f) {
        Generate_Smoke(static_cast<int>(m_smoke_counter));
        Generate_Sparks(static_cast<int>(m_smoke_counter * 0.5f));
        m_smoke_counter -= static_cast<int>(m_smoke_counter);
    }

    // below ground
    if (m_col_rect.m_y - 200.0f > pActive_Camera->m_limit_rect.m_y + game_res_h) {
        m_rot_z = 0.0f;
        m_massive_type = MASS_PASSIVE;
        Set_Active(0);
        m_velx = 0.0f;
    }
}
Esempio n. 2
0
 void cStaticEnemy::Update(void)
 {
     cEnemy::Update();
     
     if (!m_valid_update || !Is_In_Player_Range())
     {
         return;
     }
     
     if (m_rotation_speed)
     {
         Add_Rotation_Z(m_rotation_speed * pFramerate->m_speed_factor);
     }
     
     if (m_path_state.m_path)
     {
         if (m_path_state.Path_Move(m_speed * pFramerate->m_speed_factor) == 0)
         {
             if (!m_path_state.m_path->m_rewind)
             {
                 m_path_state.Move_Toggle();
             }
         }
         
         float diff_x = (m_path_state.m_path->m_start_pos_x + m_path_state.pos_x) - m_pos_x;
         float diff_y = (m_path_state.m_path->m_start_pos_y + m_path_state.pos_y) - m_pos_y;
         
         Set_Velocity(diff_x, diff_y);
     }
 }
Esempio n. 3
0
void cStaticEnemy :: Update( void )
{
	cEnemy::Update();

	if( !m_valid_update || !Is_In_Player_Range() )
	{
		return;
	}

	if( m_rotation_speed )
	{
		// update rotation
		Add_Rotation_Z( m_rotation_speed * pFramerate->m_speed_factor );
	}

    if( m_path_state.m_path )
    {
		// move along path
        if( m_path_state.Path_Move( m_speed * pFramerate->m_speed_factor ) == 0 )
        {
			if( !m_path_state.m_path->m_rewind )
			{
				// if we can not move further along the path, reverse the direction
				m_path_state.Move_Toggle();
			}
        }

    	// get difference
		float diff_x = ( m_path_state.m_path->m_start_pos_x + m_path_state.pos_x ) - m_pos_x;
		float diff_y = ( m_path_state.m_path->m_start_pos_y + m_path_state.pos_y ) - m_pos_y;

		// move to position
        Set_Velocity( diff_x, diff_y );
    }
}
Esempio n. 4
0
void cRokko :: Update_Dying( void )
{
	// add gravity
	if( m_vely < 25 )
	{
		Add_Velocity( 0, 1.5f );
	}

	Move( m_velx, m_vely );

	if( m_rot_z - m_start_rot_z < 90 )
	{
		Add_Rotation_Z( pFramerate->m_speed_factor );
	}

	// generate smoke
	m_smoke_counter += pFramerate->m_speed_factor * 4;
	if( m_smoke_counter >= 2 )
	{
		Generate_Smoke( static_cast<int>(m_smoke_counter) );
		Generate_Sparks( static_cast<int>(m_smoke_counter * 0.5f) );
		m_smoke_counter -= static_cast<int>(m_smoke_counter);
	}

	// below ground
	if( m_col_rect.m_y - 200.0f > pActive_Camera->limit_rect.m_y + game_res_h )
	{
		m_rot_z = 0.0f;
		m_massive_type = MASS_PASSIVE;
		Set_Active( 0 );
		m_velx = 0.0f;
	}
}