Возникли проблемы с столкновением масок в PygamePython

Программы на Python
Ответить
Anonymous
 Возникли проблемы с столкновением масок в Pygame

Сообщение Anonymous »

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

class Character:
def __init__(self, x, y):
self.image = pygame.image.load("Player.gif").convert_alpha()
self.rect = self.image.get_rect()
self.topleft = (x, y)
self.mask = pygame.mask.from_surface(self.image)
def draw(self, screen):
screen.blit(self.image, self.rect)

class Guard:
def __init__(self):
self.image = pygame.image.load("Guard.png").convert_alpha()
self.rect = self.image.get_rect()
self.mask = pygame.mask.from_surface(self.image)
def draw(self, screen):
screen.blit(self.image, self.rect)
# def bounce(self, speed):

def main():
pygame.init()

screen_size = width, height = 1200, 800
screen = pygame.display.set_mode(screen_size)

map = pygame.image.load("background.png").convert_alpha()
map_mask = pygame.mask.from_surface(map)
mask_image = map_mask.to_surface()

character = Character(350, 250)
guard1 = Guard()
guard2 = Guard()

character = Character(50, 50)
character_mask = character.mask.to_surface()
guard1 = Guard()
guard2 = Guard()

clock = pygame.time.Clock()

is_playing = True
while is_playing:# while is_playing is True, repeat

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

keys = pygame.key.get_pressed()
if keys[pygame.K_d]:
character.rect.move_ip(7,0)
if keys[pygame.K_a]:
character.rect.move_ip(-7,0)
if keys[pygame.K_w]:
character.rect.move_ip(0,-7)
if keys[pygame.K_s]:
character.rect.move_ip(0,7)

if map_mask.overlap(character.mask, character.topleft  ):
print("colliding")
screen.fill((255,255,255))

screen.blit(mask_image, (0,0))
screen.blit(character_mask, (100, 200))
character.draw(screen)
# guard1.draw(screen)
# guard2.draw(screen)
# character.draw(screen)
pygame.display.update()
clock.tick(50)

pygame.quit()
sys.exit()

if __name__=="__main__":
main()
Здравствуйте, я работаю над небольшой игрой/программой, в которой моему персонажу нужно перемещаться по пещере. Если персонаж сталкивается со стенами пещеры, его положение сбрасывается. Я сделал маску макета пещеры, оставив основной путь прозрачным. Я включу изображение. Когда я проверяю, конфликтуют ли маска персонажа и маска карты, он говорит, что это так, даже если мой персонаж находится на правильном пути. Это определенно может быть проблемой со смещением, которую мне трудно понять. Любая помощь приветствуется!
Изображение


Подробнее здесь: https://stackoverflow.com/questions/799 ... -in-pygame
Ответить

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

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

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

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

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