pygame(一)

  昨天,是有在树莓派上面操作pygame的,但是树莓派又上不了网了,很奇怪,我的306wifi显示的是树莓派连接成功,但是就是无法用网络,所以就下载不了图片,坐等HDMI线吧。

  现在,看小甲鱼的视频已经有半年了,感谢他风趣无节操的语言带领我进入广大的编程世界,我知道接下来的路只能自己走下去,唯有谦虚向别人请教,积极谷歌,及时总结,锻炼代码能力,钻下去才能走得远,感谢小甲鱼。最近刚好小甲鱼出了一起关于pygame的视频,也就开始着手玩玩了。

1、安装pygame

第一个问题,我的python版本是py3.4,这在pygame的官网是没有的,最新的只有3.2版本的,因此直接google了一下,看到YouTube有个视频介绍了两个网址,一个是pygame安装whl文件,下载地址;另外一个是windows的安装包exe文件,下载地址

第二个问题,一开始不知道python的版本是64位的,我个人比较懒,直接就用了32位的exe文件,导致结果安装好后import报错dll什么的,就是不兼容,只好使用whl文件,发现非常方便,采用了64位whl安装文件,先把文件名字的后缀改成zip类型,然后解压到python34的安装路径下的lib/site-packages这个文件夹里面,然后直接import,ok!

2、编程

代码如下:

 1 # coding=utf-8
 2 __author__ = ‘wing1995‘
 3 import pygame
 4 import sys
 5
 6 # 初始化pygame
 7 pygame.init()
 8
 9 size = width, height = 1000, 800
10 speed = [-2, 1]
11 bg = (255, 255, 255)
12
13 # 创建指定大小的窗口 Surface
14 screen = pygame.display.set_mode(size)
15 # 设置窗口标题
16 pygame.display.set_caption(‘初次见面,请大家多多关照!‘)
17
18 # 加载图片
19 classic = pygame.image.load("C:\\Users\\wing1995\\Desktop\\classic.png")
20 # 获得图像的位置矩形
21 position = classic.get_rect()
22
23 while True:
24     for event in pygame.event.get():
25         if event.type == pygame.QUIT:
26             sys.exit()
27
28     # 移动图像
29     position = position.move(speed)
30
31     if position.left < 0 or position.right > width:
32         # 翻转图像
33         classic = pygame.transform.flip(classic, True, False)
34         # 反方向移动
35         speed[0] = -speed[0]
36
37     if position.top < 0 or position.bottom > height:
38         speed[1] = -speed[1]
39     # 填充背景
40     screen.fill(bg)
41     # 更新图像
42     screen.blit(classic, position)
43     # 更新界面
44     pygame.display.flip()
45     # 延迟10毫秒
46     pygame.time.delay(10)

3、思考

Q1、什么是Surface对象?

答:pygame就是图像

Q2、将一个图形绘制到另一个图像上面是怎么回事?

答:在pygame中,由于图像是由像素组成,也就是马赛克,其实没有在一个图形绘制到另一个图像上的说法,实际上就是改变该被覆盖的图像的像素,就是使用blit方法将图像这个一群像素覆盖到另一个图像的像素上面。

Q3、移动图像是怎么一回事?

答:涉及到帧率的问题,指的是一秒钟可以切换多少次图像,调用get_rect对象的move方法,改变矩形范围的位置,对应代码的第29行,其中speed = [-2, 1],相当于水平位置减少2,垂直位置加1来移动矩形的位置。再更新图像和界面,在内存中进行双缓冲。

Q4、如何控制游戏的速度?

答:使用了time模块的delay方法,延迟速度,也就是每隔10ms移动一次矩形也就是图像;也可以通过改变帧率的形式,注释掉delay方法,假如clock来通过设置帧率来控制速度,编写代码如下:

12 clock = pygame.time.Clock()  # 实例化Clock对象
48    clock.tick(200)  # 改变帧率为200,图像1秒移动200次

Q5、pygame的效率高不高?

答:pygame的大部分模块都是由C语言编写和优化,效率很好,帧率是40-200帧/秒。

Q6、如何从pygame中获得帮助?

答:pygame的官网有很详细的文档和教程以及例子,小甲鱼论坛里面也有模块的中文翻译计划,也有找到一个很好的网站学习pygame,博客地址

总结:虽然不从事游戏开发,但是了解东西总是多多益善,尤其是编程类,了解多了,也就能够互通了。

时间: 2024-12-21 17:50:56

pygame(一)的相关文章

win7/64+pip+pygame=pygame安装

2016/01/09 安装pygame win7/64,之前python版本为3.4 pygame下载地址: http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame 因为需要兼容,所以下载pygame-1.9.2a0-cp34-none-win_amd64.whl 适合Python3.4的版本文件名中包含cp34,适合64位操作系统的版本,文件名中包含amd64: 选择开始>运行,输入cmd打开命令提示符,在命令提示符中输入: pip install

windows下python3.6版本安装pygame

参考:http://blog.csdn.net/a380331382/article/details/77063152 首先,进入这个网站:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame ,找到pygame?1.9.3?cp36?cp36m?win_amd64.whl 并下载,将该文件复制到项目文件夹下. windows+R打开运行,打开cmd,切换到项目文件夹下,输入Python -m pip install --user pygame-1.

pygame 练习之 PIE game (以及简单图形训练)

简单的大饼游戏,掌握pygame中直线以及圆弧的画法,以及对输入的响应. 1 import math 2 import pygame, sys 3 from pygame.locals import * 4 pygame.init() 5 screen = pygame.display.set_mode((600, 500)) 6 pygame.display.set_caption("The Pie Game -- Press 1 2 3 4") 7 myfont = pygame.

【python游戏编程之旅】第八篇---pygame游戏开发常用数据结构

本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 上一个博客我们一起学习了pygame中冲突检测技术:http://www.cnblogs.com/msxh/p/5027688.html 这次我们来一起学习在pygame游戏里面常用的一些数据结构: 数据,列表,元组,队列,栈. 一.数组与列表 数组可以理解为简化的列表.像我们之前使用的pygame.sprite.Group这样的精灵组,也是一个列表.列表的元素是可变的,它具有添加.删除.搜索.排序等多种

【python游戏编程之旅】第二篇--pygame中的IO、数据

本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 在上一篇中,我们介绍了pygame的入门操作http://www.cnblogs.com/msxh/p/4966899.html 这次我们将一起学习pygame中的IO.数据和更多关于字体打印的知识. 一.python输入输出 1.输出 python一次可以打印多个变量,只要用一个逗号将每个变量隔开就可以了.比如: A = 123 B = "ABC" C = 456 D = "DEF&

pygame安装过程出现找不到videodev.h的错误

首先参照<ubuntu 安装 pygame 很好玩的东西>,在执行sudo python setup.py时,出现 linux/videodev.h:No such file or directory error 解决方法: sudo apt-get install libv4l-dev cd /usr/include/linux sudo ln -s ../libv4l1-videodev.h videodev.h 原因:3.13.0 移除了对 v4l1 的支持,据我所知,2.6.38 已经

python2.7.11安装pygame包

环境 win7家庭版 python2.7.11 1.在python官网下载对应的pygame包,我这里下载的是pygame-1.9.2a0-hg_8d9e6a1f2635%2B.win-amd64-py2.7.msi,下载好直接点击安装就可以 2.安装python包的管理工具pip 下载地址:https://pypi.python.org/pypi/pip#downloads  下载好pip-9.0.1.tar解压到任意文件夹下进入终端 输入命令:  python setup.py instal

第一章 python自学开始——python和pygame的安装

买了一本书,但是书太坑没有正确的安装方法,所以我只能自己上官网死啃英文.软件都下载好了,才突然意识到为什么我不搜一下视频和博客呢.以下为自己摸索的一些方法. 官网入口 python官网:https://www.python.org/ pygame官网:http://pygame.org/news(不知道为什么这个官网网址总是带一个news,害得我以为这是个子网页) 下载方式 如果要下载最新版本的适合电脑配置的python,只要downloads直接选择即可. python 3和python 2并

pygame学习之绘制圆

1 import pygame 2 from pygame.locals import * 3 4 pygame.init() 5 screen = pygame.display.set_mode((600, 500)) 6 pygame.display.set_caption("drawing a circle") 7 while True: 8 for event in pygame.event.get(): 9 if event.type in (QUIT, KEYDOWN):

pygame学习之打印文本

1 import pygame 2 from pygame.locals import * 3 white = 255, 255, 255 4 blue = 0, 0, 200 5 pygame.init() 6 screen = pygame.display.set_mode((600, 500)) 7 myfont = pygame.font.Font(None, 70) 8 textImage = myfont.render("HELLO WORLD", True, white)