Python中文
首页
教程
问答
标签
搜索
登录
注册
snake game str object不是callab
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>抱歉,如果答案很简单,但我真的被困在这一个。。。 我试图做一个“蛇游戏”,但我得到一个错误,当我试图调用函数,使我的蛇移动。 错误状态为:</p> <pre><code> Traceback (most recent call last): File "C:\Users\Fran\Desktop\SnakeISN.py", line 89, in <module> theApp.on_execute() File "C:\Users\Fran\Desktop\SnakeISN.py", line 80, in on_execute snake.changeDirectionTo(3) TypeError: 'str' object is not callable </code></pre> <p>每当我开始按箭头键。。。 导入pygame 导入系统 随机导入</p> <pre><code>class Snake(): def __init__(self): self.x=400 self.y=590 self.direction = "RIGHT" self.changeDirectionTo = self.direction def changeDirectionTo(self,dir): if dir == 1 and not self.direction == 2: self.direction = "RIGHT" if dir == 2 and not self.direction == 1: self.direction = "LEFT" if dir == 3 and not self.direction == 4: self.direction = "UP" if dir == 4 and not self.direction == 3: self.direction = "DOWN" def move(self, foodPos): if self.direction == "RIGHT": self.x += 100 if self.direction == "LEFT": self.x -= 100 if self.direction == "UP": self.y -= 100 if self.direction == "DOWN": self.y += 100 class Appli: windowX = 800 windowY = 600 def __init__(self): self._running = True self._show_surf = None self._image_surf = None self.snake = Snake() def on_init(self): pygame.init() self._show_surf = pygame.display.set_mode((self.windowX,self.windowY), pygame.HWSURFACE) pygame.display.set_caption('Snake V2.7') self._running = True self._image_surf = pygame.image.load("pygame.png").convert() def on_event(self, event): if event.type == QUIT: self._running = False def on_loop(self): pass def on_render(self): self._display_surf.fill((0,0,0)) self._display_surf.blit(self._image_surf,(self.snake.x,self.snake.y)) pygame.display.flip() def on_cleanup(self): pygame.quit() def on_execute(self): snake=Snake() if self.on_init() == False: self._running = False while( self._running ): pygame.event.pump() action = pygame.key.get_pressed() if action[pygame.K_RIGHT]: snake.changeDirectionTo(1) if action[pygame.K_LEFT]: snake.changeDirectionTo(2) if action[pygame.K_UP]: snake.changeDirectionTo(3) if action[pygame.K_DOWN]: snake.changeDirectionTo(4) self.on_loop() self.on_render() self.on_cleanup() if __name__ == "__main__" : theApp = App() theApp.on_execute() </code></pre> <p>有人知道问题出在哪里吗? 第一次出现这个错误时,我把所有方向的“右”、“左”、“上”、“下”改成了1、2、3、4,希望它能解决“str call”错误,但它没有。。。你知道吗</p> <p>谢谢你的帮助</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>从<code>__init__</code>方法中去掉这一行:</p> <pre><code>self.changeDirectionTo = self.direction </code></pre> <p>你已经把一个函数<code>changeDirectionTo</code>变成了一个字符串。。。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
10 回答
无法使用Django\u mssql\u后端迁移到外部hos
5 回答
无法使用Django&Python3.4连接到MySql
5 回答
无法使用Django+nginx上载媒体文件
10 回答
无法使用Django1.6导入名称模式
4 回答
无法使用Django1.7和mongodb登录管理站点
5 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
5 回答
无法使用Djangockedi验证CBV中的字段
9 回答
无法使用Djangocketditor上载图像(错误400)
9 回答
无法使用Djangocron进行函数调用
9 回答
无法使用Djangofiler djang上载文件
4 回答
无法使用Djangokronos
9 回答
无法使用Djangomssql provid
4 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
10 回答
无法使用Djangomssq迁移Django数据库
8 回答
无法使用Djangonox创建用户
3 回答
无法使用Djangopyodb从Django查询SQL Server
1 回答
无法使用Djangopython3ldap连接到ldap
9 回答
无法使用Djangoredis连接到redis
2 回答
无法使用Django中的FK创建新表
7 回答