设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

【Pygame 第3课】 游戏中的事件

[复制链接]

0

主题

0

好友

200

积分

中级会员

Rank: 3Rank: 3

楼主
发表于 2015-12-24 00:24:45 |显示全部楼层
本帖最后由 周末晒被子 于 2015-12-24 00:34 编辑

本来不知道怎么解决“4张图片列表循环”这个问题的,感觉很简单,尝试过用 for...in... 放在 while 循环的下一层,原本在 while 循环内的代码块全部丢进 for...in... 里面,失败,后来知道真相的我哭笑不得,听老师的没错,不知道哪里出错时,多print一下。

后来看到第一页一哥们的代码,受启发在 if event.type == pygame.MOUSEBUTTONDOWN: 之后用 if 条件。

借鉴了把窗口尺寸自动匹配图片尺寸的哥们的想法。

剩下的就是自己想出来的,基本上跟楼上各位的代码有重合之处。还学了一个 len() 的用法。

# -*- coding: utf-8 -*-
import pygame
from sys import exit
pygame.init()
pygame.display.set_caption('Hello world')
bglist = ['F:\some\d1.jpg','F:\some\d2.jpg','F:\some\d3.jpg','F:\some\d4.jpg']

background = pygame.image.load(bglist[0])

i = len(bglist)

num = 1
while True:
   
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                exit()
               
            if event.type == pygame.MOUSEBUTTONDOWN:
                background = pygame.image.load(bglist[num]).convert()
                num += 1
                if num == i:
                    num = 0
                    
        width = background.get_width()
        height = background.get_height()
        screen = pygame.display.set_mode((width,height),0,32)
        
        screen.blit(background,(0,0))
        pygame.display.update()
        
回复

使用道具 举报

0

主题

0

好友

200

积分

中级会员

Rank: 3Rank: 3

沙发
发表于 2015-12-24 00:26:13 |显示全部楼层
就是不知道为什么我的图片路径一定要用绝对路径,不能像楼上各位一样简单得用"bg.jpg"...
回复

使用道具 举报

0

主题

0

好友

200

积分

中级会员

Rank: 3Rank: 3

板凳
发表于 2015-12-24 23:54:10 |显示全部楼层
crossin先生 发表于 2015-12-24 11:42
你是不是通过编辑器直接运行的?这样有时候路径会比较奇怪。试试在命令行下运行 ...

是在编辑器运行的。试了下在白色背景的命令行(Python 2.75 Shell)运行,没反应,就跟什么都不输入,直接按回车一样。
但是在黑色背景的命令行是可以运行的,跟编辑器运行效果一样。
回复

使用道具 举报

0

主题

0

好友

200

积分

中级会员

Rank: 3Rank: 3

地板
发表于 2015-12-25 13:58:22 |显示全部楼层
本帖最后由 周末晒被子 于 2015-12-26 01:10 编辑
crossin先生 发表于 2015-12-25 10:51
在系统命令行下运行
python xxx.py
这时候相对路径的当前目录,就是你执行这个命令的所在目录 ...

在系统命令行运行”python Firstpygame.py“,能看到一个黑色命令行窗口一闪而过。
先生这是为什么呢?
明明我把代码放上python命令行(黑色背景的)能运行,但由系统打开python命令行运行,就不可以了,一闪而退。
回复

使用道具 举报

0

主题

0

好友

200

积分

中级会员

Rank: 3Rank: 3

5#
发表于 2015-12-27 06:20:18 |显示全部楼层
crossin先生 发表于 2015-12-26 18:24
是因为执行完,窗口就关闭了。非要用这种方式运行的话,在结尾加一个input,让程序停下来等待输入 ...

谢谢先生
回复

使用道具 举报

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

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

GMT+8, 2024-5-2 15:05 , Processed in 0.027689 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部