import pygame
import sys
# 初始化 pygame
pygame.init()
# 游戏设置
WIDTH, HEIGHT = 600, 600
GRID_SIZE = 60
ROWS, COLS = HEIGHT // GRID_SIZE, WIDTH // GRID_SIZE
FPS = 30
WINDOW = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("跳房子游戏")
# 颜色定义
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (255, 0, 0)
# 游戏对象
class Player:
def __init__(self):
self.x, self.y = 0, 0
self.size = GRID_SIZE // 2
self.color = RED
def draw(self):
pygame.draw.rect(WINDOW, self.color, (self.x * GRID_SIZE + GRID_SIZE // 4, self.y * GRID_SIZE + GRID_SIZE // 4, self.size, self.size))
def move(self, dx, dy):
new_x = self.x + dx
new_y = self.y + dy
if 0 <= new_x < COLS and 0 <= new_y < ROWS:
self.x = new_x
self.y = new_y
# 游戏主函数
def main():
clock = pygame.time.Clock()
player = Player()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
player.move(-1, 0)
if keys[pygame.K_RIGHT]:
player.move(1, 0)
if keys[pygame.K_UP]:
player.move(0, -1)
if keys[pygame.K_DOWN]:
player.move(0, 1)
# 绘制
WINDOW.fill(WHITE)
# 绘制网格
for row in range(ROWS):
for col in range(COLS):
pygame.draw.rect(WINDOW, BLACK, (col * GRID_SIZE, row * GRID_SIZE, GRID_SIZE, GRID_SIZE), 1)
# 绘制玩家
player.draw()
pygame.display.update()
clock.tick(FPS)
if __name__ == "__main__":
main()