问题描述
问题是创建两个形状并移动它们,当你按下'1'时,你可以控制方形移动,当你按下'2'时你可以控制圆形移动。 这是我到目前为止所做的。 我的班
node_modules/@google/earthengine
主要功能
class MyShape{
int x,y;
void display(){
stroke(0);
rect(200+x,200+y,50,50);
}
void cycle(){
stroke(0);
ellipse(100+x,100+y,50);
}
void move(){
if(keypressed && key == CODED){
if(keyCode == LEFT){
x--;
}else if(keyCode == RIGHT){
x++;
}else if(keyCode == UP){
y--;
}else if(keyCode == DOWN){
y++;
}
}
}
}
我尝试使用if来选择这两个形状,但它不起作用,我跑步时看不到形状或无法控制
谢谢你们的帮助,我很感激
解决方法
您可以首先将圆和正方形分成两个不同的类,然后创建一个名为“Shape”的超类。然后你的 Circle 和 Square 类将从这个 Shape 类继承。 形状类文件:
abstract class Shape
{
int x,y;
abstract void display();
void move()
{
if(keyPressed)
{
if(keyCode == LEFT) x--;
else if(keyCode == RIGHT) x++;
else if(keyCode == UP) y--;
else if(keyCode == DOWN) y++;
}
}
}
方形类文件:
class Square extends Shape
{
void display()
{
stroke(0);
rect(200+x,200+y,50,50);
}
}
圆形类文件
class Circle extends Shape
{
void display()
{
stroke(0);
ellipse(100+x,100+y,50);
}
}
之后我们需要找到一种方法来选择相对于按下的键移动的形状。我们可以通过创建一个变量来做到这一点,当我们按下“1”键或“2”键时,该变量将保持当前形状以移动和更改它。主文件:
Circle circle;
Square square;
Shape currentShape;
void keyPressed()
{
if(key == '1')
currentShape = square;
else if(key == '2')
currentShape = circle;
}
void setup(){
size(400,400);
circle = new Circle();
square = new Square();
}
void draw(){
background(0);
circle.display();
square.display();
if(currentShape != null)
currentShape.move();
}