设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 73943|回复: 34
打印 上一主题 下一主题

【Pygame 第1课】 hello pygame

[复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
楼主
发表于 2013-8-15 23:49:04 |显示全部楼层 |倒序浏览
我们已经把python的基本内容讲得差不多了,所以从今天起,尝试一下新的方面:pygame -- 用python来写游戏。

pygame是一个python的游戏库,借助它,我们可以用python写一些小游戏。虽然你想用它写出一个魔兽世界那样的游戏是不大可能的,但它的确适合python学习者入手游戏开发。

安装pygame
python标准库里是没有包含pygame的,所以我们需要去下载安装它。去www.pygame.org上的downloads找到对应你python版本的安装包下载并安装。Mac用户要注意一下,可能你mac里默认的python版本无法于pygame兼容,需要去puthon.org重新下载安装python2.7。

安装完之后,可以在你的python shell里验证一下:
  1. >>>import pygame
  2. >>>pygame.ver
  3. '1.9.1release'
复制代码
pygame的hello world
照例,我们要用一个hello world程序来开始我们的学习。

在写代码之前,先去找一张图片,确定图片的长宽值。我们要用它来做为背景图片。
  1. # -*- coding: utf-8 -*-
  2. import pygame
  3. #导入pygame库
  4. from sys import exit
  5. #向sys模块借一个exit函数用来退出程序
  6. pygame.init()
  7. #初始化pygame,为使用硬件做准备
  8. screen = pygame.display.set_mode((600, 170), 0, 32)
  9. #创建了一个窗口,窗口大小和背景图片大小一样
  10. pygame.display.set_caption("Hello, World!")
  11. #设置窗口标题
  12. background = pygame.image.load('bg.jpg').convert()
  13. #加载并转换图像
  14. while True:
  15. #游戏主循环
  16.     for event in pygame.event.get():
  17.         if event.type == pygame.QUIT:
  18.             #接收到退出事件后退出程序
  19.             pygame.quit()
  20.             exit()
  21.     screen.blit(background, (0,0))
  22.     #将背景图画上去
  23.     pygame.display.update()
  24.     #刷新一下画面
复制代码
运行代码。幸运的话,你会看到一个有图片背景的窗口,不再是黑乎乎或者白花花的控制台了。以后,我们的游戏就会出现在这个窗口里。

1.png

#==== Crossin的编程教室 ====#
微信ID:crossincode
论坛:http://crossin.me
QQ群:312723402

面向零基础初学者的编程课
每天5分钟,轻松学编程

#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

沙发
发表于 2013-8-16 22:13:22 |显示全部楼层
book 发表于 2013-8-16 13:01
您好,我是xp系统,写出的文件,只有放在c:\python27中才能运行!怎么放在别的目录中运行文件!
Traceback  ...

看上去像是环境变量没设好。
python本身运行是不是正常?
是不是装过2个版本python?
python shell里验证pygame安装的时候有没有报错?
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

板凳
发表于 2013-8-17 00:40:47 |显示全部楼层
book 发表于 2013-8-17 00:10
你好,我说错了,我的系统是win7_64位,python运行正常,我只安装了一个python2.7.5,python shell、dos ...

看这样子是因为没找到pygame的路径。这个应该是pygame安装时候会自动设置好,至于为什么出问题,我也不清楚了。
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

地板
发表于 2013-8-17 00:44:45 |显示全部楼层
book 发表于 2013-8-17 00:10
你好,我说错了,我的系统是win7_64位,python运行正常,我只安装了一个python2.7.5,python shell、dos ...

你是不是一开始把程序命名为pygame.py了。。。
如果是的话,删掉新建,重来
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

5#
发表于 2013-9-4 14:14:00 |显示全部楼层
aresli 发表于 2013-9-4 10:52
我的系统是os x 10.8.4,默认的python版本是2.7.2,发现装pygame的时候不能装,说是只能跑在python 2.7这个 ...

for python2.7 就是指2.7.x的版本,2.7.2,2.7.5应该都是可以的,如果不行,问题肯定出在别的地方,你装成2.7.0恐怕也是不行的。

你的问题应该是mac10.8的原因,pygame默认还不支持这版mac,我搜了一下,好像要改一些东西。

你去google或者bing搜一下 mac10.8 pygame,看看有没有可行的方法。
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

6#
发表于 2013-9-5 19:39:14 |显示全部楼层
aresli 发表于 2013-9-4 16:20
在mac下用终端运行这一节课的py文件时,会报一个错:

Traceback (most recent call last):

终端下运行时,相对路径是根据你终端当前路径来算的,所以你得进入到代码所在路径运行才行
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

7#
发表于 2013-9-5 19:40:34 |显示全部楼层
文书 发表于 2013-9-4 21:38
先生,程序运行后出现窗口了,跟你演示的一样。为什么我关闭窗口之后shell中会出现这个呢?请问是什么地方 ...

没看懂,好像不是报错
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

8#
发表于 2013-9-23 20:56:33 |显示全部楼层
simple 发表于 2013-9-23 19:25
Traceback (most recent call last):
  File "D:\Py\test\hellegame.py", line 9, in
    screen = pygame ...

http://stackoverflow.com/questio ... ilable-video-device

我也没啥办法,确认版本都正确,重装pygame碰碰运气吧
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

9#
发表于 2013-9-25 12:43:40 |显示全部楼层
jasonwu 发表于 2013-9-25 02:46
老师啊,为什么没看到有64位版本的下载,都是win32的,我的是win7 64位。。。 ...

32还是64是要看你python版本的,如果你装了32位python,就装32位pygame

64位pygame官方没有提供,有第三方下载的
http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

10#
发表于 2013-10-13 16:09:02 |显示全部楼层
浮生湮灭了美好 发表于 2013-10-13 15:48
先生,我想问下screen = pygame.display.set_mode((600, 170), 0, 32) 这里面的四个数据前两个是长和宽吗, ...

准确的说是三个数据,第一个数据是长宽的元组
第二个是flag,表示显示模式,例如全屏、缓存方式、是否可以缩放等
第三个是图片深度

对于函数的详细说明,可以去网上搜索别人写的文章说明,但最直接的方式还是去看官网文档
http://www.pygame.org/docs/ref/display.html#pygame.display.set_mode
这里就有对display.set_mode的详细说明
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-3 13:06 , Processed in 0.029037 second(s), 25 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部