Windows 7
Python 3.7.0
Библиотека pygame 1.9.6
Файл main.py
Файл map.py
Файл player.py
Файл feild.py
Здравствуйте. Я решил сделать игру на pygame , но не знаю, как сделать так, чтобы нельзя было проходить сквозь стены. Как это сделать? Сверху я написал файлы, которые находятся в моём проекте
Python 3.7.0
Библиотека pygame 1.9.6
Файл main.py
Python:
import pygame as pg
from player import *
from feild_sc import *
from map import *
FPS = 60
clock = pg.time.Clock()
pg.init()
pg.mixer.init()
pg.display.set_caption('Green square')
icon = pg.image.load('icon.png')
pg.display.set_icon(icon)
game_end = False
while not game_end:
for event in pg.event.get():
if event.type == pg.QUIT:
game_end = True
if event.type == pg.KEYDOWN:
if event.key == pg.K_LEFT:
player.rect.x -= 30
if event.key == pg.K_RIGHT:
player.rect.x += 30
if event.key == pg.K_UP:
player.rect.y -= 30
if event.key == pg.K_DOWN:
player.rect.y += 30
clock.tick(FPS)
screen.fill((100, 100, 100))
feild()
pg.draw.rect(screen, player.green, (player.rect.x, player.rect.y, *player.size))
walls()
pg.display.update()
pg.display.flip()
Файл map.py
Python:
import pygame as pg
from feild_sc import *
text_map = [
'wwwwwwwwwwwwwwwwwwwwwwwwwww',
'w..w......w.w....w........w',
'w..www..www.w....w........w',
'w..w....w........w...w....w',
'w...........w........w....w',
'wwwwwww....wwwwwww...www..w',
'w.....w....w.....w........w',
'w.....w....w.....w........w',
'w..........ww.wwww........w',
'w..wwwwwww................w',
'w..w.....w........w.......w',
'w..w.www.w.....wwww.......w',
'w..w.....w................w',
'w..w.wwwww..........wwwwwww',
'w...................w.....w',
'w...........w.w.....w.www.w',
'w...........wwwwwwwww.w.w.w',
'w...........w.w.....w...w.w',
'w...................wwwww.w',
'w...ww....................w',
'w...................wwwwwww',
'w.........................w',
'w.........................w',
'wwwwwwwwwwwwwwwwwwwwwwwwwww'
]
def walls():
for index, value in enumerate(text_map):
for index2, value2 in enumerate(value):
if value2 == 'w':
pg.draw.rect(screen, (0, 0, 150), (index2*30-1, index*30-1, 31, 31))
Файл player.py
Python:
import pygame as pg
class Player:
def __init__(self):
self.size = (31, 31)
self.image = pg.Surface((31, 31))
self.green = (0, 255, 0)
self.image.fill(self.green)
self.rect = self.image.get_rect()
self.rect.x = 359
self.rect.y = 359
player = Player()
Файл feild.py
Python:
import pygame as pg
x = 810
y = 720
screen = pg.display.set_mode((x, y))
def feild():
for string in range(27):
for row in range(24):
y = row * 30
x = string * 30
pg.draw.rect(screen, (0, 0, 0), (x + 0.5, y + 0.5, 29, 29))
Здравствуйте. Я решил сделать игру на pygame , но не знаю, как сделать так, чтобы нельзя было проходить сквозь стены. Как это сделать? Сверху я написал файлы, которые находятся в моём проекте