void BossSaw::draw( BITMAP *buffer, int offsetX, int offsetY, int layer ) { int x = getDrawPositionX() + offsetX - getHalfSize().x; int y = getDrawPositionY() + offsetY - getHalfSize().y; mySaw->drawFrame(buffer, myFrameCounter / 10, x, y); //Entity::draw(buffer, offsetX, offsetY, layer); }
void Entity::draw(BITMAP *buffer, int offsetX, int offsetY, int layer) { int x = getDrawPositionX() + offsetX; int y = getDrawPositionY() + offsetY; int x1 = (int)(x - getHalfSize().x); int y1 = (int)(y - getHalfSize().y); int x2 = (int)(x + getHalfSize().x); int y2 = (int)(y + getHalfSize().y); rect(buffer, x1, y1, x2, y2, makecol(255, 255, 0)); line(buffer, x - 3, y, x + 3, y, makecol(255, 255, 0)); line(buffer, x, y - 3, x, y + 3, makecol(255, 255, 0)); //textout_centre_ex(buffer, font, typeid(this).name(), x, y - 9, makecol(200, 200, 200), 0); }
void Savepoint::draw(BITMAP *buffer, int offsetX, int offsetY, int layer) { if (mTextCounter > 0) { mFont->drawCenter(buffer, "GAME SAVED", 0, 0, 320, 100); } mAnimation.drawFrame( buffer, mFrame / 4, offsetX + getDrawPositionX() - mAnimation.getFrameWidth() / 2, offsetY + getDrawPositionY() + getHalfSize().y - mAnimation.getFrameHeight() + 10); }
void BreakingHookTile::draw(BITMAP *buffer, int offsetX, int offsetY, int layer) { if (mDestroyed) { return; } int x = getDrawPositionX() + offsetX - mSprite.getFrameWidth() / 2; int y = getDrawPositionY() + offsetY - mSprite.getFrameWidth() / 2; if (!mBreaking || (mBreakCounter & 1) == 0) { mSprite.drawFrame(buffer, 0, x, y); } }
void MovableBox::draw(BITMAP *buffer, int offsetX, int offsetY, int layer) { int x = getDrawPositionX(); int y = getDrawPositionY(); int frame = 1; //frame = mFrame/4; bool gravityFlip = (getGravityDirection()>0)?false:true; mBoxAnimation.drawFrame(buffer, frame, offsetX + x - mBoxAnimation.getFrameWidth()/2, offsetY + y+getHalfSize().y-mBoxAnimation.getFrameHeight(), true,gravityFlip); }
void Boss::draw( BITMAP *buffer, int offsetX, int offsetY, int layer ) { int x = getDrawPositionX() + offsetX - getHalfSize().x; int y = getDrawPositionY() + offsetY - getHalfSize().y; if (myState == State_Sleeping) myReactor->drawFrame(buffer, DAMAGE_MAX / FRAME_PER_DAMAGE - (myInitalHealth + 3) / FRAME_PER_DAMAGE, x , y ); else if (myState == State_InitialBlow) myReactor->drawFrame(buffer, 3, x , y ); else if (myState == State_Vulnerable) myBoss->drawFrame(buffer, 0, x, y); else myBoss->drawFrame(buffer, myAnimFrameCounter / 5, x, y); // Entity::draw(buffer, offsetX, offsetY, layer); }
void Shot::draw(BITMAP *buffer, int offsetX, int offsetY, int layer){ int x = getDrawPositionX(); int y = getDrawPositionY(); int frame; if(! hasCollided()){ frame = mFrame/10; mShotAnimation[mShotType]->drawFrame(buffer, frame, offsetX + x - mShotAnimation[mShotType]->getFrameWidth()/2, offsetY + y+getHalfSize().y-mShotAnimation[mShotType]->getFrameHeight()); } else { cFrame++; frame = cFrame/10; mCollisionAnimation[mShotType]->drawFrame(buffer, frame, offsetX + x - mCollisionAnimation[mShotType]->getFrameWidth()/2, offsetY + y+getHalfSize().y-mCollisionAnimation[mShotType]->getFrameHeight()); } }
void MovingHookTile::draw(BITMAP *buffer, int offsetX, int offsetY, int layer) { int x = getDrawPositionX() + offsetX - mSprite.getFrameWidth() / 2; int y = getDrawPositionY() + offsetY - mSprite.getFrameHeight() / 2; mSprite.drawFrame(buffer, mFrameCounter / 12, x, y); }
void Hero::draw(BITMAP *buffer, int offsetX, int offsetY, int layer) { int x = getDrawPositionX(); int y = getDrawPositionY(); if (myIsDead) { mAnimationHurt.drawFrame(buffer, 0, offsetX + x - mAnimationHurt.getFrameWidth()/2, offsetY + y+getHalfSize().y-mAnimationHurt.getFrameHeight(), mFacingDirection == Direction_Left); return; } Animation* animation = 0; int frame = 1; // mMovementState = MovementState_Jump; switch(mMovementState) { case MovementState_Run: animation = &mAnimationRun; frame = mFrame/10; break; case MovementState_AirRun: animation = &mAnimationRun; frame = mFrame/3; break; case MovementState_Still: animation = &mAnimationRun; frame = 1; break; case MovementState_Jump: animation = &mAnimationJump; frame = 1; break; case MovementState_Fall: animation = &mAnimationFall; frame = 1; break; default: Entity::draw(buffer, offsetX, offsetY, layer); } if (mRopeState != RopeState_Retracted && (mRopeState != RopeState_Dissapearing || (mRopeDissapearCounter & 1) != 0)) { int x2 = getDrawPositionX() + offsetX; int y2 = getDrawPositionY() + offsetY; int x1 = (int)(mRopePosition.x + 0.5f) + offsetX; int y1 = (int)(mRopePosition.y + 0.5f) + offsetY; float2 line(x2-x1, y2-y1); int rlength = length(line); line /= length(line); line *= 3; float x = x1; float y = y1; int segments = (int)ceil(rlength/length(line)); for (int i = 0; i < segments; i++) { float2 wave; if ((mRopeState == RopeState_Moving || mRopeState == RopeState_Dissapearing) && segments > 1) { float t = i / (float)(segments - 1); float value = sin(t * 3.141592) * sin(i * 0.3f); wave = float2(line.y, -line.x) * value; } mAnimationRope.drawFrame(buffer, frame, x + wave.x - mAnimationRope.getFrameWidth()/2, y + wave.y - mAnimationRope.getFrameHeight()/2); x += line.x; y += line.y; } mAnimationHook.drawFrame(buffer, frame, x1 - mAnimationHook.getFrameWidth()/2, y1 - mAnimationHook.getFrameHeight()/2); } if (mBlinkingTicksLeft > 0 && !mOnGround) { animation = &mAnimationHurt; } if ((mBlinkingTicksLeft/6)%2 == 0) { animation->drawFrame(buffer, frame, offsetX + x - animation->getFrameWidth()/2, offsetY + y+getHalfSize().y-animation->getFrameHeight(), mFacingDirection == Direction_Left); } }
void Hero::draw(BITMAP *buffer, int offsetX, int offsetY, int layer) { if (mySpawnPortal) { return; } int x = getDrawPositionX(); int y = getDrawPositionY(); if (myIsDead) { bool gravityFlip = (getGravityDirection()>0)?false:true; mAnimationHurt.drawFrame(buffer, 0, offsetX + x - mAnimationHurt.getFrameWidth()/2, offsetY + y+getHalfSize().y-mAnimationHurt.getFrameHeight(), mFacingDirection == Direction_Left, gravityFlip); return; } Animation* animation = 0; int frame = 1; // mMovementState = MovementState_Jump; switch(mMovementState) { case MovementState_Run: animation = &mAnimationRun; frame = mFrame/5; break; case MovementState_Still: animation = &mAnimationRun; frame = 1; break; case MovementState_Jump: animation = &mAnimationJump; frame = 1; break; case MovementState_Fall: animation = &mAnimationFall; frame = 1; break; default: Entity::draw(buffer, offsetX, offsetY, layer); } if (mBlinkingTicksLeft > 0 && !mOnGround) { animation = &mAnimationHurt; } if ((mBlinkingTicksLeft/6)%2 == 0) { bool gravityFlip = (getGravityDirection()>0)?false:true; animation->drawFrame(buffer, frame, offsetX + x - animation->getFrameWidth()/2, offsetY + y + (gravityFlip ? -getHalfSize().y : getHalfSize().y - animation->getFrameHeight()), mFacingDirection == Direction_Left, gravityFlip); } }
void Powerup::draw(BITMAP *buffer, int offsetX, int offsetY, int layer) { if (GameState::getInt(mKind) != 0) { return; } int f = (mFrame / 4) % 4; if (mKind == GameState::POWERUP_HIJUMP) { f += 4; } else if (mKind == GameState::POWERUP_GUN) { f += 8; } mAnimation.drawFrame(buffer, f, offsetX + getDrawPositionX() - getHalfSize().x, offsetY + getDrawPositionY() - getHalfSize().y); }