提问人:Max Blowers 提问时间:11/12/2023 最后编辑:Karl KnechtelMax Blowers 更新时间:11/12/2023 访问量:41
使用 if/then 语句更新一次值
Update value once using if/then statements
问:
我正在尝试实现一个名为 scoreCount 的分数计数器,该计数器在两个形状接触时更新。我正在使用 if/then 语句来检查两个形状是否接触,如果是,则更新分数。发生的情况是,只要它们接触,代码就会继续运行,我一直在努力寻找一种方法让它只更新一次。
int player1PosX = 32;
int player1PosY = 30;
int player2PosX = 608;
int player2PosY = 570;
int scoreCount = 0;
void draw() {
drawPlayingField();
drawPlayers();
drawScoreBar();
isTagged(player1PosX, player1PosY, player2PosX, player2PosY);
}
void isTagged(int p1X, int p1Y, int p2X, int p2Y) {
println(p1X, p1Y, p2X, p2Y);
if (p1X == p2X && p1Y == p2Y) {
text("Tag, you're it!", 225, 300);
scoreCounter += 1;
}
}
我尝试使用布尔值来检查它们是否正在接触,然后在之后重置布尔值,但它仍然不起作用。
答:
0赞
Rabbid76
11/12/2023
#1
您必须检查物体是否在上一帧中相互接触,并且只有在它们现在接触但以前没有接触时才增加分数:
bool tagged = false;
void isTagged(int p1X, int p1Y, int p2X, int p2Y) {
bool taggedNow = p1X == p2X && p1Y == p2Y;
if (!tagged && taggedNow) {
text("Tag, you're it!", 225, 300);
scoreCounter += 1;
}
tagged = taggedNow;
}
评论