pygame 浅解
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 浅解的更多相关文章
- 从最大似然到EM算法浅解
从最大似然到EM算法浅解 zouxy09@qq.com http://blog.csdn.net/zouxy09 机器学习十大算法之中的一个:EM算法.能评得上十大之中的一个,让人听起来认为挺NB的. ...
- 面试-1-C#浅解
面试-1 C#浅解众所周知c#是微软推出的一款完全没面向对象的编程语言,那么对象是什么?在现实生活中人们一提到对象首先想到的就是“情侣”!但是在我们的程序中对象是什么? 在程序中个能够区别于其他事 ...
- GIS历史概述与WebGis应用开发技术浅解
声明:本篇在李晓晖的<杂谈WebGIS>,补充更多的资料说明.基于地图二次开发一直断断续续在做,这里算是补充一下基本功把.其实对于前端,WebGis开发都是api,抄demo,改.GIS深 ...
- List根据某字段去重,以及compareTo 浅解
原文链接:https://blog.csdn.net/qq_35788725/article/details/82259013 Collections.sort可对集合进行排序 根据List里面某个字 ...
- JVM中GC浅解:垃圾回收的了解
1.为什么要有GC 没有GC的世界,我们需要手动进行内存管理,但是内存管理是纯技术活,又容易出错.但是我们写码的目的是为了解决业务问题,所以可以把这种纯技术活自动化,当然自动化也是有代价的. 2.垃圾 ...
- Vuex state 状态浅解
对于Vuex中的state里面的理解总是有些欠缺,机制似乎理解了.但是还有很多的不足,在这就先浅谈下自己的理解. vuex 机制中,定义了全局Store,在各个vue组件面的this.$store指向 ...
- Rest_framework Serializer 序列化 (含源码浅解序列化过程)
目录 Rest_framework Serializer 序列化 序列化与反序列化中不得不说的感情纠葛 三角恋之 save/update/create 四角恋之 序列化参数instance/data/ ...
- Rest_framework Router 路由器(含SimplyRouter源码浅解)
目录 Rest_framework Router 路由器 ViewSet结合Router,自动生成url. 将ViewSet注册到Router中,需要三个要素: 关于路由规则,细分有四类: rest_ ...
- Java之泛型浅解
我觉得学习一个东西,首先得从概念上明白它大概是什么? “泛型”就是“参数化类型”,也就是是把类型当成了一种参数.之前我们看到得函数方法比如: public long add(int num1,int ...
随机推荐
- 转:Flutter开发中踩过的坑
记录一下入手Flutter后实际开发中踩过的一些坑,这些坑希望后来者踩的越少越好.本文章默认读者已经掌握Flutter初步开发基础. 坑1问题:在debug模式下,App启动第一个页面会很慢,甚至是黑 ...
- Uva10791 唯一分解定理模板
唯一分解定理: Uva10791 题意: 输入整数n,要求至少两个正整数,使得他们的最小公倍数为n,且这些整数的和最小 解法: 首先假设我们知道了一系列数字a1,a2,a3……an,他们的LCM是n, ...
- Nginx-3.控制nginx
原文 nginx 通过信号来控制.对应linux系统就是用kill命令. The command kill sends the specified signal to the specified pr ...
- 【spring boot】SpringBoot初学(6)– aop与自定义注解
前言 github: https://github.com/vergilyn/SpringBootDemo 一.AOP 官方demo:https://github.com/spring-project ...
- Gerrit评审代码流程注意事项
Gerrit管理CR流程时要注意下面两大事项: (一)格式规范 这部分主要是根据公司或者团队的要求规范来撰写格式,这里不做统一介绍了:格式规范的宗旨是让修改的代码和业务需求能够匹配.可追溯. (二)评 ...
- 【学习笔记】BP神经网络
转自 huaweizte123的CSDN博客 链接 https://blog.csdn.net/huaweizte123/article/details/78803045 第一步.向前传播得到预测数 ...
- LeetCode 237. 删除链表中的节点 (单链表遍历)
题目链接:https://leetcode-cn.com/problems/delete-node-in-a-linked-list/ 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将 ...
- Leetcode 995. K 连续位的最小翻转次数
题目: 在仅包含 0 和 1 的数组 A 中,一次 K 位翻转包括选择一个长度为 K 的(连续)子数组,同时将子数组中的每个 0 更改为 1,而每个 1 更改为 0. 返回所需的 K 位翻转的次数,以 ...
- 变量 Variables
是为了存储(store)程序(program)运算过程中的一些信息(informations),为了方便日后调用.操作和更改 变量名应该简明,见名识意,让读者和我们自己能更清晰的了解 如果我们把变量看 ...
- poj1141题解
题意 空序列是规则序列:用小括号(或者方括号)把一个规则序列括起来依然是规则序列:两个规则序列并列在一起仍然是规则序列. 给出一个括号字符串S,求一个规则序列ANS,满足S是ANS的子序列且ans尽可 ...