void CPlayerBase::Moving()
{
	PROFILE_FUNCTION("moving base");
	if (checkFalling()) {
		time_start_falling = 0;
		ChangeState("start_falling");
		ChangeCommonState("start_falling");
	}
	UpdateDirection();
	UpdateJumpState();
	if (!UpdateMovDirection()) {
		ChangeState("idle");
		ChangeCommonState("idle");
	}
}
Beispiel #2
0
void Goomba::update()
{
	if ( m_px + m_width <= 0 || m_px >= m_pWorld->map().totalWidth() || m_py >= m_pWorld->map().totalHeight() )
	{
		setLive(false);
		return;
	}

	if (m_state == DYING)
	{
		m_dyingFrameCount++;
		if (m_dyingFrameCount >= GOOMBA_MAX_DYING_FRAME)
		{
			setLive(false);
		}
		return;
	}

	if (m_state == THROWING)
	{
		if ( m_py >= m_pWorld->map().totalHeight() )
		{
			setLive(false);
			return;
		}
	}
	else // LIVING
	{
		if (!m_vy && checkFalling())
		{
			m_vy = GOOMBA_VY;
			m_ay = GOOMBA_GRAVITY;
		}
	}

	Entity::updateMovement();
}
Beispiel #3
0
void GuardianModule::run_()
{
    PROF_ENTER(P_ROBOGUARDIAN);

    temperaturesInput.latch();
    chestButtonInput.latch();
    footBumperInput.latch();
    inertialInput.latch();
    fsrInput.latch();
    batteryInput.latch();

    countButtonPushes();
    checkFalling();
    checkFallen();
    checkFeetOnGround();
    checkBatteryLevels();
    checkTemperatures();
    processFallingProtection();
    processChestButtonPushes();
    processFootBumperPushes();
    checkAudio();
    frameCount++;
    PROF_EXIT(P_ROBOGUARDIAN);
}