玩游戏谁都会,但你想过自己做游戏吗?用Python就能搞定!
说实话,刚开始我也觉得做游戏特别难,但遇到 Pygame 这个神器后,整个人都不一样了。这是个超级友好的游戏开发模块,只要会点Python基础就能上手。今天就给大家讲讲这个有趣的东西!
安装那些事
装个Pygame真的太简单了,打开命令行敲这行代码就搞定:
pip install pygame
要是遇到装不上的情况,别慌,换个国内源试试:
pip install pygame -i https://pypi.tuna.tsinghua.edu.cn/simple
基础概念搞起来
写游戏第一步,得先搞个窗口出来:
import pygame
pygame.init() # 初始化所有模块
screen = pygame.display.set_mode((800, 600)) # 创建个800x600的窗口
pygame.display.set_caption(“我的第一个游戏”) # 设置窗口标题
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.display.flip() # 刷新屏幕
pygame.quit()
温馨提示:别忘了最后要用pygame.quit()清理干净,不然可能会遇到一些奇奇怪怪的问题。
给画面加点料
光有个黑乎乎的窗口多没意思,整点颜色和图形吧:
import pygame
pygame.init()
screen = pygame.display.set_mode((800, 600))
# 画个红色的圆
pygame.draw.circle(screen, (255, 0, 0), (400, 300), 50)
# 画个蓝色的矩形
pygame.draw.rect(screen, (0, 0, 255), (200, 200, 100, 100))
pygame.display.flip()
# 等待3秒
pygame.time.wait(3000)
pygame.quit()
这些数字看着眼花?别怕,RGB颜色值就是用三个数字表示颜色,第一个是红色,第二个是绿色,第三个是蓝色,范围都是0-255。
让东西动起来
游戏最重要的就是动起来,不然跟看图片有啥区别:
import pygame
pygame.init()
screen = pygame.display.set_mode((800, 600))
clock = pygame.time.Clock() # 控制游戏帧率
x = 400 # 小球的x坐标
y = 300 # 小球的y坐标
speed = 5 # 移动速度
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 通过键盘控制小球移动
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
x -= speed
if keys[pygame.K_RIGHT]:
x += speed
if keys[pygame.K_UP]:
y -= speed
if keys[pygame.K_DOWN]:
y += speed
screen.fill((0, 0, 0)) # 清空屏幕
pygame.draw.circle(screen, (255, 0, 0), (x, y), 50)
pygame.display.flip()
clock.tick(60) # 限制帧率为60
pygame.quit()
很多新手写完发现游戏特别卡,多半是忘记控制帧率了。用clock.tick(60)可以让游戏稳定在60帧,画面就会流畅很多。
碰撞检测整起来
游戏里经常要判断两个东西是不是撞在一起了,Pygame给我们提供了超好用的碰撞检测:
rect1 = pygame.Rect(x1, y1, width1, height1)
rect2 = pygame.Rect(x2, y2, width2, height2)
if rect1.colliderect(rect2):
print(“撞上啦!”)
温馨提示:碰撞检测的代码一定要放在游戏主循环里,这样才能实时检测。
游戏开发真的特别有意思,你可以把自己天马行空的想法都实现出来。不过写游戏也有个坑,写着写着就会想一直玩,别忘了正事啊!代码写的时间得比玩的时间多才行。
不得不说,Pygame是个特别棒的入门工具,它让我们能专注于游戏逻辑,不用去管那些底层的复杂东西。你说这不是带薪搞游戏?把编程学习变成了玩游戏,谁还说学编程难啊!
领取专属 10元无门槛券
私享最新 技术干货