Java 在游戏中使用对象创建子弹
我有一些处理代码,当按下某个键时,我需要创建一个新的矩形框,我需要在屏幕上显示这些矩形框的倍数。我有所有的代码设置,所以当我按下一个键时,可能会发生一些事情,但我试图无限地创建新对象,但我无法让它工作 代码: 这是我到目前为止所有的代码。我需要能够有它,这样当我按下“F”键(已经在功能控制中定义)时,一个新的框会在船舶坐标处创建,其自身的Z方向会不断减小。记住,我必须能够同时拥有多个这样的盒子Java 在游戏中使用对象创建子弹,java,opengl,processing,Java,Opengl,Processing,我有一些处理代码,当按下某个键时,我需要创建一个新的矩形框,我需要在屏幕上显示这些矩形框的倍数。我有所有的代码设置,所以当我按下一个键时,可能会发生一些事情,但我试图无限地创建新对象,但我无法让它工作 代码: 这是我到目前为止所有的代码。我需要能够有它,这样当我按下“F”键(已经在功能控制中定义)时,一个新的框会在船舶坐标处创建,其自身的Z方向会不断减小。记住,我必须能够同时拥有多个这样的盒子 我希望有人告诉我必须采取哪些步骤来完成这项工作。以下是获得所需的步骤: 定义一个自定义的项目符号对象
我希望有人告诉我必须采取哪些步骤来完成这项工作。以下是获得所需的步骤:
- 定义一个自定义的
对象,该对象包含位置、速度和其他所需属性,也可能是一个绘图函数项目符号
- 声明这些
对象的集合项目符号
- 当你想射出一颗子弹时,只需将它添加到集合中即可
- 要绘制所有项目符号,请在
方法中迭代集合draw()
- 要更新所有项目符号的属性,请定义一个更新每个项目符号的速度、位置等的
方法,该方法也由update()
函数调用draw()
public float translateX = 0;
public float translateY = 260;
public float translateZ = 10000;
float bulletX, bulletY, bulletZ;
public int rotationBlue = 1;
public int rotationGreen = 1;
public int rotationRed = 1;
public boolean shootBool = false;
public boolean shootBoolVal = true;
void setup() {
size(1280, 720, P3D);
frameRate(60);
}
void draw() {
background(0);
translate(640, 360, -10000);
fill(0);
box(100000);
ship();
control();
}
void control() {
if (keyPressed) {
if (key == 'a' || key == 'A') {
translateX = translateX - 5;
}
if (key == 'd' || key == 'D') {
translateX = translateX + 5;
}
if ((key == 's' || key == 'S')) {
translateZ = translateZ + 5;
}
if ((key == 'w' || key == 'W')) {
translateZ = translateZ - 5;
}
if ((key == 'q' || key == 'Q')) {
translateY = translateY - 5;
}
if ((key == 'e' || key == 'E')) {
translateY = translateY + 5;
}
if (key == 'f' || key == 'F') {
}
}
}
public void ship() {
fill(0, 0, 255);
stroke(255);
strokeWeight(3);
translate(translateX, translateY, translateZ);
//translate(mouseX, mouseY, 0);
rotateX(radians(rotationBlue));
rotateY(radians(rotationBlue));
rotateZ(radians(rotationBlue));
rotationBlue++;
box(100);
fill(0, 255, 0);
rotateX(radians(rotationGreen));
rotateY(radians(rotationGreen));
rotateZ(radians(rotationGreen));
rotationGreen--;
box(100);
fill(255, 0, 0);
rotateX(radians(rotationRed));
rotateY(radians(rotationRed));
rotateZ(radians(rotationRed));
rotationRed = rotationRed + 2;
box(100);
//translateZ = translateZ - 5;
}