Problem with shooting bullets in both directions (Platformer)

Started by
1 comment, last by coderNull 10 years, 9 months ago

I have a question about shooting bullets on to the left side of the screen. I tried implementing a bullet class and the bullets would always change direction mid air depending on which direction the player was going. For example: if i were to shoot to the right the bullets would move to the right until i move the player to the left in which case all the bullet arrays start moving left. Is there a? way to make all of my bullets keep going a certain direction? I know there's an easy way to do this and it's just going above my head. Thanks in advance. Here is my Bullet class..

#include "Bullet.h"
Bullet::Bullet(void)
{
}
Bullet::~Bullet(void)
{
}
void Bullet::Init()
{
bulletSpeed = 10;
canShoot = 1;
counter = 1;
}
void Bullet::Shoot(BITMAP *buffer, Player player)
{
if(key[KEY_SPACE] && canShoot == 1)
{
for(int i = counter; i < maxBullets; ++i)
{
bulletX = player.getX();
bulletY = player.getY();
}
++counter;
canShoot = 0;
}
if(!key[KEY_SPACE])
{
if(canShoot == 0)
{
canShoot = 1;
}
}
for(int i = 1; i <= counter; ++i)
{
if(player.getHDir() == 1) // '1' means the player is facing to the right
{
bulletX += bulletSpeed;
}
else
{
bulletX -= bulletSpeed;
}
circlefill(buffer, bulletX, bulletY, 5, makecol(15, 50, 255));
}
}
Advertisement

just store the direction for each bullet as well as the position, set the direction when the bullet is fired.

[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

just store the direction for each bullet as well as the position, set the direction when the bullet is fired.

Thanks alot, worked like a charm.

This topic is closed to new replies.

Advertisement