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 ...
随机推荐
- 最小生成树算法总结(Kruskal,Prim)
今天复习最小生成树算法. 最小生成树指的是在一个图中选择n-1条边将所有n个顶点连起来,且n-1条边的权值之和最小.形象一点说就是找出一条路线遍历完所有点,不能形成回路且总路程最短. Kurskal算 ...
- Tunnel Warfare HDU - 1540
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> us ...
- 一种使用SOC精确控制脉冲的方法
在emfi测试中需要精确的控制脉冲时间.控制器产生的脉冲信号会经过控压的MOS管,这些组件会造成很严重的延时,但是尽管如此,控制系统的高精度也是必须的,因为控制系统的误差会逐级下延,引起更大的误差. ...
- get请求与post请求中文乱码问题的解决办法
首先出现中文乱码的原因是tomcat默认的编码方式是"ISO-8859-1",这种编码方式以单个字节作为一个字符,而汉字是以两个字节表示一个字符的. 一,get请求参数中文乱码的解 ...
- JN_0017:在当前目录运行CMD
运行npm的时候,每次都要cd到目录,很麻烦,所以总结了三种在当前目录下直接打开cmd窗口的方法,供以后开发时参考,相信对其他人也有用. 方法一 在当前目录按住shift再右键. 会看到右键菜单里有一 ...
- 在生产环境中碰见的JSP木马-sunziren
写在前面,本文仅做为技术交流的用途,请不要使用本文中的技术破坏他人的网站及系统,因为这是违法的!!!本人不负任何法律责任!!! 19年1月份,发现了一个JSP木马文件,当时觉得有点奇怪的是,这个文件没 ...
- Redis的主从复制与Redis Sentinel哨兵机制
1 Redis的主从复制 1.1 什么是主从复制 持久化保证了即使redis服务重启也不会丢失数据,因为redis服务重启后会将硬盘上持久化的数据恢复到内存中,但是当redis服务器的硬盘损 ...
- array every
every() 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试.它返回一个布尔值.
- JavaScript 自适应轮播图
代码 话不多说,先上代码,方便复制粘贴.演示 <!DOCTYPE html> <html lang="en"> <head> <meta ...
- ASP.NET常用内置对象(二)Response
response翻译为中文:响应. 将数据作为请求的结果从服务器发送到客户浏览器中,并提供有关响应的消息.它可用来在页面中输出数据,在页面中跳转,还可以传递各个页面的参数. Response对象是Sy ...