Ejemplo n.º 1
0
    def __init__(self):
        ShowBase.__init__(self)

        # создаём менеджер карты
        self.map_manager = MapManager()

        # создаём контроллер мышки и клавиатуры
        self.controller = Controller()

        # создаём редактор
        self.editor = Editor(self.map_manager)

        # загружаем картинку курсора
        pointer = OnscreenImage(image='target.png', pos=(0, 0, 0), scale=0.08)
        # устанавливаем прозрачность
        pointer.setTransparency(TransparencyAttrib.MAlpha)

        # имя файла для сохранения и загрузки карт
        self.file_name = "my_map.dat"

        self.accept("f1", self.basicMap)
        self.accept("f2", self.generateRandomMap)
        self.accept("f3", self.saveMap)
        self.accept("f4", self.loadMap)

        print("'f1' - создать базовую карту")
        print("'f2' - создать случайную карту")
        print("'f3' - сохранить карту")
        print("'f4' - загрузить карту")

        # генерируем случайный уровень
        self.generateRandomMap()
Ejemplo n.º 2
0
    def __init__(self):
        self.window = Window(Game.WINDOW_WIDTH, Game.WINDOW_HEIGHT)
        self.window.set_title(Game.TITLE)

        self.keyboard = self.window.get_keyboard()
        self.mouse = self.window.get_mouse()

        self.dir = path.dirname(__file__)

        self.background = Sprite(Game.BACKGROUND_PATH)
        self.logo = Sprite(Game.LOGO_PATH)
        self.fade = Sprite(Game.FADE_PATH)
        self.action = Sprite(Game.ACTION_PATH)

        self.logo.x = self.window.width / 2 - self.logo.width / 2
        self.logo.y = 100

        self.action.x = self.window.width / 2 - self.action.width / 2
        self.action.y = self.window.height / 2 + self.action.height

        self.isGameStarted = False

        self.descentSpeed = DEFAULT_DESCENT_SPEED = 80

        self.highScore = self.readHighScore()
        self.score = 0

        self.mapManager = MapManager(self)
        self.mapManager.init()

        self.player = Player(self)
Ejemplo n.º 3
0
    def stop(self):
        self.isGameStarted = False

        self.descentSpeed = DEFAULT_DESCENT_SPEED = 80

        if (self.score > self.highScore):
            self.highScore = self.score
            self.writeHighScore()

        self.score = 0

        self.player = Player(self)
        self.mapManager = MapManager(self)
        self.mapManager.init()
Ejemplo n.º 4
0
    def __init__(self):
        ShowBase.__init__(self)

        # режим редактирования
        self.edit_mode = True

        # создаём менеджер карты
        self.map_manager = MapManager()

        # создаём контроллер мышки и клавиатуры
        self.controller = Controller()

        # создаём редактор
        self.editor = Editor(self.map_manager)

        # загружаем картинку курсора
        self.pointer = OnscreenImage(image='target.png',
                                     pos=(0, 0, 0),
                                     scale=0.08)
        # устанавливаем прозрачность
        self.pointer.setTransparency(TransparencyAttrib.MAlpha)

        # имя файла для сохранения и загрузки карт
        self.file_name = "my_map.dat"

        self.accept("f1", self.basicMap)
        self.accept("f2", self.generateRandomMap)
        self.accept("f3", self.saveMap)
        self.accept("f4", self.loadMap)

        print("'f1' - создать базовую карту")
        print("'f2' - создать случайную карту")
        print("'f3' - сохранить карту")
        print("'f4' - загрузить карту")

        # зарегистрируйте на события нажатия клавиш
        # "0", "1", "2" ... "9" метод установки цвета
        # ...
        self.accept("z", self.map_manager.settex)
        self.accept("x", self.map_manager.tchange)
        self.accept("1", self.setcolor, [(1, 1, 1, 1)])
        self.accept("2", self.setcolor, [(0.3, 1, 0.3, 1)])
        #self.accept("3",self.setcolor,[()])
        base.accept("tab", self.switchEditMode)

        # генерируем случайный уровень
        self.generateRandomMap()
Ejemplo n.º 5
0
class Config:
    # self.service_lock = False
    # self.curr_process = None # one of None, 'slam', or 'amcl'
    map_mgr = MapManager()
    pose_svr = PoseServer()
    map_name = None

    # at least one of these should be None at all times
    amcl_process = None
    slam_process = None
Ejemplo n.º 6
0
    def __init__(self):
        ShowBase.__init__(self)

        # режим редактирования
        self.edit_mode = True

        # создаём менеджер карты
        self.map_manager = MapManager()

        # создаём контроллер мышки и клавиатуры
        self.controller = Controller()

        # создаём редактор
        self.editor = Editor(self.map_manager)

        # загрузка модели
        sky = loader.loadModel('sky/skybox')
        # перемещаем модель в рендер
        sky.reparentTo(render)
        # устанавливаем масштаб и позицию для модели
        sky.setScale(100)

        # загружаем картинку курсора
        self.pointer = OnscreenImage(image='target.png',
                                     pos=(0, 0, 0),
                                     scale=0.08)
        # устанавливаем прозрачность
        self.pointer.setTransparency(TransparencyAttrib.MAlpha)

        # имя файла для сохранения и загрузки карт
        self.file_name = "testmap.dat"

        # номер строки для текста на экране
        self.text_row = 1

        # вывод на экран инструкций
        self.addInstructions("[Tab]: Edit/Game mode")
        self.addInstructions("Move mouse: Rotate camera")
        self.addInstructions("Left mouse button: Add block")
        self.addInstructions("Right mouse button: Remove block")
        self.addInstructions("[W]: Move Forward")
        self.addInstructions("[S]: Move Back")
        self.addInstructions("[A]: Move Left")
        self.addInstructions("[D]: Move Right")
        self.addInstructions("[E]: Move Up")
        self.addInstructions("[Q]: Move Down")
        self.addInstructions("[Space]: Jump")
        self.addInstructions("[F1]: Basic map")
        self.addInstructions("[F2]: Random map")
        self.addInstructions("[F3]: Save map")
        self.addInstructions("[F4]: Load map")
        self.addInstructions("[1-8]: Select color")
        self.addInstructions("Press ESC to exit")

        # элемент текста оповещений
        self.infoText = OnscreenText(text='',
                                     scale=0.06,
                                     fg=(1, 1, 1, 1),
                                     shadow=(0, 0, 0, 1),
                                     align=TextNode.ALeft,
                                     parent=base.a2dBottomLeft,
                                     pos=(0.08, 0.08))

        self.accept("f1", self.basicMap)
        self.accept("f2", self.generateRandomMap)
        self.accept("f3", self.saveMap)
        self.accept("f4", self.loadMap)

        self.accept("1", self.setColor, [(1, 1, 1, 1), 'white'])
        self.accept("2", self.setColor, [(1, 0.3, 0.3, 1), 'red'])
        self.accept("3", self.setColor, [(0.3, 1, 0.3, 1), 'green'])
        self.accept("4", self.setColor, [(0.3, 0.3, 1, 1), 'blue'])
        self.accept("5", self.setColor, [(1, 1, 0.3, 0.5), 'yellow'])
        self.accept("6", self.setColor, [(0.3, 1, 1, 0.5), 'aqua'])
        self.accept("7", self.setColor, [(1, 0.3, 1, 0.5), 'purple'])
        self.accept("8", self.setColor, [None, 'random'])

        base.accept("tab", self.switchEditMode)

        self.setInfoText('')

        self.setColor(None, 'random')

        # генерируем случайный уровень
        self.generateRandomMap()
Ejemplo n.º 7
0
class Game(ShowBase):
    def __init__(self):
        ShowBase.__init__(self)

        # режим редактирования
        self.edit_mode = True

        # создаём менеджер карты
        self.map_manager = MapManager()

        # создаём контроллер мышки и клавиатуры
        self.controller = Controller()

        # создаём редактор
        self.editor = Editor(self.map_manager)

        # загружаем картинку курсора
        self.pointer = OnscreenImage(image='target.png',
                                     pos=(0, 0, 0),
                                     scale=0.08)
        # устанавливаем прозрачность
        self.pointer.setTransparency(TransparencyAttrib.MAlpha)

        # имя файла для сохранения и загрузки карт
        self.file_name = "my_map.dat"

        self.accept("f1", self.basicMap)
        self.accept("f2", self.generateRandomMap)
        self.accept("f3", self.saveMap)
        self.accept("f4", self.loadMap)

        print("'f1' - создать базовую карту")
        print("'f2' - создать случайную карту")
        print("'f3' - сохранить карту")
        print("'f4' - загрузить карту")

        # зарегистрируйте на события нажатия клавиш
        # "0", "1", "2" ... "9" метод установки цвета
        # ...
        self.accept("z", self.map_manager.settex)
        self.accept("x", self.map_manager.tchange)
        self.accept("1", self.setcolor, [(1, 1, 1, 1)])
        self.accept("2", self.setcolor, [(0.3, 1, 0.3, 1)])
        #self.accept("3",self.setcolor,[()])
        base.accept("tab", self.switchEditMode)

        # генерируем случайный уровень
        self.generateRandomMap()

    def basicMap(self):
        if not self.edit_mode:
            self.controller.setEditMode(self.edit_mode)
        self.map_manager.basicMap()
        print('Basic map generated')

    def generateRandomMap(self):
        if not self.edit_mode:
            self.controller.setEditMode(self.edit_mode)
        self.map_manager.generateRandomMap()
        print('Random map generated')

    def saveMap(self):
        self.map_manager.saveMap(self.file_name)
        print('Map saved to "' + self.file_name + '"')

    def loadMap(self):
        if not self.edit_mode:
            self.controller.setEditMode(self.edit_mode)
        self.map_manager.loadMap(self.file_name)
        print('Map loaded from "' + self.file_name + '"')

    # добавьте метод установки цвета
    # ...
    def setcolor(self, color):
        if self.edit_mode:
            self.map_manager.setColor(color)
        # если установлен режим редактирования
        # ...
        # вызовите метод setColor менеджера карты
        # ...
    def switchEditMode(self):
        self.edit_mode = not self.edit_mode
        self.controller.setEditMode(self.edit_mode)
        self.editor.setEditMode(self.edit_mode)

        if self.edit_mode:
            self.pointer.setImage(image='target.png')
        else:
            self.pointer.setImage(image='target1.png')
        self.pointer.setTransparency(TransparencyAttrib.MAlpha)
Ejemplo n.º 8
0
class Game:

    WINDOW_WIDTH = 1280
    WINDOW_HEIGHT = 720
    TITLE = 'Project Mountain v1.0.0'
    DEBUG = 0

    SAVE_PATH = 'save.txt'

    BACKGROUND_PATH = 'assets/bg.png'
    LOGO_PATH = 'assets/logo.png'
    FADE_PATH = 'assets/fade.png'
    ACTION_PATH = 'assets/action.png'

    GROUND_X = -10
    GROUND_Y = 710

    DEFAULT_DESCENT_SPEED = 100
    DESCENT_FACTOR = 2
    MAX_DESCENT_SPEED = 180

    def __init__(self):
        self.window = Window(Game.WINDOW_WIDTH, Game.WINDOW_HEIGHT)
        self.window.set_title(Game.TITLE)

        self.keyboard = self.window.get_keyboard()
        self.mouse = self.window.get_mouse()

        self.dir = path.dirname(__file__)

        self.background = Sprite(Game.BACKGROUND_PATH)
        self.logo = Sprite(Game.LOGO_PATH)
        self.fade = Sprite(Game.FADE_PATH)
        self.action = Sprite(Game.ACTION_PATH)

        self.logo.x = self.window.width / 2 - self.logo.width / 2
        self.logo.y = 100

        self.action.x = self.window.width / 2 - self.action.width / 2
        self.action.y = self.window.height / 2 + self.action.height

        self.isGameStarted = False

        self.descentSpeed = DEFAULT_DESCENT_SPEED = 80

        self.highScore = self.readHighScore()
        self.score = 0

        self.mapManager = MapManager(self)
        self.mapManager.init()

        self.player = Player(self)

    def readHighScore(self):
        data = None

        try:
            file = open(path.join(self.dir, Game.SAVE_PATH), 'r')
            data = int(file.read())
            file.close()
        except:
            data = 0

        return data

    def writeHighScore(self):
        try:
            file = open(path.join(self.dir, Game.SAVE_PATH), 'w')
            file.write(str(self.highScore))
            file.close()
        except:
            return

    def stop(self):
        self.isGameStarted = False

        self.descentSpeed = DEFAULT_DESCENT_SPEED = 80

        if (self.score > self.highScore):
            self.highScore = self.score
            self.writeHighScore()

        self.score = 0

        self.player = Player(self)
        self.mapManager = MapManager(self)
        self.mapManager.init()

    def tick(self):
        self.background.draw()

        self.mapManager.tick()
        self.player.tick()

        if (self.isGameStarted):

            if (self.score > 0):
                self.player.descend(self.descentSpeed)
                self.mapManager.descend(self.descentSpeed)

            if (self.keyboard.key_pressed('ESC')):
                self.stop()

            self.window.draw_text("PONTUAÇÃO: {}".format(self.score), 0, 0, 16,
                                  (251, 242, 54), "Arial", True)

        else:
            self.fade.draw()
            self.logo.draw()
            self.action.draw()

            self.window.draw_text(
                "PONTUAÇÃO MÁXIMA: {}".format(self.highScore),
                Game.WINDOW_WIDTH / 2 - 160, Game.WINDOW_HEIGHT / 2, 24,
                (251, 242, 54), "Arial", True)

            if (self.keyboard.key_pressed('SPACE')):
                self.isGameStarted = True

        self.window.update()