Python中文
首页
教程
问答
标签
搜索
登录
注册
区分python中类的实例
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在处理一个叫做敌人的类的多个实例。我从游戏类的主方法调用它们,所以看起来是这样的。你知道吗</p> <pre><code>class Game(object): def main(self, screen): if condition is true: Enemy(arguments) elif condition is true: Enemy(arguments) class Enemy(pygame.sprite.Sprite): def __init__(self, location, kind, number, *groups): self.kind = kind self.number = str(number) # Stuff that determines where and which kind </code></pre> <p>每当敌人被召唤时,它就会产生一个敌人。你知道吗</p> <p>稍后我有命中检测,需要知道哪个敌人被击中,所以它更新字典。但是要为敌人(以及其他类似的类)更新字典,我需要访问敌人的每个实例,并知道我正在访问哪个实例,因为每个实例在任何给定的时间都有不同的位置变量,而且它们都在单独地、正确地更新。如果你需要更多的信息,我很乐意提供。你知道吗</p> <p>编辑:现在来看,我确实认为我简化了太多,所以我要转储一段字典更新代码,以便您可以查看它。注意,我是一个相对的新手,在编码和更多的类,所以这可能不是所有做得很好。你知道吗</p> <pre><code>class Game(object): def main(self, screen): while 1: self.hashMap[(topLeftx / acc, topLefty / acc)] = ["Enemy " + Enemy.number] topLeftx = Enemy.rect[0] topLefty = Enemy.rect[1] width = Enemy.rect[2] height = Enemy.rect[3] acc = 10 if width > acc: x = math.floor(width / acc) for a in range(1, int(x) + 1): if ((topLeftx / acc) + a, (topLefty / acc)) in self.hashMap.keys(): self.hashMap[((topLeftx / acc) + a, (topLefty / acc))].append("Enemy" + Enemy.number) else: self.hashMap[((topLeftx / acc) + a, (topLefty / acc))] = ["Enemy" + Enemy.number] if height > acc: y = math.floor(height / acc) for b in range(1, int(y) + 1): if ((topLeftx / acc), (topLefty / acc) + b) in self.hashMap.keys(): self.hashMap[((topLeftx / acc), (topLefty / acc) + b)].append("Enemy" + Enemy.number) else: self.hashMap[((topLeftx / acc), (topLefty / acc) + b)] = ["Enemy" + Enemy.number] </code></pre> <p>这是我试图为敌人做的,但失败了</p> <pre><code> AttributeError: type object 'Enemy' has no attribute 'number' </code></pre> <p>即使它是在敌人的定义。“号码”是我做身份证的方式,但没有成功。有什么好办法能让这一切顺利吗?你知道吗</p> <p>重新编辑-我忘了main方法中有一个循环。所有的命中检测也应该是主要的方法。我没有将对敌人的呼叫存储为实例,我应该如何准确地实现它?谢谢你的帮助!你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>假设您正在遍历一个<code>Enemy</code>对象列表。当您检测到一个“命中”时,您应该立即拥有被命中的<code>Enemy</code>的实例。如果您已经足够仔细地实现了这个算法,那么就不需要任何其他方法来识别特定的<code>Enemy</code>实例。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
10 回答
如何添加表示整数的擦边字符串?
9 回答
如何添加要在Bokeh中使用的新font.ttf文件?
1 回答
如何添加要显示的矩阵XY轴编号和XY轴
9 回答
如何添加计数?
10 回答
如何添加计数器函数?
8 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
4 回答
如何添加计数器来跟踪while循环中的月份和年份?
9 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
7 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
1 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
9 回答
如何添加评论拉梅尔亚姆
9 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
3 回答
如何添加谷歌地点自动完成到Flask?
9 回答
如何添加超时、python discord bot
4 回答
如何添加超过1dp的检查
4 回答
如何添加距离方法
6 回答
如何添加跟随游戏的敌人精灵
6 回答
如何添加路径以便python可以找到程序?
5 回答
如何添加身份验证/安全性以使用happybase访问HBase?
1 回答