You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JavaScript控制游戏中图片点击的执行顺序与逻辑?

解决游戏图片点击无顺序限制的问题

核心思路是用状态变量跟踪游戏进度,点击图片前先判断当前状态是否满足触发条件,只有符合要求才执行对应逻辑。以下是具体实现方法:

1. 定义游戏状态变量

先在JavaScript里声明一个变量,用来记录当前游戏所处的阶段:

// 初始阶段设为1,可根据你的游戏流程调整数值和含义
let gameStage = 1;

2. 给图片添加带条件判断的点击逻辑

有两种实现方式,选你顺手的来:

方式一:修改原有onclick绑定

把HTML里的直接函数调用改成先检查条件:

<img id="img1" src="map.jpeg" onclick="checkAndRunMyFunction()"/>
<img id="img2" src="target.jpeg" style="display:none"/>

然后在JavaScript里写判断函数:

function checkAndRunMyFunction() {
  // 这里写你的触发条件,比如只有游戏阶段>=2才能点击这张图
  if (gameStage >= 2) {
    myFunction(); // 满足条件才执行原逻辑
  } else {
    // 不满足时给玩家提示
    alert("现在还不能点击这个哦!");
  }
}

function myFunction() {
  if (confirm("You have found the map!")) {
    document.getElementById("img2").style.display = "inline";
    // 完成操作后更新游戏阶段,解锁后续内容
    gameStage = 3;
  }
}

方式二:用JavaScript事件监听(推荐)

把HTML里的onclick属性去掉,让逻辑和结构分离:

<img id="img1" src="map.jpeg"/>
<img id="img2" src="target.jpeg" style="display:none"/>

然后在JavaScript里绑定点击事件并做判断:

// 页面加载完成后再绑定事件,避免找不到元素
document.addEventListener('DOMContentLoaded', function() {
  const mapImg = document.getElementById('img1');
  mapImg.addEventListener('click', function() {
    if (gameStage >= 2) {
      myFunction();
    } else {
      alert("现在还不能点击这个哦!");
    }
  });
});

function myFunction() {
  if (confirm("You have found the map!")) {
    document.getElementById("img2").style.display = "inline";
    gameStage = 3; // 更新阶段,解锁后续可点击内容
  }
}

3. 扩展调整

根据你的游戏流程,随时更新gameStage的数值:比如玩家完成开局任务后,把gameStage改成2;拿到关键道具后改成3,以此类推。其他需要限制点击的图片,都用同样的方式先检查gameStage是否符合要求再执行逻辑。

内容的提问来源于stack exchange,提问作者Liam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 05:50:37