int objectX = width/2;
int objectY = 200;
int snelheidY = 1;
int score = 0;
int richting = 1;
int positiebal;
int bal = ellipse(objectX, objectY, 50, 50);
void setup()
{
size(400, 400);
positiebal = height/2
textSize(12);
}
void draw() {
background(0, 0, 0);
ellipse(positiebal, objectY, 50, 50);
if(objectY > 375)
snelheidY = -snelheidY;
if(objectY<25)
snelheidY = -snelheidY
objectY = objectY + snelheidY;
text("score = " +score,4,10);
}
void mousePressed()
{
if (dist(mouseX, mouseY, positiebal, 200)<=200)
{score=score+1;
snelheidY = snelheidY+1
}
}
“” “” “” “” “” “” “” “” “” “” “” “” “”
我有以下问题: 1.球在下降时通过向它加速来加速球,但是当球上升时它似乎不起作用。 2.比分系统只有在按下球时才会上升,但不会这样做。
有进一步了解的人可以解释以下这些问题吗?
答案 0 :(得分:0)
当球落下时球会加速,但球在上升时似乎不起作用。
每当您按下鼠标时,您发布的代码会将球加速向下。这发生在这一行:
snelheidY = snelheidY+1;
如果球向上移动,那么向下加速将看起来像减速直到它停止。如果你继续按下那么它会转过来然后往下走。
如果你想让球沿着它前进的方向加速,那么你将不得不在这里添加一些逻辑。也许使用if
语句来检查球的方向,或者使用乘法而不是加法。
分数系统只有在按下球时才会上升,但它不会这样做。
您的代码中没有任何内容可以检查。只要光标距离球200像素,只要用户按下鼠标,您就会始终提高分数。如果你想检查鼠标是否在球内,你应该使用球的半径而不是200.
你也应该养成debugging你的计划的习惯。很难回答一般问题&#34;我该怎么做?#34;输入问题。如果您尝试某些内容,编写一些代码,然后询问一段行为不当的特定代码,那就容易多了。