class GameView(Screen): tile_atlas = Atlas("imgs/tiles/tile.atlas") background_image = ObjectProperty( Image(source='imgs/forest8bit.jpg') ) def __init__(self, **kwargs): super(GameView, self).__init__(**kwargs) self.ryu_atlas = Atlas("imgs/mage.atlas") self.ryu_sheet = {"run": ["0", "1", "2"]} self.sprite = Sprite(self.ryu_sheet, self.ryu_atlas) self.sprite.y = 500 self.sprite.x = 100 self.sprite.sprite_fps = 8 self.add_widget(self.sprite) self.rigth = True self.back = False self.sprite.size_hint = [1.0 / x * 20 for x in self.sprite.size] print self.sprite.size, self.sprite.size_hint # must be int, not delta time self.fps = 0 # self.sprite.flip = True def update(self, dt): self.fps += 1 self.sprite.play("run", self.fps) self.sprite.gravity_on() self.walk_way() if self.fps > 30: self.fps = 0 def walk_way(self): print self.sprite.x, self.width if self.sprite.x < self.width - self.sprite.width and self.rigth: self.sprite.x += 6 else: if not self.back: self.back = True self.sprite.flip_h() self.rigth = False if self.sprite.x > self.width - self.width and not self.rigth: self.sprite.x += -6 else: if self.back: self.back = False self.sprite.flip_h() self.rigth = True def jump(self): if self.sprite.jumps < 2: self.sprite.jumps += 1 self.sprite.speed = -self.sprite.jump_force