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

Pygame开发太空入侵者游戏出现int类不支持[]运算符报错如何解决

报错原因及解决方案

Class 'int' does not define 'getitem', so the '[]' operator cannot be used on its instances
该报错的核心是你误将原本为列表类型的变量覆盖为了整数类型,后续代码尝试对整数执行[]索引操作,而整数类型本身不支持该操作,所以触发异常。

需修改的两处错误

  1. 碰撞逻辑错误覆盖列表变量
    你初始化时enemyX、enemyY为存储所有敌人坐标的列表,但在碰撞触发的代码中,你直接对全局的enemyX、enemyY赋值为单个随机整数:
# 错误写法
enemyX = random.randint(0, 735)
enemyY = random.randint(0, 150)

应该修改为仅更新触发碰撞的第i个敌人的坐标:

# 正确写法
enemyX[i] = random.randint(0, 735)
enemyY[i] = random.randint(50, 150)
  1. 列表直接做加法运算逻辑错误
    你在游戏循环全局位置写了enemyX += enemyX_change,enemyX和enemyX_change都是列表,不能直接整体相加更新。将这行代码删除,移动到敌人遍历循环内部:
for i in range(num_of_enemies):
    # 新增敌人坐标更新代码
    enemyX[i] += enemyX_change[i]
    # 原有判断敌人边界的代码不变
    if enemyX[i] <= enemyMinPosition[i]:
        ...

修改完上述两处问题后,报错就会消失,游戏可以正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:18:00