Javascript 如何让游戏继续玩,而不是只玩一次
目前,红色圆圈只能玩一次,游戏是否可以继续玩一分钟,然后停止并显示分数?当接下来的游戏继续进行时,游戏的答案将自动更改 人们可以运行它并查看处理过程中发生了什么,这是非常棒的。游戏是p5.js。 以下是链接: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; 矩
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而不是按位ORbx>120 | by>120
而不是bx>120 | by>120
非常感谢您的建议和编辑。非常感谢。是的,你是对的,这就是我喜欢的游戏。我玩的游戏,你给的链接,但它不工作的很好。玩游戏时,会出现灰色方块。我只是这样做的,方块会在一定帧数后出现。你必须实现一个适当的机制,告诉游戏何时停止:)好的。快乐编码!记住:它将在控制变量的(gameOver
)状态:)周围全部删除