javascript - 游戏结束返回
问题描述
我在写游戏。当满足条件(playerlife < 1)时,游戏应该停止。整个游戏都在 singlePlayer 功能中。问题是,我不知道如何结束这个功能。singlePlayer 函数中的简单放置条件不起作用,因为它仅在开始游戏时检查一次。
if (playerlife < 1) {
return;
}
我还尝试将此条件置于间隔中并检查条件是否持续满足,但我不工作,无论如何它看起来不是一个好主意。
下面是部分代码,在移动玩家后检查了一些条件。游戏类似于老派“Frogger”。当玩家跳入水中时,他失去了 1 条生命。在失去 3 条生命之后,游戏应该结束了。
$(function() {
function singlePlayer() {
checkPosition(x, y) {
for (var i = 0; i < raftsTab.length; i++) {
if (x == raftsTab[i].PosX && y == raftsTab[i].PosY) {
let thisRaft = raftsTab[i];
console.log(x, y);
console.log(thisRaft);
clearInterval(MoveToPlayer);
movePlayer(thisRaft);
return;
}
}
for (var i = 0; i < raftsTab.length; i++) {
if (x !== raftsTab[i].PosX && y !== raftsTab[i].PosY && y !== 0 && y !== 5 && y !== 10) {
player1.lifes = player1.lifes - 1;
//player dead after loosing 3 lives - it would be perfect if game could be ended from here
$('.lifes').text("Player lifes: " + player1.lifes);
for (var i = 0; i < trophiesTab.length; i++) {
if (player1.trophie - 1 == i) {
trophiesTab[i].show();
player1.trophie = -1;
}
}
player1.PosX = 5;
player1.PosY = 10;
clearInterval(MoveToPlayer);
changePosition();
return;
}
}
for (var i = 0; i < trophiesTab.length; i++) {
if (x == trophiesTab[i].PosX && y == trophiesTab[i].PosY && player1.trophie == -1) {
trophiesTab[i].hide();
}
}
if (x == 5 && y == 0 && player1.trophie !== -1) {
tresure1 = tresure1 + player1.trophie;
player1.items = player1.items + 1;
$('.items').text("Gathered items: " + player1.items + "/3");
player1.trophie = -1;
console.log(tresure1);
}
clearInterval(MoveToPlayer);
}
}
});
解决方案
推荐阅读
- java - 如何为 Spring Data jpa 存储库创建 bean?
- matplotlib - Retina 显示屏上的 Jupyter 笔记本中的图形大小不一致
- python - Python - 连接到远程服务器并查找文件以 scp 到本地服务器
- php - 如何将函数重写得更紧凑
- c - 如何将数据传递给输入流并从子进程的输出流接收数据?
- php - Prestashop webservice,请求随机资源行
- python - 传递列表时如何迭代 *args?
- react-native - 为 React Native 设置用户上下文 App Insights
- python - 发出 PyRun_File 时将 C-API 部分(打印,刷新 = True)函数传输到导入的模块
- tsql - 使用 T-SQL 从 sql server 2019 中查找 SSIS 文件的任务名称或查找 ssis 包的 xml 代码