Система привязки изометрической сетки для клона Minecraft в PygamePython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Система привязки изометрической сетки для клона Minecraft в Pygame

Сообщение Anonymous »

В настоящее время я разрабатываю изометрический клон Minecraft с использованием Pygame. В моей игре для перемещения игрока используется декартова система привязки сетки, которая округляет положение игрока до 16 пикселей по оси X и 8 пикселей по оси Y. Однако такой подход приводит к перекрытию блоков в изометрической проекции.
Мне нужно руководство по реализации системы привязки изометрической сетки, которая соответствует изометрической перспективе. Как преобразовать декартовы координаты в изометрические координаты для точной привязки к сетке? Какие изменения мне нужно внести в свой код, чтобы добиться этого?
Вот визуальное представление моей игры: Изображение
Ниже приведена соответствующая часть моего кода:
import pygame

window = pygame.display.set_mode((480,320))
running = True

player = pygame.image.load("grass.png")
positions = []

def round_to_multiple(x, multiple):
return (x // multiple) * multiple

while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False

if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
positions = []

if event.type == pygame.MOUSEBUTTONDOWN:
player_x, player_y = event.pos
positions.append([round_to_multiple(player_x, 16), round_to_multiple(player_y, 8)])

window.fill("white")
all_positions = positions + [pygame.mouse.get_pos()]
for pos in all_positions:
window.blit(player, pos)
pygame.display.update()
pygame.quit()


Подробнее здесь: https://stackoverflow.com/questions/783 ... -in-pygame
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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