Пример #1
0
penguin::penguin(char *bitmapPath) : object(bitmapPath)
{
	setCollidable(true);
	setLives(3);
	lives_icon.setBitmap("resources/images/lives.png");
	for(int i=0;i<NUM_BULLETS;i++)
	{
		bullets[i].setImage("resources/images/bullet.png");
	}
}
Пример #2
0
	void Mogh::collision(gen::Sprite* other, gen::World* w){
		
		if(Troll* ch = dynamic_cast<Troll*>(other)){
			damaged = true; 
			setCurrentAnimationVector("DAMAGED"); 
			setHealth(getHealth() - 10);
			setTimer( SDL_GetTicks() + 2000  );
			setCollidable(false);
			setVelocityX(getVelocityX()*2); 
			setVelocityY(getVelocityY()*2);
		
		}
		else if(gen::Object* o = dynamic_cast<gen::Object*>(other)){
			std::string direction = getKeyOfCurrentAnimationVector(); 
			if(direction == "LEFT"){
				setMovementX(getVelocityX());
				moveX(w);
			}
			else if(direction == "RIGHT"){
				setMovementX(-getVelocityX());
				moveX(w);
			}
			else if(direction == "BACK"){
				setMovementY(getVelocityY());
				moveY(w);
			} 
			else if(direction == "FRONT"){
				setMovementY(-getVelocityY());
				moveY(w);
			}
		}
		else if(SeaStar* s = dynamic_cast<SeaStar*>(other)){
			damaged = true; 
			setCurrentAnimationVector("DAMAGED"); 
			setHealth(getHealth() - s->getDamage()); 			
			setTimer( SDL_GetTicks() + 2000 );
			setCollidable(false);
			setVelocityX(getVelocityX()*2); 
			setVelocityY(getVelocityY()*2);
		}
	} 
Пример #3
0
void object::initAllToZero()
{
	setX(0);
	setY(0);
	setSpeedX(0);
	setSpeedY(0);
	setDirX(0);
	setDirY(0);
	setAlive(false);
	setCollidable(false);
	setSpeed(0);
	setAngle(0);
}
Пример #4
0
object::object(float x, float y, float speedX, float speedY, int dirX, int dirY, int boundX,
	int boundY, char *bitmapPath, bool alive, bool collidable)
{
	setX(x);
	setY(y);
	setSpeedX(speedX);
	setSpeedY(speedY);
	setDirX(dirX);
	setDirY(dirY);
	setBoundX(boundX);
	setBoundY(boundY);
	setImage(bitmapPath);
	setValuesFromBitmap();
	setAlive(alive);
	setCollidable(collidable);
}
Пример #5
0
	void Mogh::tick(gen::GameEngine* ge){
		if(getHealth() < 1){
			SDL_Flip(gen::global.screen);
			SDL_Delay(4000);
			ge->setGameOver(true);
			return; 
		}

		if(damaged){
			if(SDL_GetTicks() > getTimer()){
				setCollidable(true);
				setVelocityX(getVelocityX()/2); 
				setVelocityY(getVelocityY()/2);
				damaged = false; 
			}		
		} 
		Hero::tick(ge);

		if(hpText == 0){
			hpText =  gen::Text::createText("c:\\WINDOWS\\Fonts\\arial.ttf", 30, "0", 0, 0, 0);
			hpText->setPositions(10, 10);
		}
		std::stringstream s;
		s << "HP: "; 
		s << getHealth();
		hpText->setMessage(s.str()); 
		
		if(amountKilled == 0){
			amountKilled =  gen::Text::createText("c:\\WINDOWS\\Fonts\\arial.ttf", 30, "0", 0, 0, 0);
			amountKilled->setPositions(200, 10);
		}
		std::stringstream s2;
		s2 << "Killscore: "; 
		s2 << Character::getAmountRemoved();
		amountKilled->setMessage(s2.str()); 
		
		hpText->tick(ge);
		amountKilled->tick(ge); 

	}
Пример #6
0
void Moveable::setCollidedState(COLLISION col)
{
	if(col!=NO)
		setCollidable(false);
	this->col = col;
}
Пример #7
0
penguin::penguin() : object() 
{
	setCollidable(true);
	setLives(3);
}