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

16 Python 基础: 重点知识点--Pygame基础知识梳理

,一个天一个地区别,所以像这个磁盘加载东西你最好一次性将图片加载进来,不要每一次(比如说,再循环过程,就是每一帧渲染时候加载图片,尽量不要),而是循环外面也就是初始化过程你就要将图片加载进来...pygame.sprite.Sprite.remove - 从组删除精灵 pygame.sprite.Sprite.kill - 从所有组删除Sprite pygame.sprite.Sprite.alive...- 从集团删除Sprite pygame.sprite.Group.has - 测试一个组是否包含精灵 pygame.sprite.Group.update - 包含...上画一个背景 pygame.sprite.Group.empty - 删除所有精灵 精灵碰撞相关属性 pygame.sprite.spritecollide - 与另一个精灵相交查找精灵...pygame.sprite.groupcollide - 找到两组之间发生碰撞所有精灵。

3K30

自制街机游戏(1):初次实现

另外,还将使用Group对象方法drawSurface上绘制Sprite对象。 2.4.pygame.font 模块pygame.font将包含类Font。...简单游戏(如本项目),只需创建一个名为sprites或allsprites之类Group,并将所有Sprite都添加到其中。...另外,Group对象方法clear用于清除它包含所有Sprite对象(实际清理工作是使用一个回调函数完成),而方法draw可用于绘制所有的Sprite对象。...因此,游戏Squish第一个版本,我们只创建重16吨铅锤从天而降动画。制作这个动画需要步骤如下。...(事件类型和键分别存储事件对象属性type和key。诸如QUIT、KEYDOWN和K_ESCAPE等常量可从模块pygame.locals导入。)

2.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

实战项目:飞机大战

surface.blit(image,(0,0)) 第一个参数为图片对象 第二个参数为绘制初始位置 如何更新屏幕 pygame.display.update() 每次绘制完所有图片后一定要更新屏幕...如何创建精灵组 group = pygame.sprite.Group(精灵1对象,精灵2对象) 精灵组三个方法 # 同时调用精灵组中所有精灵update方法 group.update() # 同时绘制精灵组中所有精灵位置...,需要传入屏幕对象 group.draw(屏幕对象) # 向精灵组添加精灵方法 group.add(精灵) 如何碰撞检测 # 精灵组与精灵组之间碰撞检测,比如子弹与敌机之间 pygame.sprite.groupcollide...初始化方法要添加三个属性,分别是:加载图片对象、图片矩形区域,图片移动速度。其中图片矩形区域可以使用图片对象 get_rect() 来获取,速度自定义设置,这里设置成 每次移动1像素。...这里要注意是,我们是扩展父类初始化方法,而不是重写父类初始化方法 update()方法作用是更新图片位置 self.rect.y 代表矩形区域y轴位置 编写背景类 class BackGround

1.8K10

Python之pygame学习精灵碰撞做一个躲避球游戏(13)

pygame.sprite.groupcollide() 找到两组之间发生碰撞所有精灵。...通过比较Sprite.rect每个Sprite 属性或通过使用碰撞函数(如果它不是None)来确定碰撞。 group1每个Sprite都被添加到返回字典。...每个项目的值是group2相交Sprite列表。 如果dokill参数为True,则将从各自删除碰撞Sprite。 碰撞参数是一个回调函数,用于计算两个精灵是否发生碰撞。...精灵与精灵组: pygame.sprite.spritecollideany() 如果精灵与组任何内容相交,则进行简单测试。...获取鼠标返回坐标,用这个坐标来画圆时候,设置好不能超出边框,结果圆居然能出去???? 然后我画一个辅助矩形,看看圆圆心是否与矩形中心对齐。。结果不是的,圆中心矩形左上角!

3K30

PyGame:Python 游戏编程入门-1

稍后您将看到如何将图像加载到 a Surface并将其显示屏幕上。 pygame,所有内容都在单个用户创建 查看display,可以是窗口或全屏。...屏幕上绘图 示例程序,您使用两个命令屏幕上绘图: 1、screen.fill()填充背景 2、pygame.draw.circle()画一个圆 现在您将了解第三种绘制屏幕方法:使用Surface...以下是您surf屏幕上绘制方式: #这一行写着“屏幕中央绘制冲浪” screen.blit(surf, (SCREEN_WIDTH/2, SCREEN_HEIGHT/2)) pygame.display.flip...这将使用自上次翻转以来绘制所有内容更新整个屏幕。如果没有调用.flip(),则不会显示任何内容。 精灵 游戏设计,玩家从左侧开始,障碍物从右侧进入。...之前,您看到它pygame.event.get()返回事件队列事件列表,您可以在其中扫描KEYDOWN事件类型。好吧,这不是读取按键唯一方法。

2K40

Pygame基础2-精灵类 Sprite

精灵类 原理 精灵(sprite) 是一个古老术语,用来描述游戏中各种图像。 精灵 PyGame,精灵类(Sprite) 是一个常用类。...精灵类有以下好处/用处: • 更好地表示游戏中角色。 • 通过Group类同时管理游戏中多个精灵。 • 更容易进行碰撞检测 Pygame,我们使用surface表示图形,用rect 移动图形。...精灵类将两者结合到一个类,这样我们就可以方便地绘制和移动图形。...Pygame,想要创建一个精灵类,只需要 • 继承pygame.sprite.Sprite初始化函数定义self.image和self.rect • 推荐编写update方法实现对象更新...主函数,我们通过Group 更新和绘制 其中所有精灵。 while True: ...

20920

【python游戏编程之旅】第七篇---pygame冲突检测技术

上一个博客我们一起学习了pygameSprite模块和如何加载动画:http://www.cnblogs.com/msxh/p/5013555.html 这次我们来一起学习pygame冲突检测技术...pygame支持非常多冲突检测技术,我们来一一看一下他们是如何使用: 一、精灵与精灵之间冲突检测 1.两个精灵之间矩形检测 只有两个精灵时候我们可以使用pygame.sprite.collide_rect...= pygame.sprite.collide_rect(sprite_1,sprite_2) if result: print "Collision occurred" MySprite使我们上个博客创建类...这个函数判断精灵组和单个精灵冲突时候,会返回一个bool值。 5.精灵组之间矩形冲突检测 pygame.sprite.groupcollide()。...但是这样看起来也不是很方便说,因此我们使用import变体: from MyLibrary import * #将文件所有内容引入 2.高级行走动画 通过效果图,我们可以看到程序里面用到了高级行走动画

1.7K10

Python之pygame学习精灵及精灵组(10)

pygame学习精灵及精灵组 ✕ 精灵也就是我们类操作,定义一个类型对象,而且pygame封装好了一些对应操作,方便我们调用。 ? ?...pygamepygame.sprite.Sprite封装了精灵操作,我们可以直接继承这个类,来方便构建我们精灵!...精灵使用分为以下步骤: 定义精灵类: class 类名(pygame.sprite.Sprite): 初始化继承类方法 super().__init__() # 一定要调用!...设置精灵更新操作 可选设置精灵死亡操作 创建精灵 jj = Jl() 创建精灵组 jlz2 = pygame.sprite.Group(填入我们创建精灵,可以多个) 循环事件调用精灵组更新事件 jlz.update...下面代码使用精灵来创建多个反弹球,并且设置精灵死亡操作! 最后复习一下绘制字体,跟图片。 注意自己要准备个图片!!!

3.9K20

python小游戏设计入门5-捡金币游戏(下)

下面我们添加一个提示信息文字,按下按键开始。 ? ? 游戏暂停 添加一个游戏暂停界面,放在游戏主循环中事件检测,当按下s键后,游戏进入暂停界面,再按下s键回到游戏中。 ? ? ?...子模块,固定用法 pygame.init() # 初始化pygame # 游戏肯定是一个窗口中,那我们先来创建一个窗口 size = width, height = 600, 480 # 设置窗口大小...class Player(pygame.sprite.Sprite): def __init__(self,player_image): pygame.sprite.Sprite....() # 创建金币角色类 class Coin(pygame.sprite.Sprite): def __init__(self,gold_image): pygame.sprite.Sprite...碰撞检测 一个是玩家 一个是金币精灵组 True表示碰撞就删除碰撞角色金币 coins=pygame.sprite.spritecollide(player, coin_sprites, True

1.6K20

【python游戏编程之旅】第六篇---pygameSprite(精灵)模块和加载动画

一、Sprite模块、sprite对象 pygame.sprite模块里面包含了一个名为Sprite类,他是pygame本身自带一个精灵。...但是这个类功能比较少,因此我们新建一个类对其继承,sprite基础上丰富,以方便我们使用。 首先来了解一下如何使用sprite类来加载动画吧。...pygametime模块有一个get_ticks()方法可以满足定时需要。...framerate = pygame.time.Clock() framerate.tick(60) 4、绘制sprite.draw()方法是用来绘制,但是这个函数是由精灵来自动调用,我们没有办法重写它...pygame使用精灵组来管理精灵绘制和更新,精灵组是一个简单容器。

2.1K30

使用PygamePython游戏中放置平台【Gaming】

绘制平台,用其X和Y坐标以及预期宽度和高度标记每个平台。只要保持数字真实性,框实际位置就不必精确。例如,如果你屏幕是720像素宽,那么你就不能在一个屏幕上安装8个100像素平台。...你所学到适用于Pygame,除了Pygame,游戏世界坐标位于屏幕左上角而不是中间,这可能是你几何类习惯。 x轴最左边0处开始,无限地向右边扩展。...平台块 如果选择单独绘制每个资源,则必须创建多个平台和要插入游戏世界任何其他元素,每个平台和元素都在其自己文件。...不能使用包含所有内容文件,例如: 你可能希望你游戏完成后看起来像那样,但是如果你一个大文件创建你级别,就无法区分平台和背景,所以要么自己文件绘制对象,要么从一个大文件裁剪它们并保存单个副本...提示:很难想象你游戏世界0顶部,因为现实世界情况正好相反;当你计算出自己有多高时,你不是从天上往下测量自己,而是从脚到头顶测量自己。

2.6K40

Python 游戏编程之实现飞机大战(含源代码)

一.游戏设定 游戏界面如下图所示: 游戏基本设定: 敌方共有大中小3款飞机,分为高中低三种速度; 子弹射程并非全屏,而大概是屏幕长度80%; 消灭小飞机需要1发子弹,飞机需要8发,大飞机需要20...另外还对游戏做了一些改进,比如为飞机和大飞机增加了血槽显示,这样玩家可以直观地知道敌机快被消灭了没有;我方有三次机会,每次被敌人消灭,新诞生飞机会有3秒钟安全期;游戏结束后会显示历史最高分数。...这个游戏加上基本注释代码量800行左右,代码看上去比较多,多打代码少动脑。所以大家不要怕,越是多代码,逻辑就越容易看得清楚,就越好学习。好,那让我们从无到有,从简单到复杂来一起打造这个游戏吧!...敌机分为小、、大三个尺寸,它们速度依次是快、、慢,游戏界面的上方位置创造位置随机敌机,可以让它们不在同一排出现。...将敌机定义写在enemy. py模块: import pygame from random import * class SmallEnemy(pygame.sprite.Sprite):

20.9K43

python实现飞机大战项目

本文实例为大家分享了python实现飞机大战具体代码,供大家参考,具体内容如下 引用了小甲鱼框架,往上面添加了一些新功能 1、我方飞机模块 import pygame class MyPlane...(-1) #生成我方飞机、背景、敌机、云朵、星星类,以便做碰撞检测 me = myplane.MyPlane(bg_size) backgrounds = pygame.sprite.Group()...for each in big_enemies: if each.active: each.move() if each.hit: #绘制被打到特效 screen.blit(each.image_hit...for each in mid_enemies: if each.active: each.move() if each.hit: #绘制被打到特效 screen.blit(each.image_hit...纯粹为了自娱自乐与学习pygame模块,这个过程还是比较全面的了解了pygame模块哈哈,但实际上使用知识还是非常基础python知识。 以上就是本文全部内容,希望对大家学习有所帮助。

73220

Pygame入门4——使用精灵类重构

Pygame提供了Sprite,便于我们控制游戏中元素: Sprite.png Sprite(精灵)类,可以看成是surface+rectangle组合,并且绘制和更新起来非常容易。...精灵绘制.png 想要绘制一个精灵,只需要: 1.创建sprite; 2.将sprite放到Group或GroupSingle; 3.通过group进行 draw/update (和把大象放进冰箱里一样简单...下面,我们用精灵重构玩家属性和方法:继承精灵类,并重写其方法。 __init__(self) 初始化方法,初始化素材,初始image和rect。...player = pygame.sprite.GroupSingle() player.add(Player()) 最后游戏主循环中,调用Groupdraw和update方法。...obstacle_group.draw(screen) obstacle_group.update() 使用精灵后,检测它们之间碰撞很简单,只需要使用pygame.sprite碰撞检测即可: def

58910

如何用 Python 打飞机 ?

游戏用例图(第一次画用例图,不是很准确……) 用例图 分析该项目 ,飞船 、子弹 、外星人可以分别划分为具有共同属性一类 ,类定义各自属性 ,包括图像 、形状 、位置 、更新位置 、绘制图像等...;主函数中将对象实例化 ,对对象成员变量和函数进行调用实现移动 、击杀等操作 ;本节实现飞船和子弹类和基本功能 。...run_game()定义了主函数 ,首先绘制屏幕 , 对象 screen 是一个 surface , pygame ,surface 是屏幕一部分 ,显示游戏元素 。...位置绘制图像""" self.screen.blit(self.image,self.rect) bullet.py 子弹类尤为需要说明是该类继承了Sprite精灵类 ,继承精灵类方法...import pygame from pygame.sprite import Sprite # 继承Sprite类,完善自己代码 class Bullet(Sprite): """docstring

2.2K61
领券