首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Pygame,游戏开发的欢乐天地!

玩游戏谁都会,但你想过自己做游戏吗?用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是个特别棒的入门工具,它让我们能专注于游戏逻辑,不用去管那些底层的复杂东西。你说这不是带薪搞游戏?把编程学习变成了玩游戏,谁还说学编程难啊!

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OLcQ5q3ijq2ngNsHUSu2Qjyw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券