예제 #1
0
    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
예제 #2
0
    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)