コード例 #1
0
ファイル: Player.cpp プロジェクト: DariaDar/Reposit
	void Player:: Update(float time)
	{
		control(time);	
		switch(direction)
		{
		case 0: //right
			dx = speed;
			dy = 0;
			break;
		case 1: //left
			dx = -speed;
			dy = 0;
			break;
		case 2: //down
			dx = 0;
			dy = speed;
			break;
		case 3: // up
			dx = 0;
			dy = -speed;
			break;
		default:
			break;
		}

		x += dx * time;
		y += dy * time;

		speed = 0;
		sprite.setPosition(x, y);
		checkCollisionWithMap(dx, dy);
	}
コード例 #2
0
ファイル: collisions.cpp プロジェクト: Smi1le/battle-city
void collisionWithBricksForPlayer(Player *p, list<Entity*> &listBrick, bool &changeCourse) {
	for (Entity* brick : listBrick) {
		if (p->getRect().intersects(brick->getRect())) {
			checkCollisionWithMap(p, brick, changeCourse);
			p->lastCoordinates = { p->diraction.x, p->diraction.y };

		}
	}
}
コード例 #3
0
ファイル: Mouse.cpp プロジェクト: DariaDar/Reposit
	void _Mouse:: Update(float time)
	{
		if(life)
		control(time);	
		switch(direction)
		{
		case 0: //right
			dx = speed;
			dy = 0;
			break;
		case 1: //left
			dx = -speed;
			dy = 0;
			break;
		case 2: //down
			dx = 0;
			dy = speed;
			break;
		case 3: // up
			dx = 0;
			dy = -speed;
			break;
		default:
			break;
		}

		x += dx * time;
		y += dy * time;

		speed = 0;
		sprite.setPosition(x, y);
		checkCollisionWithMap(dx, dy);
		if(health <= 0)
		{
			life = false;
			speed = 0;
		}
	}
コード例 #4
0
ファイル: enemy_update.cpp プロジェクト: MihaChug/Game
void Enemy::update(float time)
{
	moveTimer += time;
	animation(time);
	if (moveTimer > 3000)
	{
		dx *= -1;
		moveTimer = 0;
	}
	x += dx*time;
	//checkCollisionWithMap(dx, 0);
	y += dy*time;
	checkCollisionWithMap(0, dy);
	sprite.setPosition(x + w / 2, y);
	if (lives <= 0) 
	{ 
		life = false; 
		dx = 0;
		dy = 0;
		sprite.setTextureRect(IntRect(32, 0, w, h));

	}
	dy += 0.0015*time;
};
コード例 #5
0
ファイル: classPlayer.cpp プロジェクト: AndrienkoF/KPIRepo
void Player::update(sf::View * view, float time) { //функция для движения
    control();
    switch(state) {
    case right:
        dx = speed;
        break;
    case left:
        dx = -speed;
        break;
    case jump:
        break;
    case down:
        dx = 0;
        break;
    case stay:
        dx = 0;
        break;
    }
    x += dx*time;
    checkCollisionWithMap(dx, 0);
    y += dy*time;
    checkCollisionWithMap(0, dy);

    sprite.setPosition(x + w/2, y + h/2);
    if(health <= 0) {
        life = false;
    }
    if(!isMove) {
        speed = 0;
    }
    if(life) {
        if(heroWithPick) {
            if (sf::Keyboard::isKeyPressed(sf::Keyboard::D)) {
                state = right;
                speed = 0.1;
                CurrentFrame += 0.005*time;
                if (CurrentFrame > 3) CurrentFrame -= 3;
                sprite.setTextureRect(sf::IntRect(37 *int(CurrentFrame), 0, 34, 55));
            }
            if (sf::Keyboard::isKeyPressed(sf::Keyboard::A)) {
                state = left;
                speed = 0.1;
                CurrentFrame += 0.005*time;
                if (CurrentFrame > 4) CurrentFrame -= 3;
                sprite.setTextureRect(sf::IntRect(37 *int(CurrentFrame), 60, 34, 55));
            }
            if ((sf::Keyboard::isKeyPressed(sf::Keyboard::W))&& (onGround)) {
                state = jump;
                dy = -0.7;
                onGround = false;
            }
            if ((sf::Keyboard::isKeyPressed(sf::Keyboard::A))&&
                    ((sf::Keyboard::isKeyPressed(sf::Keyboard::E))||
                     (sf::Keyboard::isKeyPressed(sf::Keyboard::Q))||
                     (sf::Keyboard::isKeyPressed(sf::Keyboard::Space)))) {
                if (CurrentFrame > 3) CurrentFrame -= 2;
                sprite.setTextureRect(sf::IntRect(37 *int(CurrentFrame), 251, -34, 55));
            }
            if (((sf::Keyboard::isKeyPressed(sf::Keyboard::E))||
                    (sf::Keyboard::isKeyPressed(sf::Keyboard::Q))||
                    (sf::Keyboard::isKeyPressed(sf::Keyboard::Space)))&&(!sf::Keyboard::isKeyPressed(sf::Keyboard::A))) {
                CurrentFrame += 0.005*time;
                if (CurrentFrame > 2) CurrentFrame -= 2;
                sprite.setTextureRect(sf::IntRect(37 *int(CurrentFrame), 251, 34, 55));
            }
        }

        if(heroWithSword) {
            if (sf::Keyboard::isKeyPressed(sf::Keyboard::D)) {
                state = right;
                speed = 0.1;
                CurrentFrame += 0.005*time;
                if (CurrentFrame > 3) CurrentFrame -= 3;
                sprite.setTextureRect(sf::IntRect(37 *int(CurrentFrame), 518, 34, 55));
            }
            if (sf::Keyboard::isKeyPressed(sf::Keyboard::A)) {
                state = left;
                speed = 0.1;
                CurrentFrame += 0.005*time;
                if (CurrentFrame > 4) CurrentFrame -= 3;
                sprite.setTextureRect(sf::IntRect(37 *int(CurrentFrame), 578, 34, 55));
            }
            if ((sf::Keyboard::isKeyPressed(sf::Keyboard::W))&& (onGround)) {
                state = jump;
                dy = -0.7;
                onGround = false;
            }
            if ((sf::Keyboard::isKeyPressed(sf::Keyboard::A))&&
                    ((sf::Keyboard::isKeyPressed(sf::Keyboard::E))||
                     (sf::Keyboard::isKeyPressed(sf::Keyboard::Q))||
                     (sf::Keyboard::isKeyPressed(sf::Keyboard::Space)))) {
                if (CurrentFrame > 3) CurrentFrame -= 2;
                sprite.setTextureRect(sf::IntRect(37 *int(CurrentFrame), 641, -34, 55));
            }
            if (((sf::Keyboard::isKeyPressed(sf::Keyboard::E))||
                    (sf::Keyboard::isKeyPressed(sf::Keyboard::Q))||
                    (sf::Keyboard::isKeyPressed(sf::Keyboard::Space)))&&(!sf::Keyboard::isKeyPressed(sf::Keyboard::A))) {
                CurrentFrame += 0.005*time;
                if (CurrentFrame > 2) CurrentFrame -= 2;
                sprite.setTextureRect(sf::IntRect(37 *int(CurrentFrame), 641, 34, 55));
            }
        }

        if(normalHero) {
            if (sf::Keyboard::isKeyPressed(sf::Keyboard::D)) {
                state = right;
                speed = 0.1;
                CurrentFrame += 0.005*time;
                if (CurrentFrame > 3) CurrentFrame -= 3;
                sprite.setTextureRect(sf::IntRect(37 *int(CurrentFrame), 326, 34, 55));
            }
            if (sf::Keyboard::isKeyPressed(sf::Keyboard::A)) {
                state = left;
                speed = 0.1;
                CurrentFrame += 0.005*time;
                if (CurrentFrame > 4) CurrentFrame -= 3;
                sprite.setTextureRect(sf::IntRect(37 *int(CurrentFrame), 386, 34, 55));
            }
            if ((sf::Keyboard::isKeyPressed(sf::Keyboard::W))&& (onGround)) {
                state = jump;
                dy = -0.7;
                onGround = false;
            }
            if ((sf::Keyboard::isKeyPressed(sf::Keyboard::A))&&
                    ((sf::Keyboard::isKeyPressed(sf::Keyboard::E))||
                     (sf::Keyboard::isKeyPressed(sf::Keyboard::Q))||
                     (sf::Keyboard::isKeyPressed(sf::Keyboard::Space)))) {
                if (CurrentFrame > 3) CurrentFrame -= 2;
                sprite.setTextureRect(sf::IntRect(37 *int(CurrentFrame), 449, -34, 55));
            }
            if (((sf::Keyboard::isKeyPressed(sf::Keyboard::E))||
                    (sf::Keyboard::isKeyPressed(sf::Keyboard::Q))||
                    (sf::Keyboard::isKeyPressed(sf::Keyboard::Space)))&&(!sf::Keyboard::isKeyPressed(sf::Keyboard::A))) {
                CurrentFrame += 0.005*time;
                if (CurrentFrame > 2) CurrentFrame -= 2;
                sprite.setTextureRect(sf::IntRect(37 *int(CurrentFrame), 449, 34, 55));
            }
            if(state == stay) {
                sprite.setTextureRect(sf::IntRect(41 , 449, 34, 55));
            }
        }
    }
    setPlayerCoordinateForView(view, x, y);

    dy = dy + 0.0015*time;   //постоянно притягиваемся к земле
}