Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何让游戏继续玩,而不是只玩一次_Javascript_Html_P5.js - Fatal编程技术网

Javascript 如何让游戏继续玩,而不是只玩一次

Javascript 如何让游戏继续玩,而不是只玩一次,javascript,html,p5.js,Javascript,Html,P5.js,目前,红色圆圈只能玩一次,游戏是否可以继续玩一分钟,然后停止并显示分数?当接下来的游戏继续进行时,游戏的答案将自动更改 人们可以运行它并查看处理过程中发生了什么,这是非常棒的。游戏是p5.js。 以下是链接: var-bx; 风险价值; 变量大小=75; var overBox=假; var-locked=false; var xOffset=0.0; var yOffset=0.0; 函数设置(){ createCanvas(600300); bx=宽度/2.0; by=高度/2.0; 矩

目前,红色圆圈只能玩一次,游戏是否可以继续玩一分钟,然后停止并显示分数?当接下来的游戏继续进行时,游戏的答案将自动更改

人们可以运行它并查看处理过程中发生了什么,这是非常棒的。游戏是p5.js。 以下是链接:

var-bx;
风险价值;
变量大小=75;
var overBox=假;
var-locked=false;
var xOffset=0.0;
var yOffset=0.0;
函数设置(){
createCanvas(600300);
bx=宽度/2.0;
by=高度/2.0;
矩形模式(半径);
冲程重量(1.5);
}
函数draw(){
背景(230);
//测试光标是否在框上
如果(mouseX>bx-ellSize&&mouseX按ellSize和鼠标<按+ellSize){
overBox=真;
如果(!锁定){
中风(255);
} 
}否则{
冲程(0);
过箱=假;
}
//画盒子
填充(250,0,0);
椭圆(bx、by、ellSize、ellSize);
rect(50,50,80,80);
填充(0,250,0);
rect(550,50,80,80);
填充(0,0,250);
rect(50250,80,80);
填充(0,0,0);
rect(550、250、80、80);
}
函数mousePressed(){
if(overBox){
锁定=真;
}否则{
锁定=错误;
}
xOffset=mouseX bx;
yOffset=鼠标指针;
}
函数mouseDragged(){
如果(已锁定){
bx=鼠标X偏移量;
by=mouseY yOffset;
}
}
函数mouserereleased(){
如果(bx>120 | by>120){
bx=300;
乘=150;
}
否则{
ellSize=0;
}
}

如果我理解正确,一旦游戏结束,它会暂停一分钟,然后显示分数。在它这样做之后,一些答案将被更改,然后它将继续再次运行?如果是,您可以这样做:

// you'll need to have something change this to true
// You'll use this variable to rerun the game if the user chooses to do so
let gameOver = false 

function draw(){
  // draw your game's elements
   if (/*game over condition*/) {
     gameOver = true;
     // Once gameOver is true, the elements of your game will
     // no longer be drawn and that is when you'll draw the scoreboard
   }
   if(gameOver){
        // Once gameOver is false again, your game will run normally
        showScores();
      } 
}
ShowScores是您可以绘制记分板内容并操纵变量的地方

function showScore(){
  while(counter != 60){
    // introduce some delay so your game will still be displayed for 1 minute
    if(frameCount % 60 == 0){
      counter++;
    }
  }

  // you can also manipulate variables that contain the answer here if you want

  // reset the canvas so stuff won't be drawn over other stuff
  // draw our imaginary scoreboard
  background(255,255,255);
  fill(240,240,240);
  rect(50, 50, 80, 80);

  resetGame();
}
resetGame是给用户重新运行游戏的选项。如果他选择这样做,请将
gameOver
设置为
false
,以便重新绘制游戏

function resetGame(){
 // give the user an option to rerun the game
 // then set gameOver to false so that the game's elements will be
 // draw again instead of the scroreboard.
}

这里有一个:)

你能提供一个有效的例子吗?不要依赖外部资源的链接来理解你的问题。它们可能会消失,而你的问题变得毫无用处。谢谢你,我改了。它便于人们阅读。当松开鼠标按钮时,必须设置
locked=false
此外,您应该使用逻辑OR而不是按位OR
bx>120 | by>120
而不是
bx>120 | by>120
非常感谢您的建议和编辑。非常感谢。是的,你是对的,这就是我喜欢的游戏。我玩的游戏,你给的链接,但它不工作的很好。玩游戏时,会出现灰色方块。我只是这样做的,方块会在一定帧数后出现。你必须实现一个适当的机制,告诉游戏何时停止:)好的。快乐编码!记住:它将在控制变量的(
gameOver
)状态:)周围全部删除