Python游戏开发:Pygame的运行环境|案例运行与分析

本文介绍了使用Python的pygame库进行游戏开发的基础环境配置,包括在VSCode下配置Python 3.7.6环境,并通过实例展示了如何创建窗口。接着,文章详细讲解了四个不同类型的游戏案例:坦克大战、精灵类测试、贪吃蛇和打飞机,每个案例都包含了代码实现、运行截图和逐步完善的过程,帮助读者深入理解pygame的游戏开发技巧。
摘要由CSDN通过智能技术生成

一、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.typeQUIT:
              pygame.quit()
              sys.exit()
          pygame.display.update()
if name
"main":
  hello_world()

运行截图

image.png

二、游戏案例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.typepygame.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.typepygame.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()

运行截图

image.png

三、精灵类测试

参考代码

import pygame,sys
pygame.init()
class Tank(pygame.sprite.Sprite):
   def init(self,filename,initial_position):
       pygame.sprite.Sprite.init(self)
       self.image=pygame.image.load(filename)
       self.rect=self.image.get_rect()
       self.rect.bottomright=initial_position
screen=pygame.display.set_mode([640,480])
screen.fill([255,255,255])
fi=‘tankU.bmp’
b=Tank(fi,[150,100])
while True:
   for event in pygame.event.get():
       if event.type==pygame.QUIT:
           pygame.quit()
           sys.exit()
   screen.blit(b.image,b.rect)
   pygame.display.update()

运行截图

image.png

完善代码

import pygame
from pygame.locals import *
class MySprite(pygame.sprite.Sprite):
   def init(self,target):
       pygame.sprite.Sprite.init(self)
       self.sprite_surface=target
       self.image=None
       self.master_image=None
       self.rect=None
       self.topleft=0,0
       self.frame=0
       self.old_fram=-1
       self.fram_width=1
       self.fram_height=1
       self.first_fram=0
       self.last_fram=0
       self.columns=1
       self.last_time=0
   def load(self,filename,width,height,columns):
       self.master_image=pygame.image.load(filename).convert_alpha()
       self.fram_width=width
       self.fram_height=height
       se

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值