2018年8月10日对飞机大战的思考和将python源文件打包成exe可执行文件

今天遇到的新单词: script n脚本 terminate vi结束 ***************************** 将Python文件怎么打包成win下直接能执行的exe文件: 在win终端输入命令下载pyinstaller,命令是:  pip install pyinstaller 安装完后,检查安装成功与否,pyinstaller --version 下载后在图形化界面到你要打包的的文件目录下,cmd切换到该目录下的shell 用命令 pyinstaller -F -w (要打包的主文件名.py) 意义是打包成一个单独的文件并且不要shell窗口直接运行 只打包主启动py文件就可以了,其他的py文件不需要打包,打包后会生成一个build和一个disk文件夹 disk文件夹里面就是可以直接启动的exe文件,然后把文件中用到的的音乐图片全部都拉到disk文件夹中, 直接点击exe文件就可以直接运行了,也可以直接发给其他人直接运行 要注意的是,PyInstaller打包的执行文件,只能在和打包机器系统同样的环境下。也就是说, 不具备可移植性,若需要在不同系统上运行,就必须针对该平台进行打包。 用pyinstaller打包时候各个参数的意义:

-F  指定打包后只生成一个exe格式的文件

-D –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)

-c –console, –nowindowed 使用控制台,无界面(默认)

-w –windowed, –noconsole 使用窗口,无控制台

-p  添加搜索路径,让其找到对应的库。

-i  改变生成程序的icon图标

****************** 王奎: 屏幕是怎么向两边打开的?   设两个图片精灵,x轴分别向两边走 坦克大战怎么实现坦克的转向不同枪口指向不同的? 添加四个不同方向枪口的坦克图片,方向键切换不同的图片 pygame中的kill()命令的真正意义是不再渲染,在精灵组里面就是把这个精灵清除,不会再检测到碰撞,而不会真正杀死那个变量,那个变量还是存在的 怎么解决按一次键却发射了很多子弹,怎么向三个方向发子弹:加一个变量,当调用够30次的时候就触发一次, 可以控制子弹的发射速度,斜着发射可以设置一个rect.move(x,y),也可以给x轴一个速度,让子弹斜着发射。

继承父类的真正作用:加载图片并让图片动起来 余自华保护罩怎么跟着走和显示在飞机上?保护罩建立一个精灵组,x,y坐标一直随着英雄飞机的坐标变化, 并把保护罩渲染在飞机上

赵军臣: 暂停按钮,可以使游戏所有场景音乐暂停是怎么做到的?在开始设置一个标签,可以设为False,在游戏窗口上 添加一个暂停按钮,当点击之后False变成true,场景内的所有精灵的速度都设为0,音乐关闭pause,再点击一下 暂停键,重新所有速度speed重新赋值让程序运行起来

孙世玉: 英雄飞机打子弹的时候英雄飞机颜色是怎么变的?图片的切换 怎么让子弹散开:可以定义pygame.rect.move(x,y),让子弹斜着发射,再加入数学函数可以让子弹从中间向四周 随机散开 动画怎么做出来的:多张图片的定时切换 在背景上飞机怎么飞到指定的位置:开始给一个速度,飞到指定的位置指定一个边界限制 怎么选飞机和选场景:要用面向对象的思想特别简单

怎么实现攻击boss它才会反击:碰撞检测,碰撞了就触发某种事件 图形化界面中在想要执行的py文件上面的目录地址直接输入cmd进入该目录下的终端窗口, 如果想要直接执行该启动文件让程序跑起来,直接python 文件名.py就可以了, 如果不输入python, 直接文件名.py是打开py文件而不是运行

win+p  : 快速更改当前投影模式,实现多屏显示,一般用于投影仪 游戏结束的时候飞机消失,其他精灵继续的透明效果是怎么实现的?直接让英雄飞机消失,然后让游戏结束的 字体出现并渲染在游戏界面上速度设为0. pygame中的自定义事件无论多少都是写USEREVENT +1 锻炼口才 python的类中设置静态方法的优势是可以在不用创建对象的前提下,直接类名.方法名直接使用,文件中的所有对象 都可以直接调用,适用于一些公共的操作,静态方法的调用方式有两种,第1种是对象名.方法名,第2种是类名.方法名

win切换盘符: 直接盘符名称冒号:d: 如果想快速启动python文件可以在终端运行启动,首先在图形化界面切换到想要执行的文件目录下 在该目录上边的路径上可以直接输入cmd进入该目录下的shell,输入python main.py(启动文件名)运行 win中cls清屏,linux中是clear, python中os.sys(cls) win中退出是ctrl+c,linux中退出是ctrl+z和ctrl+c都可以 pygame中surface对象也就是图像对象,也可以说是一个精灵对象 linux中如果软件死机或者进程被占用,可以先用ps -ef|grep 进程名 查看该进程的进程号 然后用kill -9 进程号 可以杀死该进程,-9是强制杀死 psgrep 进程名 可以直接查看该进程的进程号

# 监听键盘上的事件用pygame.key.get_pressed() key_down = pygame.key.get_pressed() if key_down[pygame.K_LEFT]: print("向左移动") game_sprites.hero2.rect.x -= 5

#监听窗口中的所有事件用pygame.event.get(),如果需要鼠标操作就需要要判断鼠标是否按下了 for event in pygame.event.get():                   #获得事件 if event.type == pygame.MOUSEBUTTONDOWN:           #判断鼠标位置以及是否摁了下去。 if 180 <= event.pos[0] <= 360 and 292 <= event.pos[1] <= 365:  #开始游戏  engine.start()

#监听窗口中的自定义事件,如果自定义事件的时间到了的话就会触发某种功能 event_list = pygame.event.get() for event in event_list: if event.type == pygame.QUIT: pygame.quit() exit() if event.type == game_sprites.CREATE_ENEMY: # 创建一架敌机 print("创建一架敌机") enemy = game_sprites.EnemySprite() game_sprites.enemys.add(enemy) # 出发敌机的攻击事件 enemy.fire()

#生成一个窗口 screen=pygame.display.set_mode([640,480])里面的第一个参数必须是一个列表,也可以是如下的形式 screen=pygame.display.set_mode((640,480), 0, 32), 第一个参数是大小,第二个参数是控制是否全屏,第三个参数是显示颜色深度

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java技术栈

通用唯一标识码UUID的介绍及使用。

什么是UUID? UUID全称:Universally Unique Identifier,即通用唯一识别码。 UUID是由一组32位数的16进制数字所构成,是...

60815
来自专栏Java Web

Java学习笔记(1)——搭建好所需要的环境配置IDEA

前言:后来仔细思考了一下,从零开始学习Java的系列标题略长(实际改过来的也不短),并且不能正确反映写文的目的,所以决定从这一篇开始改为Java学习笔记。之前...

3704
来自专栏佳爷的后花媛

json & jsonp

对于JSON和JSONP,应该都不陌生,咳咳,不过最初对JSONP有点误解,以为是JSON的另外一个别名,其实二者风马牛不相及。

1873
来自专栏编程之旅

Python——爬虫入门Selenium的简单使用

之前的两篇我们讲解了Python内的urllib库的使用,不知道大家有没有在爬取一些动态网站的时候,发现自己用urllib爬取到的内容是不对的,无法抓取到自己想...

1394
来自专栏macOS 开发学习

macOS 应用注入开发简介与实践

本文主要介绍的是动态链接库注入的相关实践,这不仅仅局限于macOS,同时对iOS应用也具有相同的效果,希望大家可以借鉴使用.

1733
来自专栏腾讯Bugly的专栏

移动App入侵与逆向破解技术-iOS篇

如果您有耐心看完这篇文章,您将懂得如何着手进行app的分析、追踪、注入等实用的破解技术,另外,通过“入侵”,将帮助您理解如何规避常见的安全漏洞,文章大纲: 简单...

2.7K6
来自专栏前端安全

和XSS漏洞对抗的日子

前端安全日益受到业内的关注,最近笔者和团队在和XSS漏洞对抗的这段时间,总结了部分常见的漏洞和修复方法,下面将结合具体业务对这些漏洞类型进行分析。

38415
来自专栏py+selenium

py+selenium遇见IE,元素只有name属性【神奇解决】

IE8的问题:IE8不支持getElementByName,而属性中又没有ID,定位难度较大。

3891
来自专栏互联网杂技

如何学习用Typescript写Reactjs?

首先扫盲一下,先从搭建环境开始: 1.安装node,因为ts的编译器是js/ts写的; 安装node后同时获得npm命令,这是nodejs世界里的包管理器...

61612
来自专栏分布式系统和大数据处理

C#编写简单的聊天程序

这是一篇基于Socket进行网络编程的入门文章,我对于网络编程的学习并不够深入,这篇文章是对于自己知识的一个巩固,同时希望能为初学的朋友提供一点参考。文章大体分...

1572

扫码关注云+社区

领取腾讯云代金券