y_yyhc_y 2022-08-28 01:09
浏览 19
已结题

一个pygame的问题,有关类,精灵组,碰撞,update()

你好,我现在正在制作一个游戏

我在游戏中写了一个怪物类,并用update()来控制他们的行为

怪物类中有一个变量,叫状态,怪物在游戏中有两种状态,分别是 ‘活着’ 和 ‘死去’ , update() 中写了当怪物'活着'或者'死去'时的行为

我为怪物们创建了一个精灵组,名字是sprite_list,怪物生成时,便会被拉进这个精灵组,我用了sprite_list.update()来让怪物们行动

我在游戏中设定了武器,若武器碰到怪物,则怪物会‘死去’ ,其中‘死去’并不是直接被kill()消失掉了,而是执行‘死去’状态下的代码

现在的问题是,我用了pygame.sprite.spritecollide()来实现武器和怪物组的碰撞,可我该怎么用武器和精灵组中某个怪物碰撞这个条件,来改变被武器击打到的怪物的一个变量呢?

我尝试了一些方法,要么报错,要么就是全部怪物都‘死去’了,影响的不是个体,而是一整个组,这是我不想看见的

我该怎么办?

注:pygame.sprite.spritecollide() 精灵和精灵组之间的矩形碰撞检测,一个组内的所有精灵会逐一地对另外一个单个精灵进行碰撞检测,返回值是一个列表,包含了发生碰撞的所有精灵。

pygame.sprite.spritecollideany() 精灵和精灵组之间的矩形碰撞检测,上述函数的变体,当发生碰撞时,返回组内的一个精灵,无碰撞发生时,返回 None。

我尝试过pygame.sprite.spritecollideany(),但结果依然失败,不知道是不是我不会用

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 9月5日
    • 创建了问题 8月28日

    悬赏问题

    • ¥15 Linux中无法打开tomcat
    • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
    • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
    • ¥15 QQ邮箱过期怎么恢复?
    • ¥15 登录他人的vue项目显示服务器错误
    • ¥15 (标签-android|关键词-app)
    • ¥60 如何批量获取json的url
    • ¥15 comsol仿真压阻传感器
    • ¥15 Python线性规划函数optimize.linprog求解为整数
    • ¥15 llama3中文版微调