JS增量游戏开发:如何给食物收入2倍乘数添加购买次数上限
2倍食物收入道具逻辑实现方案
你原有的逻辑依赖foodPerClick数值判断购买状态,后续如果有其他升级修改了食物点击产量,该判断会失效,因此推荐用独立的布尔标记位记录购买状态。
1. 扩展游戏基础数据
在gameData中新增两个字段,分别记录道具的购买状态和售价:
var gameData = { gold: 0, goldPerClick: 1, goldPerClickCost: 10, food: 0, foodPerClick: 2, foodUpgradeCost: 10, // 新增2倍食物道具配置 hasBoughtFoodX2: false, // 购买状态标记,默认未购买 foodX2Cost: 50 // 道具售价,可根据游戏数值需求自行调整 }
2. 重写购买逻辑
购买判断按「是否已购买→资源是否充足→执行购买」的顺序执行,从根源上限制仅可购买一次:
function x2() { // 已购买直接拦截 if (gameData.hasBoughtFoodX2) { document.getElementById("applied").innerHTML = "该道具仅可购买一次"; return; } // 金币不足拦截 if (gameData.gold < gameData.foodX2Cost) { document.getElementById("applied").innerHTML = "金币不足,无法购买"; return; } // 购买生效逻辑 gameData.gold -= gameData.foodX2Cost; gameData.foodPerClick *= 2; gameData.hasBoughtFoodX2 = true; document.getElementById("applied").innerHTML = "已激活2倍食物收入效果"; // 可选优化:直接禁用购买按钮,优化用户体验,替换为你实际的按钮ID即可 // document.getElementById("x2BuyBtn").disabled = true; }
可选优化
如果需要做存档功能,直接序列化gameData存储即可,hasBoughtFoodX2标记位会跟着存档同步,不会出现重置后可以重复购买的问题。
内容的提问来源于stack exchange,提问作者Yami
相关产品推荐
相关产品推荐

