Crossin的编程教室

标题: 【Pygame 第1课】 hello pygame [打印本页]

作者: crossin先生    时间: 2013-8-15 23:49
标题: 【Pygame 第1课】 hello pygame
我们已经把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分钟,轻松学编程


作者: book    时间: 2013-8-16 13:01
您好,我是xp系统,写出的文件,只有放在c:\python27中才能运行!怎么放在别的目录中运行文件!
Traceback (most recent call last):
  File "D:\Py\pygame11.py", line 4, in <module>
    import pygame
  File "D:/Py\pygame.py", line 7, in <module>
AttributeError: 'module' object has no attribute 'init'
作者: crossin先生    时间: 2013-8-16 22:13
book 发表于 2013-8-16 13:01
您好,我是xp系统,写出的文件,只有放在c:\python27中才能运行!怎么放在别的目录中运行文件!
Traceback  ...

看上去像是环境变量没设好。
python本身运行是不是正常?
是不是装过2个版本python?
python shell里验证pygame安装的时候有没有报错?
作者: book    时间: 2013-8-17 00:10
本帖最后由 book 于 2013-8-17 00:11 编辑
crossin先生 发表于 2013-8-16 22:13
看上去像是环境变量没设好。
python本身运行是不是正常?
是不是装过2个版本python?


你好,我说错了,我的系统是win7_64位,python运行正常,我只安装了一个python2.7.5,python shell、dos命今符中验证安装没有问题,我安装的pygame也是64位的,python2.7.5的环境变题我设置过,请问还有什么环境变量,要怎么设置?(在python27目录中运行没有问题,拿到d盘下出问题!)
作者: crossin先生    时间: 2013-8-17 00:40
book 发表于 2013-8-17 00:10
你好,我说错了,我的系统是win7_64位,python运行正常,我只安装了一个python2.7.5,python shell、dos ...

看这样子是因为没找到pygame的路径。这个应该是pygame安装时候会自动设置好,至于为什么出问题,我也不清楚了。
作者: crossin先生    时间: 2013-8-17 00:44
book 发表于 2013-8-17 00:10
你好,我说错了,我的系统是win7_64位,python运行正常,我只安装了一个python2.7.5,python shell、dos ...

你是不是一开始把程序命名为pygame.py了。。。
如果是的话,删掉新建,重来
作者: book    时间: 2013-8-18 14:05
crossin先生 发表于 2013-8-17 00:44
你是不是一开始把程序命名为pygame.py了。。。
如果是的话,删掉新建,重来 ...

对的,谢谢,我重新建一个命名不和关键字重名,谢谢!
作者: Victor    时间: 2013-8-29 18:13
请问下为什么我的那个图形界面闪下就又消失了?图也没粗来o(︶︿︶)o
作者: Victor    时间: 2013-8-29 18:18
额。。好了,少写了一条语句,(/ □ \)
作者: aresli    时间: 2013-9-4 10:52
我的系统是os x 10.8.4,默认的python版本是2.7.2,发现装pygame的时候不能装,说是只能跑在python 2.7这个版本下。
抱着试一试的心态,顺手就打了 brew install python。结果现在的python版本变成2.7.5了,还是不能装。
看来必须去装2.7才行。我想问一下,降级安装有没有什么要注意的地方?是不是要先把2.7.5这个版本删干净了再装?是的话如何删干净?
谢谢!
作者: crossin先生    时间: 2013-9-4 14:14
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,看看有没有可行的方法。
作者: aresli    时间: 2013-9-4 15:18
crossin先生 发表于 2013-9-4 14:14
for python2.7 就是指2.7.x的版本,2.7.2,2.7.5应该都是可以的,如果不行,问题肯定出在别的地方,你装成 ...

pygame.org下载的时候,只要去下载【Lion apple supplied python: pygame-1.9.2pre-py2.7-macosx10.7.mpkg.zip】就可以正常安装了。

不过第一次在python shell中验证版本的时候,会提示你没有安装X11. 然后跟着mac君一步一步把x11安装好后,再验证pygame的版本就会得到:

>> import pygame
>>> pygame.ver
'1.9.2pre'
>>>

现在只能祈祷1.9.2pre和1.9.1release不要有太大的差异
作者: aresli    时间: 2013-9-4 16:20
在mac下用终端运行这一节课的py文件时,会报一个错:

Traceback (most recent call last):
  File "/Users/ares/Sites/Dropbox/file/pygame/lesson01.py", line 12, in <module>
    background = pygame.image.load('bg1.jpg').convert()   #加载并转换图像
pygame.error: Couldn't open bg1.jpg

同样的,改成相对路径后:
background = pygame.image.load('~/Sites/Dropbox/file/pygame/bg1.jpg').convert()  
还是会报这个错:
Traceback (most recent call last):
  File "/Users/ares/Sites/Dropbox/file/pygame/lesson01.py", line 12, in <module>
    background = pygame.image.load('~/Sites/Dropbox/file/pygame/bg1.jpg').convert()   #加载并转换图像
pygame.error: Couldn't open ~/Sites/Dropbox/file/pygame/bg1.jpg

只有写成绝对路径后才能正常运行:
background = pygame.image.load('/Users/ares/Sites/Dropbox/file/pygame/bg1.jpg').convert()   #加载并转换图像

========idle的分割线===========
在idle下:
background = pygame.image.load('bg1.jpg').convert()
background = pygame.image.load('/Users/ares/Sites/Dropbox/file/pygame/bg1.jpg').convert()
都可以正常运行,
background = pygame.image.load('~/Sites/Dropbox/file/pygame/bg1.jpg').convert()
则会转菊花,导致idle卡死。

有没有什么办法,可以让load('bg1.jpg')在终端下也可以使用吗?

作者: 文书    时间: 2013-9-4 21:38
先生,程序运行后出现窗口了,跟你演示的一样。为什么我关闭窗口之后shell中会出现这个呢?请问是什么地方出问题了吗?
  1. Traceback (most recent call last):
  2. File "C:/Python27/pythongame.py", line 14, in <module>
  3. exit()
  4. SystemExit
复制代码

作者: crossin先生    时间: 2013-9-5 19:39
aresli 发表于 2013-9-4 16:20
在mac下用终端运行这一节课的py文件时,会报一个错:

Traceback (most recent call last):

终端下运行时,相对路径是根据你终端当前路径来算的,所以你得进入到代码所在路径运行才行
作者: crossin先生    时间: 2013-9-5 19:40
文书 发表于 2013-9-4 21:38
先生,程序运行后出现窗口了,跟你演示的一样。为什么我关闭窗口之后shell中会出现这个呢?请问是什么地方 ...

没看懂,好像不是报错
作者: simple    时间: 2013-9-23 19:25
Traceback (most recent call last):
  File "D:\Py\test\hellegame.py", line 9, in <module>
    screen = pygame.display.set_mode((600,170),0,32)
error: No available video device
l老师啊,这个少驱动理解不了啊。这个要怎么整
作者: crossin先生    时间: 2013-9-23 20:56
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碰碰运气吧
作者: simple    时间: 2013-9-24 09:13
crossin先生 发表于 2013-9-23 20:56
http://stackoverflow.com/questions/15933493/pygame-error-no-available-video-device

我也没啥办法, ...

http://www.pinballcontrollers.com/forum/index.php?topic=343.0

和显卡驱动有关吧,我这台集成的显卡驱动有点问题不支持这个pygame。我在想更新下驱动可能就会好点。还在尝试中。至少有一点可以确定重装软件是没用的,我试过了。版本什么都是OK的。谢谢先生了。
作者: simple    时间: 2013-9-24 09:36
simple 发表于 2013-9-24 09:13
http://www.pinballcontrollers.com/forum/index.php?topic=343.0

和显卡驱动有关吧,我这台集成的显卡 ...

问题解决了。是显卡驱动的问题。谢谢先生
作者: jasonwu    时间: 2013-9-25 02:46
老师啊,为什么没看到有64位版本的下载,都是win32的,我的是win7 64位。。。
作者: crossin先生    时间: 2013-9-25 12:43
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
作者: 浮生湮灭了美好    时间: 2013-10-13 15:48
先生,我想问下screen = pygame.display.set_mode((600, 170), 0, 32) 这里面的四个数据前两个是长和宽吗,然后后两个数据是图片的什么 怎么看
作者: crossin先生    时间: 2013-10-13 16:09
浮生湮灭了美好 发表于 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的详细说明
作者: 浮生湮灭了美好    时间: 2013-10-13 22:35
crossin先生 发表于 2013-10-13 16:09
准确的说是三个数据,第一个数据是长宽的元组
第二个是flag,表示显示模式,例如全屏、缓存方式、是否可以 ...

太详细了 谢谢
作者: 今天手气不错啊    时间: 2014-3-8 09:32
老师,出现这个错误是什么意思?
Traceback (most recent call last):
  File "D:/PyGame/lesson1/Hello pygame.py", line 8, in <module>
    screen=pygame.display.set_mode((465,132),8,32)
error: Couldn't load GL function glBegin: No GL driver has been loaded
作者: crossin先生    时间: 2014-3-10 17:52
今天手气不错啊 发表于 2014-3-8 09:32
老师,出现这个错误是什么意思?
Traceback (most recent call last):
  File "D:/PyGame/lesson1/Hello py ...

不知道。。。
看上去是opengl的问题
难道你用了虚拟机还是什么?
作者: 今天手气不错啊    时间: 2014-3-10 18:14
本帖最后由 今天手气不错啊 于 2014-3-10 18:16 编辑
crossin先生 发表于 2014-3-10 17:52
不知道。。。
看上去是opengl的问题
难道你用了虚拟机还是什么?

谢谢老师,问题解决了,是代码问题。


作者: very    时间: 2015-5-5 15:17
我的OS 是Debian  版本默认Python2.7.3  安装pygame过程如下

root@kali-ghy:~/Desktop/pygame-1.9.1release# python setup.py

No Arguments Given, Perform Default Install? [Y/n]y


WARNING, No "Setup" File Exists, Running "config.py"
Using UNIX configuration...


Hunting dependencies...
sh: 1: sdl-config: not found
WARNING: "sdl-config" failed!
sh: 1: smpeg-config: not found
WARNING: "smpeg-config" failed!
Unable to run "sdl-config". Please make sure a development version of SDL is installed.

作者: crossin先生    时间: 2015-5-5 21:32
very 发表于 2015-5-5 15:17
我的OS 是Debian  版本默认Python2.7.3  安装pygame过程如下

root@kali-ghy:~/Desktop/pygame-1.9.1relea ...

这我也不知道,看上去是很多文件都没有
一般安装是 python setup.py install
但debian我没用过
作者: AllenYoung    时间: 2015-6-17 15:41
想问一下,在下载Pygame的时候,
在Source中有pygame-1.9.1release.zip
和windows中 pygame-1.9.1.win32-py2.7.msi
这两个有什么区别吗?
我是下载的.msi安装的,好气。 好奇另一个,里面也有一个setup.py.
作者: crossin先生    时间: 2015-6-18 18:51
AllenYoung 发表于 2015-6-17 15:41
想问一下,在下载Pygame的时候,
在Source中有pygame-1.9.1release.zip
和windows中 pygame-1.9.1.win32-py ...


setup.py应该是需要从命令行安装的
作者: 周末晒被子    时间: 2015-12-19 01:04
先生,我安装了pygame,安装过程并没有显示安装路径,安装完后,在python shell上运行却报错了:

>>> import pygame

Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    import pygame
ImportError: No module named pygame
>>>

试过把pygame安装包放在python的文件夹内,一样不行。
作者: crossin先生    时间: 2015-12-19 23:43
周末晒被子 发表于 2015-12-19 01:04
先生,我安装了pygame,安装过程并没有显示安装路径,安装完后,在python shell上运行却报错了:

>>> impo ...

要放到 library/site-packages 下面
作者: 周末晒被子    时间: 2015-12-20 00:02
本帖最后由 周末晒被子 于 2015-12-20 00:26 编辑
crossin先生 发表于 2015-12-19 23:43
要放到 library/site-packages 下面

没理解先生的意思,先生是说下载pygame的时候就把pygame下载到python所在文件夹,里面的Lib/site-packages的里面吗,然后在这里解压,就可以用了?

试着把pygame下载到F:\python\Lib\site-packages里面安装了,依然是和上面一样的错误,求先生搭救...
作者: crossin先生    时间: 2015-12-20 16:38
周末晒被子 发表于 2015-12-20 00:02
没理解先生的意思,先生是说下载pygame的时候就把pygame下载到python所在文件夹,里面的Lib/site-packages ...

把解压后的pygame代码放到那个文件夹下,那个文件夹是import的路径,import xxx就会在这个目录下查找。没找到,应该是路径放的还是不对
作者: 周末晒被子    时间: 2015-12-20 23:15
本帖最后由 周末晒被子 于 2015-12-20 23:39 编辑

pygame安装包解压后没有出现pygame的代码,而是解压出两个文件夹,分别是“Lib”和“Include”里面都有一些不少东西,把两个文件夹放在了F:\python\Lib\site-packages,依然是ImportError: No module named pygame,我试试百度一下解决,麻烦先生了......

我的python版本是,Python 2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)] on win32,
然后下载的pygame是,pygame-1.9.1.win32-py2.7。

作者: crossin先生    时间: 2015-12-20 23:51
周末晒被子 发表于 2015-12-20 23:15
pygame安装包解压后没有出现pygame的代码,而是解压出两个文件夹,分别是“Lib”和“Include”里面都有一些 ...

你python64位的,但pygame32位的,不知道是不是这个原因
pygame64位好像有,但不是官网上。
或者把python换成32位
作者: 周末晒被子    时间: 2015-12-21 22:01
本帖最后由 周末晒被子 于 2015-12-21 22:05 编辑
crossin先生 发表于 2015-12-20 23:51
你python64位的,但pygame32位的,不知道是不是这个原因
pygame64位好像有,但不是官网上。
或者把python ...

谢谢先生!刚刚pygame运行了。

我先在python官网下载了32位的python,不知道是不是因为设置过环境变量,这次不用设置;

又下载了pygame官网的“pygame-1.9.1.win32-py2.7.msi”,解压,可能因为我的32位python文件夹取名为“python.32”
所以在所在盘新出现一个名为“python”的文件夹,这个文件夹就是pygame安装包解压出来的东西;

然后打开被解压出来的文件夹“python”,进入这个路径——F:\python\Lib\site-packages\Lib\site-packages,把里面的两样东西:1个“pygame”文件夹,1个egg-info文件

放到我的32位python里面,路径如下——F:\python.32\Lib\site-packages,即可运行pygame。

本人小白,说得啰嗦莫怪~再次感谢Crossin先生,没有先生的提示我还以为自己的python是32位的。
作者: catherinemic    时间: 2016-1-29 14:03
感觉越来越难了,刚开始接触pygame,crossin老师在这部分好像讲解的篇幅少些。

Python27.png (476.87 KB, 下载次数: 562)

Python27.png


作者: crossin先生    时间: 2016-1-30 12:14
catherinemic 发表于 2016-1-29 14:03
感觉越来越难了,刚开始接触pygame,crossin老师在这部分好像讲解的篇幅少些。

...

这一块篇应用,没有细说每一行代码。
可以先把基础练熟了再看这一部分
作者: catherinemic    时间: 2016-1-30 12:58
crossin先生 发表于 2016-1-30 12:14
这一块篇应用,没有细说每一行代码。
可以先把基础练熟了再看这一部分

刚好看到52课元组那里提到pygame里的代码,就过来看看,发现也可以学一点,刚开始有点困难,现在也慢慢适应啦~~
作者: gondor    时间: 2016-3-5 14:46
Crossin先生,以下的错误我不知道是什么意思,请求帮助。
Traceback (most recent call last):
  File "F:\python\11d.py", line 14, in <module>
    screen.blit(background,(0,0))
AttributeError: 'NoneType' object has no attribute 'blit'
作者: crossin先生    时间: 2016-3-5 21:19
gondor 发表于 2016-3-5 14:46
Crossin先生,以下的错误我不知道是什么意思,请求帮助。
Traceback (most recent call last):
  File "F:\ ...

他是说调用blit的对象是NoneType,也就是说这里screen为None
你看下screen哪里出问题了
作者: Kunz    时间: 2016-3-9 16:10
图片和编程的文件放在一个文件夹下就行了是吗?为啥我的出来是全黑的背景啊?
作者: Kunz    时间: 2016-3-9 16:18
我刚试了一下,必须图片和文件在一个文件夹下,但为啥我的显示的是黑的呢?

QQ图片20160309161650.png (13.9 KB, 下载次数: 553)

QQ图片20160309161650.png


作者: crossin先生    时间: 2016-3-9 18:04
Kunz 发表于 2016-3-9 16:18
我刚试了一下,必须图片和文件在一个文件夹下,但为啥我的显示的是黑的呢? ...

不太清楚,再对照代码看看,是不是漏了什么参数。然后换几个图试试,可能格式不支持
作者: Kunz    时间: 2016-3-11 14:42
crossin先生 发表于 2016-3-9 18:04
不太清楚,再对照代码看看,是不是漏了什么参数。然后换几个图试试,可能格式不支持 ...

好的,我试试~~
作者: Kunz    时间: 2016-3-11 18:40
发现我的问题了,空格的问题,感谢!!!
作者: exchen    时间: 2016-5-4 11:13
python32位的到哪下载啊
作者: crossin先生    时间: 2016-5-4 13:38
exchen 发表于 2016-5-4 11:13
python32位的到哪下载啊

官网就有,名字里不带64bit那个就是32位的
作者: exchen    时间: 2016-5-4 13:54
为什么pygame会一直未响应
作者: crossin先生    时间: 2016-5-4 14:25
exchen 发表于 2016-5-4 13:54
为什么pygame会一直未响应

原因很多,要看环境、具体状况、报什么错,具体情况具体分析
作者: Yumiao_HyunMin    时间: 2016-7-1 12:56
总是在安装上出一大堆问题T_T

先生,为什么我import pygame 出这种错:
  1. File "<pyshell#35>", line 1, in <module>
  2.     import pygame
  3.   File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pygame/__init__.py", line 95, in <module>
  4.     from pygame.base import *
  5. ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pygame/base.so, 2): no suitable image found.  Did find:
  6.         /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pygame/base.so: no matching architecture in universal wrapper
复制代码
我看了一下我的pygame 文件夹是在site-packages 里的啊。。
作者: Yumiao_HyunMin    时间: 2016-7-1 14:23
解决啦。。果然还是因为自己的python是64位的缘故。。
作者: Phoestia    时间: 2016-9-3 01:29
终于搞好了,Win64 从装PIP到PYGame 再到显示图片不容易啊:
1.        Download pygame: http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame
2.        Download pip: https://bootstrap.pypa.io/get-pip.py
3.        Set up path: - system – advance system settings—environment variables—path, enter ;C:\Python27\;C:\Python27\Scripts
4.         Go CMD, run python get-pip.py
5.        Find pip at: C:\Python27\Scripts\pip.exe by CMD, run it
6.        Set Path “%Path%;C:\Python27\Scripts”
7.        Pip install C:\Users\Desktop\pygame-1.9.2b1-cp27-cp27m-win_amd64.whl

回去装MAC的。。。


作者: crossin先生    时间: 2016-9-3 10:58
Phoestia 发表于 2016-9-3 01:29
终于搞好了,Win64 从装PIP到PYGame 再到显示图片不容易啊:
1.        Download pygame: http://www.lfd.uci.edu/ ...


64位pygame官网是没有的。其实也可以用全套32位的版本
作者: huang6    时间: 2016-11-2 11:49
请教先生,python3到哪里下pythongame?
作者: crossin先生    时间: 2016-11-2 16:20
huang6 发表于 2016-11-2 11:49
请教先生,python3到哪里下pythongame?

http://www.pygame.org/download.shtml
官网有py3的下载,不过是32位且3.1和3.2的版本

作者: huang6    时间: 2016-11-10 14:36
crossin先生 发表于 2016-11-2 16:20
http://www.pygame.org/download.shtml
官网有py3的下载,不过是32位且3.1和3.2的版本
...

谢谢,3.4现在还没有吧
作者: crossin先生    时间: 2016-11-10 15:15
huang6 发表于 2016-11-10 14:36
谢谢,3.4现在还没有吧

官网上没看到
作者: huang6    时间: 2016-11-14 10:30
本帖最后由 huang6 于 2016-11-14 10:48 编辑

下了2.75的,重装了,但是一建窗口就卡死了,新建的窗口无响应。什么原因...
作者: crossin先生    时间: 2016-11-14 13:14
huang6 发表于 2016-11-14 10:30
下了2.75的,重装了,但是一建窗口就卡死了,新建的窗口无响应。什么原因... ...

不清楚。
游戏窗口还是代码编辑器窗口?
编辑器窗口无响应那就换个ide。
确认python、pygame的版本和位数都是匹配的,尽可能都用32位。
也不排除是代码问题,先把代码简化看看能不能运行
作者: huang6    时间: 2016-11-15 14:31
crossin先生 发表于 2016-11-14 13:14
不清楚。
游戏窗口还是代码编辑器窗口?
编辑器窗口无响应那就换个ide。

我把窗口的参数全都去掉,图片就出来了 以后要怎么办
作者: crossin先生    时间: 2016-11-15 14:43
huang6 发表于 2016-11-15 14:31
我把窗口的参数全都去掉,图片就出来了 以后要怎么办

可能某个参数导致跟你的系统不兼容吧。
你可以加第一个窗口大小的参数试试,如果正常运行不影响其他功能,那就这么用

或者还有可能是你的图片格式不兼容。
总之你参数、图片都换几个试试
作者: cleanhall    时间: 2016-11-27 23:51
可以用python3来开发pygame吗?我用的Mac在终端下直接pip安装的pygame
我目前了解到python2和python3的区别只有input和print
作者: crossin先生    时间: 2016-11-28 13:02
cleanhall 发表于 2016-11-27 23:51
可以用python3来开发pygame吗?我用的Mac在终端下直接pip安装的pygame
我目前了解到python2和python3的区别 ...

要下载对应的pygame版本,不是所有的都支持。
官网上有个列表。

mac的pygame似乎还没有看到支持py3的版本
作者: brahmagupta    时间: 2017-3-5 11:57
有没有小伙伴试过从source编译安装的或者在windows下用mingw编译安装的。。求分享。。我自己没敢试(等有空了试试)。想知道一下大致流程。。是不是只需要命令行setup.py,就可以去喝茶等着了。。
作者: brahmagupta    时间: 2017-3-5 12:17
顺手贴一个文档里关于pygame.display.set_mode()的用法和相关的参数解释(主要是后两个参数Flag和Depth。depth参数是指bits per pixels,取值范围是【8,32】(和桌面设置里的那个什么什么“32位真彩色”是一个意思),可以说是指颜色的鲜艳程度,中文应该是翻译作【位宽】好像。Flag见下文)

initialize a window or screen for display
pygame.display.set_mode(resolution=(0,0), flags=0, depth=0): return Surface

The flags argument controls which type of display you want. There are several to choose from, and you can even combine multiple types using the bitwise or operator, (the pipe "|" character). If you pass 0 or no flags argument it will default to a software driven window. Here are the display flags you will want to choose from:

   pygame.FULLSCREEN    create a fullscreen display
   pygame.DOUBLEBUF     recommended for HWSURFACE or OPENGL
   pygame.HWSURFACE     hardware accelerated, only in FULLSCREEN
   pygame.OPENGL        create an opengl renderable display
   pygame.RESIZABLE     display window should be sizeable
   pygame.NOFRAME       display window will have no border or controls


作者: brahmagupta    时间: 2017-3-5 12:22
Tps:
我的 win7 64bit 的pygame安装过程:(之前安装python的时候,环境变量里要有python的路径)
1.从Downloads页面里进入LFD.edu下载第三方,和已安装的python相应版本的 xxxx.win.amd64.whl文件
2.命令行cd进入whl文件所在目录下
3.pip install xxxx.win.amd64.whl
4.显示安装成功后,就可以进入python shell 查看pygame版本并使用它了
作者: brahmagupta    时间: 2017-3-5 12:38
本帖最后由 brahmagupta 于 2017-3-5 12:41 编辑

为什么在python shell 解释器里一行一行执行代码,在窗口创建完成后就(Not Responding)了?
而用pygame.quit()语句仍然可以直接退出pygame窗口。

(如果将代码全部写进一个.py文件,再运行这个.py文件,一切正常。。。。)
作者: crossin先生    时间: 2017-3-5 17:07
brahmagupta 发表于 2017-3-5 12:38
为什么在python shell 解释器里一行一行执行代码,在窗口创建完成后就(Not Responding)了?
而用pygame.qui ...

大概因为线程被阻塞了吧,程序一直在循环运行

没必要在 python shell 里这么做
作者: helloMoon    时间: 2017-7-20 18:18
用的python3.6.1,是否有python2有什么区别
执行时报错

    if event.type == pygame.QUIT():
TypeError: 'int' object is not callable


作者: crossin先生    时间: 2017-7-21 00:06
helloMoon 发表于 2017-7-20 18:18
用的python3.6.1,是否有python2有什么区别
执行时报错

QUIT后面没有括号吧
作者: helloMoon    时间: 2017-7-21 10:04
crossin先生 发表于 2017-7-21 00:06
QUIT后面没有括号吧

是的,已解决,多谢!
作者: suxianyang    时间: 2017-11-12 00:31
请教老师 为什么我的pygame打不开图片呢
  1. # -*- coding:utf-8 -*-
  2. import pygame
  3. from sys import exit
  4. pygame.init()
  5. screen=pygame.display.set_mode((600,170),0,32)
  6. pygame.display.set_caption("hello world")
  7. background=pygame.image.load('bg.jpg').convert()
  8. while True:
  9.     for event in pygame.event.get():
  10.         if event.type==pygame.QUIT():
  11.             pygame.quit()
  12.             exit()
  13.         if event.type==pygame.MOUSEBUTTONDOWN:
  14.             background=pygame.image.load('bg2.jpg').convert()
  15.     screen.blit(background,(0,0))
  16.     pygame.display.update()
  17.    
复制代码
这是他的输出
  1. Traceback (most recent call last):
  2.   File "C:/Users/hp/Desktop/11111.py", line 7, in <module>
  3.     background=pygame.image.load('bg.jpg').convert()
  4. pygame.error: Couldn't open bg.jpg
复制代码

作者: crossin先生    时间: 2017-11-12 15:57
suxianyang 发表于 2017-11-12 00:31
请教老师 为什么我的pygame打不开图片呢这是他的输出

应该文件名有问题或者路径不对
确认下,或者把文件放到项目根目录下
作者: 13253620252    时间: 2017-12-12 17:18
先生,为什么在官网上没有找到对应的pygame?我的Python是2.7.13版本,32位的。电脑是windows7系统
作者: crossin先生    时间: 2017-12-13 22:13
13253620252 发表于 2017-12-12 17:18
先生,为什么在官网上没有找到对应的pygame?我的Python是2.7.13版本,32位的。电脑是windows7系统 ...

找 cp27 的就可以
作者: 13253620252    时间: 2017-12-13 22:47
crossin先生 发表于 2017-12-13 22:13
找 cp27 的就可以

先生,那我应该找32位的还是64位的
作者: crossin先生    时间: 2017-12-15 20:27
13253620252 发表于 2017-12-13 22:47
先生,那我应该找32位的还是64位的

你是32 python 就用32的,必须一致
作者: zhaolehua    时间: 2017-12-21 16:38
先生 screen = pygame.display.set_mode((600, 170), 0, 32)这句话(600,170)指的说图片的尺寸,那0,32指的是什么?
作者: zhaolehua    时间: 2017-12-21 16:39
还有这句screen.blit(background, (0,0)),(0,0)指的什么?
作者: crossin先生    时间: 2017-12-22 14:17
zhaolehua 发表于 2017-12-21 16:39
还有这句screen.blit(background, (0,0)),(0,0)指的什么?

0,32 是图像的位数
0,0是位置
作者: zhaolehua    时间: 2017-12-22 15:03
懂了,我昨天去看了一下文档。以后尽量不问这种问题了。
作者: helloworld小白    时间: 2018-3-1 00:49
请问为什么我在www.pygame.org上找不到download呢
作者: helloworld小白    时间: 2018-3-1 01:25
已经安装完成啦!
作者: helloworld小白    时间: 2018-3-1 01:26
Phoestia 发表于 2016-9-3 01:29
终于搞好了,Win64 从装PIP到PYGame 再到显示图片不容易啊:
1.        Download pygame: http://www.lfd.uci.edu/ ...

厉害啊!从找不到下载链接到按照你提供的步骤完成安装,谢谢大神指点!
作者: 1qazmko0    时间: 2018-3-13 17:13
本帖最后由 1qazmko0 于 2018-3-13 19:20 编辑

http://www.pygame.org/download.shtml
作者: 花花啊    时间: 2018-4-10 10:56
请问如何安装pygame,我下载了“pygame-1.9.3-cp27-cp27m-win32.whl”,进入到下载目录打开命令窗口之后,执行pygame-1.9.3-cp27-cp27m-win32.whl后,提示C:python27\python.exe:can't find '__main__'module in 'C:\\Documents and Settings\\Adiministrator\\pygame-1.9.3-cp27-cp27m-win32.whl',是什么意思?
作者: crossin先生    时间: 2018-4-10 15:55
花花啊 发表于 2018-4-10 10:56
请问如何安装pygame,我下载了“pygame-1.9.3-cp27-cp27m-win32.whl”,进入到下载目录打开命令窗口之后, ...

通过pip install 安装,或者官网上有下载安装包,windows直接双击安装
作者: 花花啊    时间: 2018-4-10 16:31
crossin先生 发表于 2018-4-10 15:55
通过pip install 安装,或者官网上有下载安装包,windows直接双击安装

找到了你放在百度云的安装包,现在好了,谢谢~~
作者: 皮一下    时间: 2018-6-17 01:17
标题也能显示,但是就是图片加载不出来,是黑屏。
import pygame
from sys import exit
pygame.init()

display_width=500
display_height=300

black=(0,0,0)
white=(255,255,255)
red=(255,0,0)


gameDisplay=pygame.display.set_mode((display_width,display_height))
pygame.display.set_caption('Hello, World!')
clock=pygame.time.Clock()

image=pygame.image.load('123.png').convert()

def image(x,y):
    DISPLAYSURF.blit(image,(x,y))

x=(display_width*0.45)
y=(display_height*0.8)



crashed=False

while not crashed:

    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            crashed=True

    pygame.display.update()
    clock.tick(60)
   

pygame.quit()
quit()

作者: crossin先生    时间: 2018-6-17 10:22
皮一下 发表于 2018-6-17 01:17
标题也能显示,但是就是图片加载不出来,是黑屏。
import pygame
from sys import exit

先试下例子代码

可能是图片路径,也可能是图片本身不支持(有时候一些图片就是无法显示)




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5