Exemple #1
0
def play(view):

    map = Rpg.map
    player1 = Rpg.player1

    # 用于计算P1的自动Stop
    timeImgFilp = datetime.now()
    timePass = datetime.now() - timeImgFilp
    # 用于限制游戏速度
    timeSpeed = datetime.now()
    timePassSpeed = datetime.now() - timeSpeed

    fires = Fires.getFires()
    fires.view = map.bufViewMap
    while True:
        pad = psp2dex.Controller()

        if pad.circle or pad.esc:
            break
        if pad.altenter:
            view = pygame.display.set_mode((Inc.ScreenW, Inc.ScreenH), pygame.FULLSCREEN)
        if pad.left:
            timeImgFilp = datetime.now()
            for i in range(1, 8):
                if PlayerMoveLeft(player1, map):
                    break
        if pad.right:
            timeImgFilp = datetime.now()
            for i in range(1, 8):
                if PlayerMoveRight(player1, map):
                    break

        if pad.up:
            timeImgFilp = datetime.now()
            for i in range(1, 8):
                if PlayerMoveUp(player1, map):
                    break
        if pad.down:
            timeImgFilp = datetime.now()
            for i in range(1, 8):
                if PlayerMoveDown(player1, map):
                    break
        if pad.square:
            # J 开火
            fire = Fire(player1.x, player1.y, player1.direction, map)
            fires.fires.append(fire)
            pass
        if pad.space:
            Action(player1, map)
            pass

        # 1P 自动站住
        timePass = datetime.now() - timeImgFilp
        if timePass.days * 24 * 60 * 60 * 1000 + timePass.seconds * 1000 + timePass.microseconds / 1000 > 110:
            timeImgFilp = datetime.now()
            player1.stop()

        view.fill((0, 0, 0))
        map.draw()
        player1.draw()
        fires.update()
        fires.draw()
        map.present()

        # debug info
        player1.drawDebug(view)
        map.drawDebug(view)
        t = "hotMap(%d,%d), view(%d,%d in %d,%d)" % \
                (map.hotMapX, map.hotMapY, map.viewX, map.viewY, map.mapWPix, map.mapHPix)
        psp2dex.drawText(view, t, 0, 10)
        t = "view(%d,%d,%d)" % \
                        (map.viewX, Inc.ScreenW / 2, map.viewX - Inc.ScreenW / 2)
        psp2dex.drawText(view, t, 0, 20)
        # end debug info

        # 限制游戏速度
        while True:
            timePassSpeed = datetime.now() - timeSpeed
            timePassSpeedmicroseconds = timePassSpeed.days * 24 * 60 * 60 * 1000 + timePassSpeed.seconds * 1000 + timePassSpeed.microseconds / 1000
            if timePassSpeedmicroseconds > 30:
                timeSpeed = datetime.now()
                break

        pygame.display.flip()

    print "The End."