统计
  • 建站日期:2015-05-20
  • 文章总数:77 篇
  • 评论总数:34 条
  • 分类总数:7 个
  • 最后更新:4天前

基于Pygame的游戏制作

本文阅读 1 分钟

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()

运行截图

截图

原创文章,作者:云飞,如若转载,请注明出处:https://www.dizunwl.com/html/13.html
Laysns_宁静致远(Quietlee)自媒体博客主题模板
« 上一篇 10-26
TikTok 抖音国际版解锁全部任意切换国家
下一篇 » 11-03

发表评论

V注册会员 L评论等级
R1 条回复
  1. 云飞VLv.2 说道:
    2020-11-03     Win 7 /    Chrome

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

    来自永久会员的评论!
没有更多评论了

作者信息

热门文章

热评文章