我的应用程序具有以下结构:
class GameWindow(wx.Frame):
imageFile = r"C:\Users\Trufa\Desktop\pyll\img\ball.png"
data = open(imageFile, "rb").read()
stream = cStringIO.StringIO(data)
bmp = wx.BitmapFromImage(wx.ImageFromStream(stream))
image = wx.Image(imageFile, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
self.ball = wx.StaticBitmap(self, -1, image, (0, 0), (image.GetWidth(), image.GetHeight()))
self.ball.Center()
if __name__ == '__main__':
app = wx.App()
GameWindow(None, title='Pyll')
app.MainLoop()
这个简化版本按预期工作,创建球然后将其居中。
现在我尝试了各种方法,但无法解决以下问题:我想在一个单独的类中创建球及其方法,如下所示:
class Ball:
#Code to make the ball
def move(self):
self.ball.Center()
首先,这是一个很好的方法,如果我尝试留在GameWindow
课堂上,我认为我会从将Ball
概念抽象为一个类中受益。
无论如何,这怎么能做到。我确定 Ball 类必须从某人那里继承,但我不确定从谁那里继承。
我尝试继承GameWindow
和继承wx.Frame
,但没有任何好的结果,但我不确定我是否在概念上做错了,或者编程错了,并且由于我缺乏对编程类和 OO 的一般知识而无法做到在蟒蛇。
总而言之,我想要这样的东西:
class Ball():#What should I inherit from?
imageFile = r"C:\Users\Trufa\Desktop\pyll\img\ball.png"
data = open(imageFile, "rb").read()
stream = cStringIO.StringIO(data)
bmp = wx.BitmapFromImage(wx.ImageFromStream(stream))
image = wx.Image(imageFile, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
self.ball = wx.StaticBitmap(self, -1, image, (0, 0), (image.GetWidth(), image.GetHeight()))
def move(self):
self.ball.Center()