Processing 处理:自上而下射手中的多发子弹
我想做一个简单的自上而下的射手。当用户按下W、A、S或D时,“子弹”(矩形)将从“射手”中弹出。根据我的代码,在到达屏幕末端之前,每个方向只能发射一颗子弹。有没有办法让他们(用户)可以朝一个方向发射多发子弹 这是我的密码:Processing 处理:自上而下射手中的多发子弹,processing,Processing,我想做一个简单的自上而下的射手。当用户按下W、A、S或D时,“子弹”(矩形)将从“射手”中弹出。根据我的代码,在到达屏幕末端之前,每个方向只能发射一颗子弹。有没有办法让他们(用户)可以朝一个方向发射多发子弹 这是我的密码: package topdownshooter; 导入处理.core.PApplet; 导入加工.core.PImage; 公共类TopDownShooter扩展PApplet{ 皮马杰射手; 浮动射手x=400; 浮动射击=300; 浮动速度; 浮球速度; 浮球速度; 浮球速
package topdownshooter;
导入处理.core.PApplet;
导入加工.core.PImage;
公共类TopDownShooter扩展PApplet{
皮马杰射手;
浮动射手x=400;
浮动射击=300;
浮动速度;
浮球速度;
浮球速度;
浮球速度;
布尔shootUp=false;
布尔左=假;
布尔分解=假;
布尔shootRight=false;
公共静态void main(字符串[]args){
PApplet.main(“topdownshooter.topdownshooter”);
}
公共作废设置(){
shooter=loadImage(“shooter.png”);
}
公共无效设置(){
尺寸(800600);
}
按public void键(){
如果(键=='w'){
shootUp=true;
}
如果(键=='a'){
shootLeft=true;
}
如果(键=='s'){
击落=正确;
}
如果(键=='d'){
shootRight=true;
}
}
公众抽签(){
背景(206);
图像模式(中心);
图像(射手、射手、射击术);
如果(shootUp==true){
rect(shooterX,shooterY-u_-bulletSpeed,5,5);
u_速度+=2;
如果(u_Bullet速度>300){
速度=0;
射击=假;
}
}
if(shootLeft==true){
rect(shooterX-l_bulletSpeed,shooterY,5,5);
l_速度+=2;
如果(低速>400){
l_速度=0;
shootLeft=false;
}
}
如果(分解==真){
rect(shooterX,shooterY+d_bulletSpeed,5,5);
d_速度+=2;
如果(d_Bullet速度>300){
d_速度=0;
击落=错误;
}
}
if(shootRight==true){
rect(shooterX+r_bulletSpeed,shooterY,5,5);
r_速度+=2;
如果(r_bulletSpeed>400){
r_速度=0;
shootRight=false;
}
}
}
}
语言正在处理,我正在使用EclipseIDE。
谢谢 如果我是你,我会这么做。首先,我将您的项目符号数据封装到一个类中,如下所示:
class Bullet{
float x;
float y;
float xSpeed;
float ySpeed;
// you probably want a constructor here
void drawBullet(){
// bullet drawing code
}
}
bullets.add(new Bullet(bulletX, bulletY));
然后我将创建一个ArrayList
,其中包含Bullet
实例:
ArrayList<Bullet> bullets = new ArrayList<Bullet>();
然后,为了绘制项目符号,我将迭代ArrayList
,并调用相应的函数:
for(Bullet b : bullets){
b.drawBullet();
}
无耻的自我推销:
- 是关于创建类的教程
- 是关于使用
的教程ArrayList
项目符号.add(新项目符号(bulletX,bulletY))
中,我得到一个错误变量bulletX/Y不存在
。我试着让它们变为变量,但它说构造函数项目符号(float,float)不存在
@Hedgy请注意,我的代码只是一个示例,并不打算复制粘贴。注意我的Bullet
类中的注释,它说您可能需要添加自己的构造函数。