//this is ender's game
float r = 100;
float g = 150;
float b = 200;
float a = 200;
float f = 100;
float diam = 20;
float dim = 70;
float x = 100;
float y = 100;
float z = 20;
int t = 100;
int s = 100;
int w = 60;
int h = 60;
int eyeSize = 16;
int speed = 1;
void setup() {
size(480, 270);
background(239, 172, 238);
}
void draw() {
// Draw player's head
fill(255);
ellipse(t,s-h/2,w,h);
// Draw player's eyes
fill(0);
ellipse(x-w/3+1,y-h/2,eyeSize,eyeSize*2);
ellipse(x+w/3-1,y-h/2,eyeSize,eyeSize*2);
// draw the rocks and wall
stroke(0);
//person
fill(r, f, b, a);
rect(x+(1.5*x), (y-(.05*z)), dim, diam);
// draw ellipses
fill(r, f, b, a);
ellipse(x, y+(x/2), diam, diam);
fill(r, g, f, a);
ellipse(x+(3*x), y+(.5*x), diam, diam);
fill (f, g, b, a);
ellipse(x+(2*x), y+y, diam, diam);
fill(r,f, f, f);
ellipse(x+y, y+y, diam, diam);
}
我需要能够将播放器的头部移动到屏幕上点击鼠标的任何位置。我还需要确保玩家在撞到岩石或墙壁时停下来。
我对如何使用mousePressed或我应该用哪种功能来解决这个问题感到困惑?
答案 0 :(得分:0)
mousePressed()非常简单易用。
与您已使用setup()
和draw()
的方式类似。
这是一个最小的例子,在按下鼠标时将背景颜色更改为不同的灰色阴影:
void setup(){
}
void draw(){
}
void mousePressed(){
background(random(255));
}
请注意,还有一个名为mousePressed
的预定义变量。
根据您在代码中使用它的位置,它可能会产生不同的效果。
例如,以下是mousePressed
中使用draw()
的行为与上述示例相比的行为:
void setup(){
}
void draw(){
if(mousePressed){
background(random(255));
}
}
根据您对草图的注意事项,您可以选择mousePressed()
而不是mousePressed
或其他方式。
这是一个最小的草图,可以在按下鼠标时更改绘制播放器的x,y位置:
float r = 100;
float g = 150;
float b = 200;
float a = 200;
float f = 100;
float diam = 20;
float dim = 70;
float x = 100;
float y = 100;
float z = 20;
int t = 100;
int s = 100;
int w = 60;
int h = 60;
int eyeSize = 16;
int speed = 1;
void setup() {
size(480, 270);
}
void draw() {
//clear every frame
background(239, 172, 238);
// Draw player's head
fill(255);
ellipse(x,y,w,h);
// Draw player's eyes
fill(0);
ellipse(x-w/3+1,y,eyeSize,eyeSize*2);
ellipse(x+w/3-1,y,eyeSize,eyeSize*2);
}
void mousePressed(){
x = mouseX;
y = mouseY;
}
这并不像从一个位置跳到另一个位置那样移动。
如果您使用mousePressed
变量而不是函数,则会拖动。
看看easing逐渐将角色移向目标位置可能会很有趣。