Как мне создать рамку в Pygame, чтобы мой персонаж не ходил по изображению?Python

Программы на Python
Ответить
Anonymous
 Как мне создать рамку в Pygame, чтобы мой персонаж не ходил по изображению?

Сообщение Anonymous »

Мне нужна прямоугольная рамка вокруг изображения, чтобы мой персонаж перестал проходить по ней. Было бы неплохо, если бы мой персонаж останавливался в определенных координатах, а не ходил по изображению.

Я пытался создать границу с помощью моих «x» и «y». координаты, но граница кажется растянутой по всему экрану.

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

import pygame
from pygame.locals import *
pygame.init()

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 700
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT,))
pygame.display.set_caption("Zombie Hunters")

background = pygame.image.load("background.jpg").convert()
background = pygame.transform.scale(background, (SCREEN_WIDTH,SCREEN_HEIGHT))

player = pygame.image.load("character no gun.png").convert_alpha()
player = pygame.transform.scale(player, (270, 270))

# these are the coordinates to move the player
x, y = 0, 0
MOVE_RIGHT = 1
MOVE_LEFT = 2
MOVE_UP = 3
MOVE_DOWN = 4
direction = 0
speed = 1

#House barrier
barrier_xlocation = 345
barrier_ylocation = 80
barrier_width = 190
barrier_height = 260

while True:
for event in pygame.event.get():
if event.type == QUIT:
exit()

if event.type == KEYDOWN:
if event.key == ord('q'):
pygame.quit()
exit()

if event.key == K_LEFT:
direction = MOVE_LEFT

if event.key == K_RIGHT:
direction = MOVE_RIGHT

if event.key == K_UP:
direction = MOVE_UP

if event.key == K_DOWN:
direction = MOVE_DOWN

elif event.type == KEYUP:

if event.key == K_LEFT:
direction = 0

if event.key == K_RIGHT:
direction = 0

if event.key == K_UP:
direction = 0

if event.key == K_DOWN:
direction = 0

if(direction == MOVE_LEFT):

x-= speed

if(direction == MOVE_RIGHT):

x+= speed

if(direction == MOVE_UP):

y-= speed

if(direction == MOVE_DOWN):

y += speed

#Background
screen.blit(background, (0, 0))

#House border
pygame.draw.rect(screen, (255,0,0), (barrier_xlocation,barrier_ylocation,barrier_width,barrier_height), 2)

#Player hitbox
pygame.draw.rect(screen, (255,0,0), (x + 117,y + 105, 50,50),2)
screen.blit(player, (x,y))
pygame.display.update()
Я не получаю никаких сообщений об ошибках, но мне нужно создать границу вокруг дома.

Подробнее здесь: https://stackoverflow.com/questions/568 ... r-an-image
Ответить

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

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

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

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

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