python – pyglet:按下按钮时更改精灵实例的图像
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – pyglet:按下按钮时更改精灵实例的图像,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1683字,纯文字阅读大概需要3分钟。
内容图文
![python – pyglet:按下按钮时更改精灵实例的图像](/upload/InfoBanner/zyjiaocheng/721/4bacab84dd174e72b872c4258370e9d7.jpg)
此代码在黑色背景上显示图像assassin1.png.一旦我按下按键,图像就会向右移动,一旦我松开按键就会停止移动.
一旦我按下键,它也应该更改为图像assassin2.png,当我释放键时,它应该更改回assassin1.png.
但是,此代码在移动时从不显示assassin2.png图像.为什么会这样,我该如何解决这个问题呢?
import pyglet
class Assassin(pyglet.sprite.Sprite):
def __init__(self, batch, img):
pyglet.sprite.Sprite.__init__(self, img, x = 50, y = 30)
def stand(self):
self.img = pyglet.image.load("assassin1.png")
return self
def move(self):
self.img = pyglet.image.load('assassin2.png')
return self
class Game(pyglet.window.Window):
def __init__(self):
pyglet.window.Window.__init__(self, width = 315, height = 220)
self.batch_draw = pyglet.graphics.Batch()
self.player = Assassin(batch = self.batch_draw, img = pyglet.image.load("assassin1.png"))
self.keys_held = []
self.schedule = pyglet.clock.schedule_interval(func = self.update, interval = 1/60.)
def on_draw(self):
self.clear()
self.batch_draw.draw()
self.player.draw()
def on_key_press(self, symbol, modifiers):
self.keys_held.append(symbol)
if symbol == pyglet.window.key.RIGHT:
self.player = self.player.move()
print "The 'RIGHT' key was pressed"
def on_key_release(self, symbol, modifiers):
self.keys_held.pop(self.keys_held.index(symbol))
self.player = self.player.stand()
print "The 'RIGHT' key was released"
def update(self, interval):
if pyglet.window.key.RIGHT in self.keys_held:
self.player.x += 50 * interval
if __name__ == "__main__":
window = Game()
pyglet.app.run()
解决方法:
我看了pyglet’s source code,我觉得问题在这里:
self.img = pyglet.image.load(...
图像存储在self.image变量中,而不是self.img中.所以改为:
self.image = pyglet.image.load(...
应该更新精灵正在使用的图像.
内容总结
以上是互联网集市为您收集整理的python – pyglet:按下按钮时更改精灵实例的图像全部内容,希望文章能够帮你解决python – pyglet:按下按钮时更改精灵实例的图像所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。