Jump to content

  • Log In with Google      Sign In   
  • Create Account

FREE SOFTWARE GIVEAWAY

We have 4 x Pro Licences (valued at $59 each) for 2d modular animation software Spriter to give away in this Thursday's GDNet Direct email newsletter.


Read more in this forum topic or make sure you're signed up (from the right-hand sidebar on the homepage) and read Thursday's newsletter to get in the running!


Problem with shooting bullets in both directions (Platformer)


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
2 replies to this topic

#1 coderNull   Members   -  Reputation: 103

Like
0Likes
Like

Posted 03 July 2013 - 07:36 PM

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[i] = player.getX();
bulletY[i] = 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[i] += bulletSpeed;
}
else
{
bulletX[i] -= bulletSpeed;
}
circlefill(buffer, bulletX[i], bulletY[i], 5, makecol(15, 50, 255));
}
}
 


Sponsor:

#2 SimonForsman   Crossbones+   -  Reputation: 6318

Like
4Likes
Like

Posted 03 July 2013 - 07:45 PM

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


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!

#3 coderNull   Members   -  Reputation: 103

Like
0Likes
Like

Posted 03 July 2013 - 08:08 PM

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. 






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS