示例#1
0
void COrbatrix::processBounce()
{
    performGravityHigh();
    
    // Move normally in the direction
    if( xDirection == RIGHT )
    {
        moveRight( HOR_SPEED );
    }
    else
    {
        moveLeft( HOR_SPEED );
    }
    
    if(blockedd && yinertia >= 0)
    {
        yinertia = MAX_BOUNCE_BOOST;
        xDirection = -xDirection;
        playSound(SOUND_ORBATRIX_BUMP);
    }
    
    mTimer++;
    if( mTimer < TIME_UNTIL_UNCURL )
        return;
    
    mTimer = 0;
    
    setAction(A_ORBATRIX_SLIDE);
}
示例#2
0
void CShelly::process()
{
	performCollisions();
	
	performGravityHigh();

	processActionRoutine();
	
	(this->*mp_processState)();
}
示例#3
0
void CBloog::process()
{
	performCollisions();
	
	performGravityHigh();

	if( blockedl )
		xDirection = RIGHT;
	else if(blockedr)
		xDirection = LEFT;

	if(!processActionRoutine())
	    exists = false;
	
	(this->*mp_processState)();
}
示例#4
0
void CSpriteItem::process()
{
    if(mGravity)
    {
        performCollisions();
        performGravityHigh();
    }
    
    // Do the animation stuff here!
    if(m_timer == 0)
    {
	this->sprite = (m_basesprite == this->sprite) ? m_basesprite + 1 : m_basesprite;
    }
    
    if(m_timer < MAX_ANIMATION_TIMER)
	m_timer++;
    else
	m_timer = 0;
}