射击后如何将一颗子弹分成多颗子弹
How to split a bullet to many bullets after shooting
我是一名编程初学者,我必须为一款游戏编写一个霰弹枪镜头,但遇到了问题,不知道该怎么做
我想在游戏中添加一颗子弹,当你射击它时,它会向不同的小方向吐出几颗小子弹,所以基本上是霰弹枪射击。
我已经有了一颗普通的子弹,上面有他的位置、矢量和速度,你已经可以射击了。但我的问题是,或者我不明白的是,在我用多发子弹射击后,如何拆分一颗子弹,以及每颗子弹如何获得自己的位置和移动矢量
Bullet class{
Vector2 moveVector;
float speed =15;
public void setMoveVector(float x, float y) {
moveVector = new Vector2(x,y);}
// in that area here its for the bullet how it moving/acting including if the path is free or blocked by walls or something
if(map.pathFree(getX(), getY(), getX()+ moveVector.x * speed, getY() + moveVector.y * speed, this)) {
setPosition(getX() + moveVector.x * speed, getY() + moveVector.y * speed);
//somewhere here sould come the code splitting the bullet
//removing the bullet after a distance
DistanceIndex += speed;
if(DistanceIndex >= 1000) {
remove();
}
}
else
HitWall();
if(outsideMap()) this.remove();
}
....
}
Obj Class
//class/object/gamefigure using/creating the bullet
.....
public void shootingMethod(){
......
double direction_x = Math.cos(Math.toRadians(rotation));
double direction_y = Math.sin(Math.toRadians(rotation));
Bullet bullet = new Bullet();
....
bullet.setMoveVector((float)direction_x, (float)directoin_y);
}
Picture of my problem i mean
只需让一束较小的子弹从同一位置开始,然后朝略微不同的方向行进即可。您可以为每个子弹稍微旋转速度矢量来实现此目的。如果它们还没有,你可以让子弹传感器重叠不是问题
我是一名编程初学者,我必须为一款游戏编写一个霰弹枪镜头,但遇到了问题,不知道该怎么做
我想在游戏中添加一颗子弹,当你射击它时,它会向不同的小方向吐出几颗小子弹,所以基本上是霰弹枪射击。
我已经有了一颗普通的子弹,上面有他的位置、矢量和速度,你已经可以射击了。但我的问题是,或者我不明白的是,在我用多发子弹射击后,如何拆分一颗子弹,以及每颗子弹如何获得自己的位置和移动矢量
Bullet class{
Vector2 moveVector;
float speed =15;
public void setMoveVector(float x, float y) {
moveVector = new Vector2(x,y);}
// in that area here its for the bullet how it moving/acting including if the path is free or blocked by walls or something
if(map.pathFree(getX(), getY(), getX()+ moveVector.x * speed, getY() + moveVector.y * speed, this)) {
setPosition(getX() + moveVector.x * speed, getY() + moveVector.y * speed);
//somewhere here sould come the code splitting the bullet
//removing the bullet after a distance
DistanceIndex += speed;
if(DistanceIndex >= 1000) {
remove();
}
}
else
HitWall();
if(outsideMap()) this.remove();
}
....
}
Obj Class
//class/object/gamefigure using/creating the bullet
.....
public void shootingMethod(){
......
double direction_x = Math.cos(Math.toRadians(rotation));
double direction_y = Math.sin(Math.toRadians(rotation));
Bullet bullet = new Bullet();
....
bullet.setMoveVector((float)direction_x, (float)directoin_y);
}
Picture of my problem i mean
只需让一束较小的子弹从同一位置开始,然后朝略微不同的方向行进即可。您可以为每个子弹稍微旋转速度矢量来实现此目的。如果它们还没有,你可以让子弹传感器重叠不是问题