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

修复Pygame中仅普通仙人掌移出屏幕时增加得分的问题

修复仙人掌移出屏幕得分逻辑问题

问题根源

原代码仅对普通仙人掌的移出事件做了得分判断,遗漏了大型仙人掌的检测逻辑,导致只有普通仙人掌移出时才加分。

修复方案

移除得分判断中的仙人掌类型限制,统一检测所有仙人掌是否移出屏幕,同时确保遍历列表时避免修改原列表引发的错误。

修复后的核心代码

# 游戏主循环/更新函数中的仙人掌移出检测逻辑
for cactus in cacti_list[:]:  # 用列表切片创建副本,避免遍历中修改原列表报错
    # 移除类型判断,只要仙人掌完全移出屏幕左侧就加分
    if cactus.x < -cactus.width:
        score += 1
        cacti_list.remove(cactus)

确保仙人掌生成函数的兼容性

create_random_cactus() 生成的两种仙人掌需包含统一的属性(x、width),保证检测逻辑能通用:

import random

SCREEN_WIDTH = 800  # 示例屏幕宽度

def create_random_cactus():
    cactus_type = random.choice(["normal", "large"])
    if cactus_type == "normal":
        return {
            "type": "normal",
            "x": SCREEN_WIDTH,
            "width": 40,
            "height": 60
        }
    else:
        return {
            "type": "large",
            "x": SCREEN_WIDTH,
            "width": 60,
            "height": 80
        }

预期效果

  • 普通仙人掌完全移出屏幕左侧时,游戏得分+1
  • 大型仙人掌完全移出屏幕左侧时,游戏得分+1
  • 两种仙人掌的得分触发逻辑完全一致,无遗漏情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 20:15:59