gpt4 book ai didi

java - 火箭队通过类(class)。加工

转载 作者:太空宇宙 更新时间:2023-11-04 11:43:11 25 4
gpt4 key购买 nike

我有一个移动图像作为背景

PImage background;
int x=0; //global variable background location
rocket Rocket;

void setup(){
size(800,400);
background = loadImage("spaceBackground.jpg");
background.resize(width,height);
Rocket = new rocket();
}

void draw ()
{
image(background, x, 0); //draw background twice adjacent
image(background, x+background.width, 0);
x -=4;
if(x == -background.width)
x=0; //wrap background
Rocket.defender();
Rocket.move();
}

在另一个类(class)中,我试图让火箭上下移动

class rocket {
float x;
float y;
float speedy;
boolean up;
boolean down;

rocket(){
x = 50;
y = 200;
speedy = 3;
}

void move() {
if(up)
{
y = y - speedy;
}
if(down)
{
y = y + speedy;
}
}

void defender(){
fill(255,0,0);
rect(x,y,50,20);
triangle(x+50,y,x+50,y+20,x+60,y+10);
fill(0,0,100);
rect(x,y-10,20,10);
}

void keyPressed(){
if(keyCode == UP)
{
up = true;
}
if(keyCode == DOWN)
{
down = true;
}
}

void keyReleased(){
if(keyCode == UP)
{
up = false;
}
if(keyCode == DOWN)
{
down = false;
}
}
}

火箭将显示但不会移动。我尝试了我所知道的一切,但没有任何效果。我还尝试了火箭类(class),就像它本身作为一个项目一样,火箭会移动,所以它必须与类(class)有关。我对编码很陌生,所以请记住这一点,提前谢谢您。

最佳答案

keyPressed()keyReleased() 函数(以及任何其他事件函数)需要位于草图级别,而不是位于另一个类中。如果它们在另一个类中,Processing 不知道如何找到它们。

因此,您需要做的是将 keyPressed()keyReleased() 函数移至草图,然后调用 Rocket 类上的函数(顺便说一句,类名称应以大写字母开头),类似于从草图级 draw() 函数。

关于java - 火箭队通过类(class)。加工,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42599204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com