import pygame
from first_pygame.plane_spirit import *                         # 调用重载的精灵类 # 初始化
pygame.init() # 初始化所有所需游戏模块
screen = pygame.display.set_mode((700, 700)) # 设置游戏窗口大小
pygame.display.set_caption("打飞机") # 这是窗口名字
bg = pygame.image.load("./image/bg.jpg") # 加载背景图片
player = pygame.image.load("./image/player/player.png") # 加载英雄图片 screen.blit(bg, (0, 0)) # 设置背景图片,窗口对象调用blit方法 参数一:背景对象 参数二:图片的绘制位置
pygame.display.update() # 更新输出 player_rest = pygame.Rect(200, 500, 402, 257) # 记录英雄初始位置 和大小 clock = pygame.time.Clock() # 实例绘制时钟 # 精灵初始化敌机
diji_jinglin = Game_Jinglin("./image/computer/diji1.png")              # 实例精灵
diji_jinglin1 = Game_Jinglin("./image/computer/diji1.png",speed=2)
jingling_group = pygame.sprite.Group(diji_jinglin,diji_jinglin1)          # 加入精灵组 while True:
clock.tick(60) # 每秒绘制60次
player_rest.y -= 1 # 设置动画 每次向Y轴负方向运动-1
if player_rest.y <= -257:
player_rest.y = 900
screen.blit(bg, (0, 0)) # 背景覆盖
screen.blit(player, player_rest) # 英雄闪现 # 让精灵组调用两个方法
# update 更新所有精灵位置
jingling_group.update()
# 让精灵绘制到窗口
jingling_group.draw(screen) pygame.display.update() # 更新显示 for event_list in pygame.event.get(): # 事件监听 pygame.event.get()返回事件列表
if event_list.type == pygame.QUIT:
print("游戏退出...")
pygame.quit()
exit() # 把当前程序退出
first_pygame/plane_spirit.py/Game_jinglin类
class Game_Jinglin(pygame.sprite.Sprite):
"""
精灵类
继承:pygame.sprite.Sprite
重载:update
""" def __init__(self, image_name, speed=1):
super(Game_Jinglin, self).__init__()
self.image = pygame.image.load(image_name)
self.rect = self.image.get_rect()
self.speed = speed def update(self, *args):
self.rect.y += self.speed      # 竖直方向自加
注:浅谈pygame sprite(精灵)
 Sprite模块、sprite对象

 在pygame.sprite模块里面包含了一个名为Sprite类,
他是pygame本身自带的一个精灵。但是这个类的功能比较少,
因此我们新建一个类对其继承,在sprite类的基础上丰富,以方便我们的使用。
rect (位置)
draw(绘制)
update(更新画面)
碰撞检测(groupcollide(组) spritecollide(对象))
精灵类参考:https://www.cnblogs.com/msxh/p/5013555.html
 

pygame 浅解的更多相关文章

  1. 从最大似然到EM算法浅解

    从最大似然到EM算法浅解 zouxy09@qq.com http://blog.csdn.net/zouxy09 机器学习十大算法之中的一个:EM算法.能评得上十大之中的一个,让人听起来认为挺NB的. ...

  2. 面试-1-C#浅解

    面试-1   C#浅解众所周知c#是微软推出的一款完全没面向对象的编程语言,那么对象是什么?在现实生活中人们一提到对象首先想到的就是“情侣”!但是在我们的程序中对象是什么? 在程序中个能够区别于其他事 ...

  3. GIS历史概述与WebGis应用开发技术浅解

    声明:本篇在李晓晖的<杂谈WebGIS>,补充更多的资料说明.基于地图二次开发一直断断续续在做,这里算是补充一下基本功把.其实对于前端,WebGis开发都是api,抄demo,改.GIS深 ...

  4. List根据某字段去重,以及compareTo 浅解

    原文链接:https://blog.csdn.net/qq_35788725/article/details/82259013 Collections.sort可对集合进行排序 根据List里面某个字 ...

  5. JVM中GC浅解:垃圾回收的了解

    1.为什么要有GC 没有GC的世界,我们需要手动进行内存管理,但是内存管理是纯技术活,又容易出错.但是我们写码的目的是为了解决业务问题,所以可以把这种纯技术活自动化,当然自动化也是有代价的. 2.垃圾 ...

  6. Vuex state 状态浅解

    对于Vuex中的state里面的理解总是有些欠缺,机制似乎理解了.但是还有很多的不足,在这就先浅谈下自己的理解. vuex 机制中,定义了全局Store,在各个vue组件面的this.$store指向 ...

  7. Rest_framework Serializer 序列化 (含源码浅解序列化过程)

    目录 Rest_framework Serializer 序列化 序列化与反序列化中不得不说的感情纠葛 三角恋之 save/update/create 四角恋之 序列化参数instance/data/ ...

  8. Rest_framework Router 路由器(含SimplyRouter源码浅解)

    目录 Rest_framework Router 路由器 ViewSet结合Router,自动生成url. 将ViewSet注册到Router中,需要三个要素: 关于路由规则,细分有四类: rest_ ...

  9. Java之泛型浅解

    我觉得学习一个东西,首先得从概念上明白它大概是什么? “泛型”就是“参数化类型”,也就是是把类型当成了一种参数.之前我们看到得函数方法比如: public long add(int num1,int ...

随机推荐

  1. generalization error

    泛化误差 机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系? 准与确的关系 bias 偏差:模型越复杂,模型的偏差越小,方差越小,因此会出现overfitt ...

  2. vim 配置 jedi-vim( ubuntu:15.10 )

    确保 vim 支持 python3 或者 python 如果你已经安装了 vim, 可以通过vim --version, 在输出中找到 +python3 或者 +python 字样的话, 就可以跳过该 ...

  3. 深度优先搜索DFS---最优子序列求和问题(1)

    题目: 给定N 个整数(可能有负数),从中选择 K个数,使得这 K个数之和恰好等于一个给定的整数 X:如果有多种方案,那么选择它们中元素平方和最大的一个.例如,从4个整数{ 2, 3, 3 ,4}中选 ...

  4. jquery.datetimepicker中报错Cannot read property 'top' of undefined

    今天在项目里用到一个jQuery的时间插件,一开始自己写的测试demo完全么的问题 但当我把它放到项目里时问题来了,报了一个错:Cannot read property 'top' of undefi ...

  5. 对象浅拷贝Object.assign

    const target = { a: { b: { c: { d: 1 } }, e: 5, f: 6, h: 10 } } const source = { a: { b: { c: { d: 1 ...

  6. Android列表类视图之基本适配器BaseAdapter

    说到列表视图,不难联想到前面提到过的数组适配器,但是数组适配器只能搭建文本选择项,扩展能力并不强,Android提供了一种适应性更强的基本适配器BaseAdapter,该适配器允许开发者在别的代码中进 ...

  7. ovs安装教程

    原文链接:https://www.cnblogs.com/goldsunshine/p/10331606.html Open vSwitch系列之二 安装指定版本ovs   Open vSwitch系 ...

  8. python的循环语句

    python的循环语句有两种:for 和 while,for循环是对可迭代对象进行迭代并处理,因此for的对象是一个可以迭代的对象,而while循环的条件则是一个布尔值可以是一个返回布尔值的表达式. ...

  9. ubuntu设置ulimit

    centos系统的设置ulimit的时候是直接修改/etc/security/limits.conf文件,但是在ubuntu中却不行, ubuntu先修改/etc/security/limits.co ...

  10. R语言读写数据

    R语言读写数据 一般做模型的时候,从外部的excel中读入数据,我现在常用的比较多的是read_csv(file) 读入之前先把excel数据转化成.csv格式 同样的把结果输出来的时候用的是writ ...