我正在尝试做一个非常短的游戏,球进入一个球门,然后它们都消失了。我怎么做?我对Java相当陌生。问题在于评论//球进入球门(“ background(“ blue”)“是我实际尝试执行的占位符)。
goal.setAnimation("goal for design.png_1");
goal.scale = 0.75;
goal.rotation = 5;
var ball = createSprite(40, randomNumber(25, 360));
ball.setAnimation("animation_1");
function draw() {
background("white");
// BALL MOVING CODE
if (keyDown ("right")) {
ball.x = ball.x + 5;
}
if (keyDown ("down")) {
ball.y = ball.y + 5;
}
if (keyDown ("up")) {
ball.y = ball.y - 5;
}
if (keyDown ("left")) {
ball.x = ball.x - 5;
}
// ball in goal
if ((ball.x && ball.y) == (goal.x && goal.y)) {
background("blue");
}
drawSprites();
}
答案 0 :(得分:0)
这里:
if ((ball.x && ball.y) == (goal.x && goal.y)) {
//...
}
假设您要检查ball
和goal
的坐标是否相同,则表达式不正确。
让我们看看如何计算该表达式:
(ball.x && ball.y)
虚假,否则ball.y
的评估结果为ball.x
。即(-5 && 10)
-> 10
和(0 && 10)
-> 0
。(goal.x && goal.y)
。==
对1.和2进行比较。在大多数情况下,这种逻辑显然无法正常工作。
例如,当ball
为{x: 1, y: 10}
并且goal
为{x: 20, y: 10}
时:
(1 && 10) == (20 && 10)
-> (10) == (10)
-> true
肯定不是您想要的结果。
您需要做的是将坐标一一比较,然后将结果与逻辑AND相结合:
if ((ball.x === goal.x) && (ball.y === goal.y)) {
//...
}