自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (1)
  • 收藏
  • 关注

原创 你知道python统计字符串中字符出现次数的方法中哪个更快吗?

首先想到如下代码:str = input('input text:')# 保存已经检测过的字母check = ''rec = []# 从当前输入的字符串第一个字母开始检测for s in str: # 如果当前要检测的字母没在已检测的列表中,则检测 if s not in check: # 初始化统计数量为0 count = 0 # 开始在输入的字符串中匹配当前要匹配的字母的出现次数 for s1 in str:

2022-01-03 00:53:21 1583 1

原创 pygame研究之敌机类实现

战机类游戏,要解决敌机几个问题:1、自身的绘制和相关属性管理(可以实现多种类型的战机)2、自身的移动控制(可直线运动、可左摇右摆S随机变化)3、自身被击中的效果以及不同类型敌机的生命值(都是一枪毙命就太没意思了)4、所发射子弹的管理(实现开火的概率随机,子弹的初始位置控制,以及子弹超出屏幕范围之后自动销毁,防止不必要的计算资源占用。)先看整体框架然后我们逐段拆开看一下具体实现1、自身的绘制和相关属性管理(可以实现多种类型的战机)class EnemySprite(p

2022-01-02 14:15:30 2523

原创 pygame研究之利用sprite的UI架构实现

学着网上的代码写了个战机游戏,但在暂停游戏的时候,发现实现一个简单按钮竟然要写那么多的代码,而且进行鼠标交互时,这些代码掺杂在原有的游戏代码中,实现看着太丑陋了,就想着抽象一个类出来,网上查了一些资料,特别是pygame的UI实现,各种方式都有,但是感觉都只是为了解决具体问题而写的代码段,通用性不太好,当时正沉迷于pygame的精髓sprite类中,就觉得这个东西应该是可以解决困局的好工具,于是就有了下面的代码。import pygame as pg# 所有全局常量(下面全部大写的都是...

2022-01-02 12:27:10 2181

原创 pygame中的事件检测和处理

包括鼠标、键盘、定时Event和自定义的Event。1、定时Event # 1、每秒一次敌机生成事件 pg.time.set_timer(CREATE_ENEMY_EVENT, 2000) pg.time.set_timer(ENEMY_FIRE_EVENT, 800)2、自定义Event def update(self): # 炸弹移动 self.rect.y -= self.speed

2022-01-01 11:19:28 1181

原创 python\pygame封装中文显示

pygame的中文显示处理着总觉得还不是最终的方案,这太简陋了,而且mac和windows本的处理方法还不一样,目前找到这个方法似乎是可以兼容两个平台的(当然,字体目录要一致) def _DrawText(self, _text, _size, _pos, _color): # 显示文字 fontobj = pg.font.Font('/System/Library/Fonts/Supplemental/Songti.ttc', _size) te

2022-01-01 11:15:38 451

原创 python中pygame.sprite碰撞检测学习

pygame中的sprite加上sprite.Group,进行批量的对象碰撞检测太简单了,不仅有多种的碰撞检测模式,还能以各种方式控制处理结果,今天先学习groupcollide的rect碰撞检测,明天再看看几个圆形碰撞,以及对象与group的碰撞。 def _CheckCollide(self): # print('Check collide.') # 英雄和敌机碰撞检测(不管双方血量,直接结束游戏) collide = pg.sprite.gr

2022-01-01 11:12:59 1477

原创 Python生成几个随机数,凑出某个数

import numpy as npcalc = Truewhile calc:n = np.random.rand(3)*1000n = n.round(0)calc = not n.sum() == 2000print(n, n.sum())

2022-01-01 11:06:35 481

原创 Python学习笔记2(pygame深入研究,战机游戏)

整体类规划(每个类一个文件)GameMain类:开始、暂停控制游戏常量初始速度补给物补给数量接收键盘及鼠标操作,并通知自个对象各类Sprite对象队列英雄队列(虽然现在只有一个飞机,可以加入僚机)敌机子弹队列(先建)敌机队列补给物队列英雄子弹队列各类Sprite对象生成敌机生成(添加入队列,并告知敌机子弹队列)补给生成(添加入队列)判断各类Sprite是否碰撞:敌机和英雄:全毁,游戏结束Enemys.子弹和英雄:英雄减血,补给物和英雄

2022-01-01 11:05:46 250

原创 Python学习笔记(pygame深入研究,战机游戏)

初步规划有背景,并且可以滚动; 游戏要点击开始才可以开始,并且途中可以暂停、再开始。 游戏有背景音乐 可以操作的飞机叫(HeroPlane),可以上下左右飞,可以发射子弹和炸弹,子弹和炸弹有数量限制,炸弹初始为3个,子弹为1000发。 炸弹可以直接清除画面上所有的敌机和子弹,但发射到起作用有3秒延迟。 游戏可以随机补充炸弹(每次1个)和子弹(每次100发) 可以操作的飞机自身有动画 敌机有多种样式,随机出现不同机种,可以发射子弹。 敌机发射子弹和被击中时有动画。 不同敌机有不同的血槽(

2022-01-01 11:04:20 282

Python教程战机类游戏开发深入研究

内容包括所有源码、图片及音效资源,适合有一定编程基础的Python初学者。 1、键盘事件监听及响应,包括键盘按下后持续响应,以及多键组合的动作响应。 2、鼠标事件监听及响应,包括识别鼠标键按下和鼠标移动事件。 3、利用pygame.time实现游戏画面刷新率控制。 4、自定义事件生成及响应,包括利用pygame.time定义的定时Event和利用pygame.event手工定义Event,并解决对象利用Event与主进程def功能交互。 5、封装文本显示,解决中文显示,并支持指定位置显示和居中显示。 6、利用pygame.sprite类及sprite.Group封装pygame下可用的按钮类,直接支持鼠标点击后确认点击对象,并以Event绑定按钮对象相关响应事件。 7、利用pygame.sprite封装战机类,并封装相关子类,每个sprite可以自主控制创建子类对象,并根据需要添加至主进程sprite.Group中。 8、利用sprite.groupcollide实现碰撞检测,并演示各种碰撞处理逻辑,包括默认碰撞双方清除,清除一方,以及碰撞后根据条件进行部分清除。 9、对groupcollide返回的collide碰撞对象组进行遍历操作。 10、演示各种条件pygame.sprite对象的创建、加入Group以及自定义条件kill。 11、实现pygame.sprite对象的动画效果。 12、实现pygame游戏暂停及重新启动。 13、利用pygame.sprite实现连续滚动背景。 14、图片、音效资源预加载。 15、利用数列实现代码简化对象属性分配和动画效果加载。 16、try..exception异常处理。

2022-01-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除