在处理中按键盘“1”和“2”时如何选择形状
How can I selected shape when I pressed keyboard "1" and "2" in processing
问题是创建两个形状并移动它们,当你按'1'时,你可以控制方形移动,当你按'2'时,你可以控制圆形移动。
这是我到目前为止所做的。
我的 class
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,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++;
}
}
}
}
主要功能
MyShape obj;
void setup(){
size(400,400);
obj = new MyShape();
}
void draw(){
background(0);
obj.display();
obj.cycle();
obj.move();
}
我尝试使用if来选择这两个形状,但是它不起作用,我在运行时看不到形状或者我无法控制它
谢谢你们的帮助,我很感激
您可以先将圆圈和正方形分成两个单独的 classes,然后创建一个名为“Shape”的超级 class。然后你的 Circle 和 Square class 将继承自这个 Shape class。
形状 class 文件:
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文件:
class Square extends Shape
{
void display()
{
stroke(0);
rect(200+x,200+y,50,50);
}
}
循环class文件
class Circle extends Shape
{
void display()
{
stroke(0);
ellipse(100+x,100+y,50,50);
}
}
之后我们需要找到一种方法select相对于按下的键移动哪个形状。我们可以通过创建一个变量来实现这一点,该变量将保存当前形状以在我们按下“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();
}
问题是创建两个形状并移动它们,当你按'1'时,你可以控制方形移动,当你按'2'时,你可以控制圆形移动。 这是我到目前为止所做的。 我的 class
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,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++;
}
}
}
}
主要功能
MyShape obj;
void setup(){
size(400,400);
obj = new MyShape();
}
void draw(){
background(0);
obj.display();
obj.cycle();
obj.move();
}
我尝试使用if来选择这两个形状,但是它不起作用,我在运行时看不到形状或者我无法控制它
谢谢你们的帮助,我很感激
您可以先将圆圈和正方形分成两个单独的 classes,然后创建一个名为“Shape”的超级 class。然后你的 Circle 和 Square class 将继承自这个 Shape class。 形状 class 文件:
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文件:
class Square extends Shape
{
void display()
{
stroke(0);
rect(200+x,200+y,50,50);
}
}
循环class文件
class Circle extends Shape
{
void display()
{
stroke(0);
ellipse(100+x,100+y,50,50);
}
}
之后我们需要找到一种方法select相对于按下的键移动哪个形状。我们可以通过创建一个变量来实现这一点,该变量将保存当前形状以在我们按下“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();
}