def onLoad(self): # Starting position and speed self.position = Vector2(0,300) self.speed = Vector2(0,1) # Fix speed if Input.isset(K_LEFT): self.speed.x -= self.movespeed if Input.isset(K_RIGHT): self.speed.x += self.movespeed self.jumpspeed = self.startJumpspeed if Game.currentScene: GameOver.currentScene = Game.currentScene.name
def update(self): # Change mode if Input.down(K_q): self.mode = "Select" elif Input.down(K_w): self.mode = "Move" elif Input.down(K_e): self.mode = "Scale" elif Input.down(K_r): self.mode = "Rotate" elif Input.down(K_d): try: self.objects.remove(self.selected) self.scene.objects.remove(self.selected) self.selected = None except: pass elif Input.isset(K_LEFT): self.camera.translate(Vector2(-5,0)) elif Input.isset(K_RIGHT): self.camera.translate(Vector2(5,0)) elif Input.isset(K_UP): self.camera.translate(Vector2(0,-5)) elif Input.isset(K_DOWN): self.camera.translate(Vector2(0,5)) # On click: Selection of objects and updating mouse position. if Input.down("MB1"): self.mpos = Vector2(Input.mouse_pos[0],Input.mouse_pos[1]) if not Input.isset(K_LALT): sel = False for o in self.objects: p = self.camera.screenToWorld(Vector2(*Input.mouse_pos)) if o.rect.collidepoint(p.x,p.y): self.selected = o sel = True break if not sel: self.selected = None # On drag: Moving screen or object if Input.motion("MB1"): newPos = Vector2(Input.mouse_pos[0],Input.mouse_pos[1]) move = self.mpos - newPos self.mpos = newPos if Input.isset(K_LALT): self.camera.translate(move) elif self.selected is not None: if self.modes[self.mode] is not None: self.modes[self.mode](-move)