python游戏开发pygame初步

文章目录

    • 安装和示例
    • 移动物体
    • 优化

安装和示例

顾名思义,PyGame就是用来做游戏的Python库,提供了许多游戏开发功能,如图像处理、音频播放、事件处理、碰撞检测等等。从这个角度来说,pygame不仅是一个游戏库,同时也是一个包含了各种功能的综合库。

安装直接用pip

pip isntall pygame

安装成功后,可运行一下示例游戏

python3 -m pygame.examples.aliens

效果如下

移动物体

一个基本的pygame程序,首先就要对pygame初始化,并且指定游戏屏幕的尺寸,示例如下

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 360))

这时候不出意外的话,就会弹出一个黑色的窗口。接下来,实现最简单的游戏控制,通过ijkl键控制红色圆球四向移动,代码如下所示

player = pygame.Vector2(320, 180)
while True:
    if pygame.QUIT in [e.type for e in pygame.event.get()]:
        break
    screen.fill("purple")
    pygame.draw.circle(screen, "red", player, 40)
    keys = pygame.key.get_pressed()
    if keys[pygame.K_j]:
        player.y -= 0.2
    if keys[pygame.K_k]:
        player.y += 0.2
    if keys[pygame.K_h]:
        player.x -= 0.2
    if keys[pygame.K_l]:
        player.x += 0.2
    pygame.display.flip()

pygame.quit()

其中,player即为游戏者的位置,而死循环中,pygame.draw.circle则根据游戏者的位置不断创建红色圆球。通过pygame.key.get_pressed,可以获取在一个循环之内捕获到的所有按键,这些案件共同组成一个布尔字典,如果某个按键被按下,那么相应的值就是True,否则为False。接下来,四个互相独立的判断不断地更改player的位置。最后,通过pygame.display.flip()将所有变化反馈给屏幕。

python游戏开发pygame初步_第1张图片

优化

如果不对小球的位置加以限制,那么只要鼠标不断向上,小球就会超出屏幕边界,杳然无踪。为此,需要对小球的位置加以限制,比如,当小球抵达上方的边界时,让其从下边重新出现,为此需要判断小球的位置。

接下来,只需做一点改动,就可以达到如下效果

python游戏开发pygame初步_第2张图片

代码如下

import pygame

def moveRange(x, L, R):
    if x < L: return R
    if x > R: return L
    return x

pygame.init()
screen = pygame.display.set_mode((640, 360))

player = pygame.Vector2(320, 180)
while True:
    if pygame.QUIT in [e.type for e in pygame.event.get()]:
        break
    screen.fill("purple")
    pygame.draw.circle(screen, "red", player, 40)
    keys = pygame.key.get_pressed()
    if keys[pygame.K_j]:
        player.y -= 0.2
    if keys[pygame.K_k]:
        player.y += 0.2
    if keys[pygame.K_h]:
        player.x -= 0.2
    if keys[pygame.K_l]:
        player.x += 0.2
    player.x = moveRange(player.x, -40, 680)
    player.y = moveRange(player.y, -40, 400)
    pygame.display.flip()

pygame.quit()

你可能感兴趣的:(Python,pygame,python,开发语言,游戏,游戏开发,python游戏开发)