Итак, в моем классе CS я работал над code.org. Я хотел что-то сделать, но это не сработало, потому что mousePressedOver не является одним щелчком мыши. Я больше не разбираюсь в кодировании, поэтому мне нужна помощь, я не смог найти ответы в Интернете.
// framerate
World.frameRate = 120;
// sound
playSound("baller.mp3");
// variables+sprites
var balloon = createSprite(200, 200);
balloon.setAnimation("balloon");
balloon.scale = 0.1;
var baller = createSprite(200, 200);
baller.setAnimation("baller");
look at the comment where it says secret that is where I need help.
//draw loop
function draw() {
// background
background("white");
// scale and visible
balloon.scale = balloon.scale + 0.03;
baller.visible = false;
// if statement
if (balloon.scale > 0.5) {
baller.visible = true;
balloon.visible = false;
}
// secret
if (mousePressedOver(baller)) {
var shhhh = createSprite(200, 200);
shhhh.setAnimation("thing");
shhhh.scale = 0.3;
textSize(25);
text("You werent supposed to see this...", 20,50);
baller.visible = false;
}
// draw sprites
drawSprites();
}
Вы можете использовать if (mousePressedOver(baller) && mouseWentDown("leftButton")) {}
, чтобы проверить, был ли спрайт нажат один раз.
Отредактировано:
Определите логическую переменную ;
var showHiddenText = false;
Добавьте это после того, как определите background("white");
if (showHiddenText){
text("You werent supposed to see this...", 20,50)
}
Управляйте им, изменяя логическое значение;
if (mousePressedOver(baller) && mouseDown()) {
showHiddenText = true;
}
Если оператор работает так, как предполагалось, он создает текст при нажатии на спрайт. Если вы хотите, чтобы текст остался, вам нужно определить текст вне оператора if и контролировать его видимость с помощью mouseDown(). В этом случае мы вообще не должны использовать оператор if, но onClick для js или onEvent для App Lab не имеют аналогичной функции в Game Lab. Проверьте ответ, который я отредактировал.
Большое спасибо помогло! Я не очень опытный кодер.
Еще одна проблема, с которой я сталкиваюсь, заключается в том, что когда вы нажимаете на спрайт, текст появляется только на долю секунды, а затем исчезает, а спрайт-баллер не виден примерно на долю секунды. Таким образом, в основном оператор if then не делает того, что должен