基于Pygame的游戏制作

Pygame是跨平台Pyth,Pygame 作者是 Pete Shinners, 协议为 GNU Lesser General Public License。
包含图像、声音。pygame建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚。基于这样一个设想,所有需要的游戏功能和理念都(主要是图像方面)都完全简化为游戏逻辑本身,所有的资源结构都可以由高级语言提供,如Python。
Pygame 原为代替突然停止的 pySDL

Pygame

一、pygame的窗口制作

开发坏境是vscode 1.43.0 python版本是3.7.6

代码

    import pygame
from pygame.locals import *
import sys
def hello_world():
   pygame.init()
   pygame.display.set_mode((640,480))
   pygame.display.set_caption("hello world")
   while True:
       for event in pygame.event.get():
           if event.type==QUIT:
               pygame.quit()
               sys.exit()
           pygame.display.update()
if __name__=="__main__":
   hello_world()

运行截图

运行截图

二、游戏案例1:坦克大战

参考代码

import pygame,sys
from pygame.locals import *
def play_tank():
    pygame.init()
    window_size=(width,height)=(640,480)
    speed=[1,1]
    color_white=(255,255,255)
    screen=pygame.display.set_mode(window_size)
    pygame.display.set_caption("坦克大战")
    tank_image=pygame.image.load(r'tankU.bmp')
    tank_rect=tank_image.get_rect()
    while True:
        for event in pygame.event.get():
            if event.type==pygame.QUIT:
                pygame.quit()
                sys.exit()
            tank_rect=tank_rect.move(speed)
            if(tank_rect.left<0) or (tank_rect.right>width):
                speed[0]=-speed[0]
            if(tank_rect.top<0) or (tank_rect.bottom>height):
                speed[1]=-speed[1]
            screen.fill(color_white)
            screen.blit(tank_image,tank_rect)
        pygame.display.update()
if __name__=="__main__":
    play_tank()

完善代码

import pygame,sys
from pygame.locals import *
def play_tank():
    pygame.init()
    window_size=(width,height)=(640,480)
    speed=[1,1]
    color_white=(255,255,255)
    screen=pygame.display.set_mode(window_size)
    pygame.display.set_caption("坦克大战")
    tank_image=pygame.image.load(r'tankU.bmp')
    tank_rect=tank_image.get_rect()
    while True:
        for event in pygame.event.get():
            if event.type==pygame.QUIT:
                pygame.quit()
                sys.exit()
            tank_rect=tank_rect.move(speed)
            if(tank_rect.left<0) or (tank_rect.right>width):
                speed[0]=-speed[0]
            if(tank_rect.top<0) or (tank_rect.bottom>height):
                speed[1]=-speed[1]
            screen.fill(color_white)
            screen.blit(tank_image,tank_rect)
        pygame.display.update()
if __name__=="__main__":
    play_tank()

运行截图

截图

转载请说明出处
胖鹅 » 基于Pygame的游戏制作

1 评论

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买