今天决定写个小程序,再系统地学习PY。跟着个视频写代码,没想到视频中坑点无数,老师讲的也不太详细,不过终于算是搞定了,发出来供初学者节省下时间:

坑一:osx 上安装 python3:由于mac自带了python,不过版本太低,pip也没有,所以要先安装新版,我下载了3.5.6,安装完成。自带的2.7我也没管,万一以后用到呢。

安装就直接安装到/usr/local/bin,这个目录下面了。之前mac自带的,在/usr/bin 这里面。

安装完成之后,其实环境变量你会发现也都自动都配好了。到安装目录下,会看到比如pip3,python3等命令了。

然后就可以执行:pip3 install pygame,实现pygame的安装。

然后,对Pycharm,进行配置,把python3的解释器也给配进去,在Project Interpreter中。

另外,在写.py文件时,import pygame还是会报错,因此还要做个修改:

第一步:打开Pycharm

第二步:点File ->Default Settings->Project Interpreter

双击pip,然后搜索pygame,再install,看到成功,则环境这一块,就算切换完成了。。。

----------------------------------------分隔线----------------------------------------

至于代码,我都写在注释里,就不解释了。

import pygame
from pygame.locals import *
import timedef main():#可以自动初始化pygame.init();screen = pygame.display.set_mode((480,852),0,32)background = pygame.image.load("./feiji/background.png")plane = pygame.image.load("./feiji/hero1.png")x = 480 / 2 - 50;y = 600;speed = 10 #设置飞机的位置list =[]while 1:screen.blit(background, (0, 0))screen.blit(plane, (x, y))#如果不判断event,则不会显示出画面#检查是否有新事件,如果有的话,否则转到退出命令,退出程序。for event in pygame.event.get():if event.type == pygame.QUIT:# 解析器关闭时会自动调用quitpygame.quit()exit(0)key_pressed = pygame.key.get_pressed()if key_pressed[K_UP]:if(y - speed >=0):y = y - speed;if key_pressed[K_DOWN]:if(y + speed <=852-100):y = y + speed;if key_pressed[K_LEFT]:if(x - speed >= 0):x = x - speed;if key_pressed[K_RIGHT]:if(x + speed <= 480-100):x = x + speed;if key_pressed[K_SPACE]:print("发射子弹")#子弹的详细信息bullet = pygame.image.load("./feiji/bullet.png");my_bullet = {"子弹":bullet,"x坐标":x+50,"y坐标":y};list.append(my_bullet)for i in list:screen.blit(i["子弹"],(i["x坐标"],i["y坐标"]))i["y坐标"] = i["y坐标"] -25;#0.01秒唤醒一次time.sleep(0.01)pygame.display.update();main();

以上当中,最奇怪的地方,就是如果不加事件判断,那么会看不到图像,只有在停止运行时,图片才会一闪而过。我也没太想明白问题出在哪里,总之加上对event的判断,就没问题了。

最终的结果:

python小飞机程序相关推荐

  1. python购物车程序2019_Python实现购物车程序

    本文实例为大家分享了程序:Python购物车程序,具体内容如下 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就 ...

  2. python 获取程序运行时间

    python 获取程序运行时间 import time # 时间测试 start =time.time() # 运行程序 for i in range(100000000):pass end =tim ...

  3. 《Python 3程序开发指南(第2版•修订版)》——1.2 Python的关键要素

    本节书摘来自异步社区<Python 3程序开发指南(第2版•修订版)>一书中的第1章,第1.2节,作者[英]Mark Summerfield,王弘博,孙传庆 译,更多章节内容可以访问云栖社 ...

  4. spark指定python版本_如何将正常的Python应用程序正确转换为PySpark版本

    我是PySpark的初学者,最近我尝试向我的Spark集群提交一个简单的python应用程序(批量调整大小图片).我可以成功地通过pycharm运行该应用程序,并且当我将应用程序提交给spark时,图 ...

  5. python语言包含的错误,Python语言程序中包含的错误,一般分为三种,以下____________不是其中的一种...

    Python语言程序中包含的错误,一般分为三种,以下____________不是其中的一种 答:编译错误 人体体温能自动调控在37度,其原因是( ). 答:人体内产生的热能是分批放出的 人体内有完善的 ...

  6. C++/Php/Python/Shell 程序按行读取文件或者控制台方法总结。

    C++/Php/Python/Shell 程序按行读取文件或者控制台方法总结. 一.总结 C++/Php/Python/Shell 程序按行读取文件或者控制台(php读取标准输入:$fp = fope ...

  7. python语言程序设计2019版第二章课后答案-python语言程序设计基础课后答案第二章...

    python语言程序设计基础课后答案第二章 以下合法的用户自定义标识符是____________. 导入模块或者模块中的元素要使用关键字________ . 下列哪个函数是用来控制画笔的尺寸的____ ...

  8. python语言程序设计嵩天-python语言程序设计基础(嵩天版),第二章程序练习题...

    python语言程序设计基础(嵩天版),第二章程序练习题 欢迎访问江南烧酒的博客 2.2汇率兑换程序.按照1美元=6人民币汇率编写一个美元和人民币的双向兑换程序. """ ...

  9. python画图程序有图-python画图程序

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 今天做的是用python实现画图,画出你想要的图案,只要你的想象力足够丰富,以及 ...

  10. python运行程序-一文看懂python程序的执行过程

    本文主要介绍的是python程序的执行过程,首先介绍的是编译过程,其次介绍的是过程图解及编译字节码,最后介绍了codeobject对象的属性,具体的跟随小编一起来了解一下. 一.编译过程概述 当我们执 ...

最新文章

  1. 二分类卷积核极限数量实验
  2. centos+nginx+php+mysql(经典架构流程案例)
  3. Java基础之扩展GUI——高亮元素、上下文菜单、移动旋转元素、自定义颜色(Sketcher 10)...
  4. 前端18个月难度翻番?来这里把握大前端技术本质进展丨稀土开发者大会
  5. iptables原理知识
  6. SDOI2018 旧试题
  7. 【Android进阶】SlidingMenu实现侧滑栏效果的实现
  8. javac 与java_javac和参数用法java命令的-d -cp
  9. 为VS2005添加X64编译平台
  10. ildasm、ilasm修改、反编译 已经编译的 dll文件(c#)
  11. 更新WP Mango应用磁贴内容的3种方法
  12. win10系统架设魔兽服务器,win10系统局域网魔兽争霸无法联机的步骤
  13. Pytorch 了解强化学习(RL)
  14. 用C语言写藏头诗或藏尾诗
  15. 当Androidstudio添加权限后仍然报错java.lang.SecurityException: Permission Denial
  16. SeeDAO专访:11 个月 4 次低谷,一个 DAO 如何从停滞中重生?
  17. Spring boot Shiro 用户认证
  18. 矩阵的秩+基础解系的秩为什么等于n?
  19. 实用正则表达式匹配和替换
  20. Python自用手册

热门文章

  1. iphone查看删除的短信_手机里的短信不小心删除了怎么才能恢复?此文为你解答...
  2. c语言中宽字节,fgetwc读取的是宽字节么?
  3. mysql 查看锁表_MySQL的四种事务隔离级别
  4. mongodb php存储日志,laravel 框架使用mongodb 保存日志
  5. pod install pod update
  6. 「洛谷3469」「POI2008」BLO-Blockade【Tarjan求割点】
  7. TensorFlow 学习可视化 TensorBoard 简易教程
  8. Too many open files故障解决一例
  9. 网易和淘宝的rem方案剖析
  10. jQuery数据缓存功能的解析及简单实现