Python——项目-小游戏
开始我们的项目 飞机大战
1 项目的初体验 以及前期准备
游戏初体验画面
略,请去参考博客验证一下本地第三方包有没有导入
python3 -m pygame.examples.aliens
如果没有出现游戏画面请先安装这个包
sudo pip3 install pygame
开始搭建目录结构
- 创建主程序 导入素材图片,新建 名为:“飞机大战‘项目
- 建立主程序员 ganme_main.py
- 把素材图片都导入到项目文件夹中
游戏的逻辑
- 主要的逻辑,就是判断一系列的图片运动碰撞,产生不同的事件 ,从而产生不同的效果
2.开始绘制背景和窗口
- 首先我们要注意到两个重要的pygame方法 一个是初始化和卸载方法
import pygame
pygame.init()
#游戏代码
'pygame,quit()' ,卸载所有的pygame模块 在游戏结束之前调用!如何才是真正的结束游戏;
- pygame中的 游戏中的坐标系?
pygame中专门准备了一个类Rect用于描述矩形区域,在本项目中,所有的图片都是Rect的创建出来的矩形对象。注意:即使你不初始化它 你也一样可以使用它 ,注意这个类你需要传入坐标值 还有其大小
juxin = pygame.Rect(100,50,120,12)
返回的就是/
print ( '%d %d' %juxin.size )//获取的是大小,......具体的属性还有返回值请去查看api文档size是一个元组属性
- 如何创建出一个游戏窗口?
- 同样的道理,我们的pygame也提供了专门的模块去处理,display模块。这个模块下可的两个方法可以绘制游戏的窗口
- 示例代码
# 注意一下这个方法返回的是一个窗口对象。窗口默认与屏幕一样大。为此我们可以来设置一些
+++
# 第一个参数类型是元祖(),其它的两个参数就不管它了。如果你感兴趣就去查阅python文档
screen = pygame.dispaly.set_mode( (480,700), )
while True:
pass
+++
- 如何把图片绘制上去窗口?
- 具体核心就是:
- 加载图片的数据 pygame.image.load("图形目录"),到内存中
- 使用屏幕对象的 blit方法把图搞到指定的位置
- 使用pygame.dispaly.update()更新整个屏幕的显示
核心代码实例
- 使用pygame.dispaly.update()更新整个屏幕的显示
+++
bg = pygame.image.load('./images/background.jpg')
screen.bit(bg,(0,0))
pygame.dispaly.update()
+++
- 绘制其它的图片?
- 其实这个也比较好理解,你可以在之前绘制的背景上再去绘制图形。注意,注意 所有的图片都应该是矩形的。不同的图片只是设置了一些透明上去。
3.源码分析
- 如果我们有N多图片要绘制呢?
- 其实我可以再完成所有的绘制轴再去调用 pygame.dispaly.update()
- 在源码中screen对象是一个内存中的屏幕数据对象,可以理解为一个画布 ,
- screen.blit可以再画布上绘制很多很多图形,这些图形有可能发生覆盖,我们在内存中虚拟绘制
- 最后我们再更新上去。以便于提高性能dispaly.update()
4.动画实现原理
原理就是 动画帧 ,说白了就是快速的图片变化。利用视觉差搞出动画效果
- 在源代码中 ,update方法实际上就产生了一帧,而要完成连贯的动画 需要最少60帧/s
Python——项目-小游戏的更多相关文章
- Python——项目-小游戏2-动画绘制
实现游戏循环还有事件的监听 在上一讲中 你需要完成这样的这样的效果, 如果你还没有完成,请不要继续往下阅读!!切记切记切记.,重要的事情说三遍 我们来看一下什么是游戏循环 所谓的游戏循环很好的理解 就 ...
- 12岁的少年教你用Python做小游戏
首页 资讯 文章 频道 资源 小组 相亲 登录 注册 首页 最新文章 经典回顾 开发 设计 IT技术 职场 业界 极客 创业 访谈 在国外 - 导航条 - 首页 最新文章 经典回顾 开发 ...
- python 金币小游戏
我最近用python的pygame做了一个金币小游戏 游戏规则:移动挡板接住金币 游戏截图: 代码如下: import pygame.freetype import sys import random ...
- python 打字小游戏
最近随便用python的pygame编了这个打字小游戏 只要有字母调到窗口底部就结束 上代码: import pygame.freetype import sys import random pyga ...
- python学习 小游戏
基于python3.4 while循环 #!/usr/bin/python3 #-*- coding=utf-8 -*- import random import sys import os luck ...
- 把川普射上太阳—如何用python制作小游戏
1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章:超详细Python安装指南 进行安装. Windows环境下打开Cmd(开始—运行—CMD),苹果系统 ...
- Python hangman小游戏
hangman # words.py 使用pickle永久性存储数据 import pickle filename = 'words.pk' data = ['cat', 'dog', 'perro' ...
- python做小游戏——做个马里奥分分钟解决
一.前言 嗨喽,大家好呀!这里是小熊猫 在你的童年记忆里,是否有一个蹦跳.顶蘑菇的小人已经被遗忘? 马里奥是靠吃蘑菇成长,闻名世界的超级巨星.特征是大鼻子.头戴帽子.身穿背带工作服.还留着胡子.帽子加 ...
- Python小游戏 -- 猜单词
Python初学者小游戏:猜单词 游戏逻辑:就像我们曾经英语学习机上的小游戏一样,电脑会从事先预置的词库中抽取单词,然后给出单词的字母数量,给定猜解次数,然后让玩家进行猜测,并给出每次猜测的正确字母与 ...
随机推荐
- smarty应用1 之 模板进行数学运算,保留小数位数
例子1 乘法除法运算: 1格式:{$number|number_format} 保留小数点后2位小数. {$v/$total*100|string_format:"%0.2f"|c ...
- hadoop报错:could only be replicated to 0 nodes, instead of 1
错误 [root@hadoop test]# hadoop jar hadoop.jarcom.hadoop.hdfs.CopyToHDFS 14/01/26 10:20:00 WARN hdfs.D ...
- 在shell下执行命令的方法
在shell下执行命令的方法 1. #!/bin/sh 语法:在shell.sh的开头写入 #!/bin/sh 一般的shell脚本就是这种用法.这种方法调用脚本开头的shell执行命令,子shell ...
- LINQ之路 6:延迟执行(Deferred Execution) 笔记
这里刚看的时候不理解. 这个特性在我们通过foreach循环创建查询时会变成一个真正的陷阱.假如我们想要去掉一个字符串里的所有元音字母,我们可能会写出如下的query: IEnumerable< ...
- 提升项目一:花卉管理系统(Servlet+JSP完成)
这个是写的第一个项目:使用Servlet+JSP完成,加上对底层构架的理解,才可以对后面要接触使用的ssh框架的深刻理解 2017-02-11: 完成对进货业务的操作, 下一步完成对销货业务的操作
- 数据检索|文献检索|事实检索|yandex|Title vs topic|检索技术|检索技巧|
信息检索: 信息检索原理是,将书写不规范的原始数据先存储,再通过归纳化or标准化手段进行拆分,便于用户搜索. 信息检索类型可依据数据内容进行分类,文献检索是通过输入关键字进入搜索引擎,搜索仅找到含有关 ...
- caffe之数据集介绍
数据集:http://bigdata.51cto.com/art/201702/531276.htm 计算机视觉 MNIST: 最通用的健全检查.25x25 的数据集,中心化,B&W 手写数字 ...
- linux下载文件到本地_把linux服务器的文件下到本地windows
tar -cvf script.tar scriptsz script.tar 文件夹先要打包,并且要指定打包的名字. 具体: sz/rz命令: 一般来说,linux服务器大多是通过ssh来进行远 ...
- Java web期末项目第一阶段成果发表
摘要 我们做的系统是一个基于Java web与MySQL的食堂订餐系统 班级: 计科二班 小组成员:李鉴宣.袁超 我们的第一阶段主要完成以下三件事: 完成项目的需求分析 完成项目的领域逻辑(domai ...
- 【NOIP14 D2T2】寻找道路
Source and Judge NOIP2014 提高组 D2T2Luogu2296Caioj1567 Problem [Description] 在有向图 G 中,每条边的长度均为 1,现给定起点 ...