Как создать камеру для просмотра карты мира (сверху вниз, без персонажа игрока)Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как создать камеру для просмотра карты мира (сверху вниз, без персонажа игрока)

Сообщение Anonymous »

Я пытаюсь реализовать функцию камеры, которая работает так, что изображения перемещаются, однако:

1) Последующие изображения, например новое меню, получаются созданы в том месте, где они были бы созданы, если бы я не переместил камеру. Таким образом, если я переместим камеру на 30 пикселей вправо, последующие изображения, которые должны были быть созданы в (0,0), теперь будут созданы в (30,0).
Это также относится к взаимодействию с кнопками; в приведенном выше примере, чтобы использовать кнопку, которая была бы создана в (0,0), мне нужно удерживать указатель мыши на (0,0), даже если кнопка теперь отображается в (30,0)
Итак, если я передвигаю камеру, я получаю такие результаты, как https://i.sstatic.net/yfiRH.png (видите, как я выбираю новую игру, когда моя мышь находится над ней? Где находится моя мышь, там, где была кнопка до того, как я переместил камеру) или https://i.sstatic.net/VjOoe.png (игра запоминает, что я перемещал камеру в предыдущем меню, и теперь создает следующее меню в то же место, где было исходное меню до перемещения камеры

2) Если я создаю изображение, превышающее ширину или высоту экрана, а затем перемещаю камеру, я на самом деле не видите остальную часть изображения. Вместо этого я вижу что-то вроде этого: https://i.sstatic.net/JwtQs.png

Итак, вместо того, чтобы показывать остальную часть карты, игра просто движется снимок (размером ширина экрана по высоте экрана) примерно: https://i.sstatic.net/S64q2.png - но если бы я увеличил меню, вы увидите, что карта на самом деле должна быть намного больше, и я, очевидно, хочу чтобы увидеть остальную часть карты, когда я перемещаю камеру: https://i.sstatic.net/YSN7s.png

Соответствующие переменные объявлены в классе Controller:

Код: Выделить всё

    windowWidth = 800 #1792
windowHeight = 600 #896
windowResize = False
cameraactive = False
camera = pygame.display.set_mode((windowWidth, windowHeight))
screen = pygame.Surface((windowWidth, windowHeight))
mouse = pygame.mouse.get_pos()
camerax = 0
cameray = 0
sprites = pygame.sprite.Group()
# All the other sprite.Group()s, such as spritesciv, are created just like this one
spriteslist = [sprites , spritesciv , tiles , cities , texttiles , textcities , textcitiesselected , buttonscitiesselected , textbuttonscitiesselected , buttons , buttonsselectciv , buttonsrandomciv , textinputs]
buttonslist = [tiles , cities , buttonscitiesselected , buttons , buttonsselectciv , buttonsrandomciv , textinputs]
Соответствующие функции в контроллере

Код: Выделить всё

    def on_event(self):
keys = pygame.key.get_pressed()
for event in pygame.event.get():
if event.type == pygame.QUIT:
self._running = False
if keys[K_ESCAPE]:
self._running = False
if event.type == MOUSEMOTION:
Controller.mouse = pygame.mouse.get_pos()
if event.type == pygame.VIDEORESIZE: #Controller.windowResize
screensize = event.size
Controller.windowWidth = event.w
Controller.windowHeight = event.h
screen = pygame.display.set_mode(screensize,RESIZABLE)
if self.cameraactive:
if Controller.mouse[0]

Подробнее здесь: [url]https://stackoverflow.com/questions/59706332/how-to-create-a-camera-for-looking-at-a-world-map-top-down-no-player-character[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как создать камеру, которая будет следовать за телом мира jbox2d?
    Гость » » в форуме JAVA
    0 Ответы
    27 Просмотры
    Последнее сообщение Гость
  • Как создать камеру, которая будет следовать за телом мира jbox2d?
    Гость » » в форуме Android
    0 Ответы
    22 Просмотры
    Последнее сообщение Гость
  • Расчесывание мира и персонажа для завершения игры [дубликат]
    Anonymous » » в форуме Python
    0 Ответы
    36 Просмотры
    Последнее сообщение Anonymous
  • Как заставить игрока и боты выбрать карты, чтобы передать им игрока по часовой стрелке?
    Anonymous » » в форуме Javascript
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Использование Opencv2 для просмотра изображения сверху вниз с помощью маркеров ArUco.
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»