Прежде всего имена классов должны обычно использовать соглашение CapWords. См. Руководство по стилю для Python Код - Имена классов .
Используйте переименование gameObjectRef
на GameObjectRef
, gameObj
на GameObj
и movableObj
на MovableObj
.
Проблема object2
соответственно класса movableObj
. Класс movableObj
является производным от класса gameObj
. Первым аргументом для конструктора gameObj
является экран. Вы должны передать screen
конструктору gameObj
в супер вызове конструктора fht:
Do
gameObj.__init__(self, img, xpos, ypos, w, h, visible, active)
gameObj.__init__(self, screen, img, xpos, ypos, w, h, visible, active)
in
class movableObj(gameObj):
def __init__(self, screen, img, xpos, ypos, w, h, gravity=1, xvel=0, yvel=0,
visible=False, leaveScreen=False, active=True):
gameObj.__init__(self, screen, img, xpos, ypos, w, h, visible, active)
self.gravity = gravity
self.xvel = xvel
self.yvel = yvel
self.leaveScreen = leaveScreen
Более того, вы должны передать конструктору screen
при создании экземпляра movableObj
:
object2 = movableObj(imgslime, 600, 200, 20, 20, 0, 2, 0)
object2 = movableObj(screen, imgslime, 600, 200, 20, 20, 0, 2, 0)