【发布时间】:2018-07-31 23:08:18
【问题描述】:
所以我想制作一个基本的 2d 游戏,你可以控制一个矩形,如果你碰到墙就会死。我已经创建了一些墙图片
但我现在卡住了。即使我查看了文档,我也真的不知道代码应该是什么样子。第二件事是我不确定如何创建“Sprite”。如何将我的矩形设为“Sprite”,否则没关系,它可以保持只是一个移动的普通矩形?
import pygame
pygame.init()
win = pygame.display.set_mode((1200, 600))
pygame.display.set_caption("My Game")
x = 40
y = 45
width = 30
height = 30
vel = 4
black = (0,0,0)
run = True
while run:
pygame.time.delay(15)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
win.fill((255,255,255))
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and x > 0:
x -= vel
if keys[pygame.K_RIGHT] and x < 1200 - width:
x += vel
if keys[pygame.K_UP] and y > 0:
y -= vel
if keys[pygame.K_DOWN] and y < 600 - height:
y += vel
pygame.draw.rect(win, (255, 0, 0), (x, y, width, height))
# Boundaries
pygame.draw.rect(win, (black), (0, 0, 1200, 20))
pygame.draw.rect(win, (black), (0, 0, 20, 600))
pygame.draw.rect(win, (black), (0, 580, 1200, 20))
pygame.draw.rect(win, (black), (1180, 0, 20, 600))
# Obstacle walls
pygame.draw.rect(win, (black), (300, 0, 20, 530))
pygame.draw.rect(win, (black), (20, 100, 230, 20))
pygame.draw.rect(win, (black), (70, 200, 230, 20))
pygame.draw.rect(win, (black), (20, 300, 230, 20))
pygame.draw.rect(win, (black), (70, 400, 230, 20))
# Middle Wall
pygame.draw.rect(win, (black), (600, 100, 20, 500))
pygame.display.update()
pygame.quit()
【问题讨论】: