鱼C论坛

 找回密码
 立即注册
查看: 1782|回复: 10

[已解决]游戏开发,小乌龟的第一个代码,界面黑屏是怎么回事?

[复制链接]
发表于 2017-11-9 10:29:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 markfzc 于 2017-11-9 10:31 编辑

  1. '''

  2. 有三个问题,第一个是下面的代码运行后,界面都是黑的,看不到小乌龟。
  3.             第二个是 speed[-2, 1] 是什么意思,我想问下xy轴的方向是怎样的
  4.             第三个问题是第二个问题衍生出来的,就是第一个if下面的翻转图像
  5.             speed[0] = -speed[0] 看不懂
  6.             同理,第二个if下面的
  7.             speed[1] = -speed[1] 看不懂

  8.             有问题的地方在 26行,45行,47行
  9.         谢谢大家

  10. '''



  11. #16.2 小乌龟移动初步

  12. import pygame
  13. import sys

  14. #初始化pygame
  15. pygame.init()
  16. size = width, height = 600, 400
  17. speed = [-2, 1]                 # 这里-2,1 看不懂移动方向是什么?
  18. bg = (255, 255, 255)           #背景255表示什么意思

  19. #创建窗口,并指定窗口大小
  20. screen = pygame.display.set_mode(size)
  21. #设置窗口标题
  22. pygame.display.set_caption('初次见面,请多关照')
  23. turtle = pygame.image.load('turtle.jpg')
  24. #获得图像位置的矩形
  25. position = turtle.get_rect()

  26. while True:
  27.     for event in pygame.event.get():
  28.         if event.type == pygame.QUIT:
  29.             sys.exit()
  30.     #移动图像
  31.     position = position.move(speed)
  32.     if position.left <0 or position.right >width:
  33.         turtle = pygame.transform.flip(turtle, True, False) #翻转图像
  34.         speed[0] = -speed[0]           #反方向移动
  35.     if position.top <0 or positon.bottom >height:
  36.         speed[1] = -speed[1]
  37.     #填充背景,更新图像,更新界面,延迟10毫秒
  38.     screen.fill(bg)
  39.     screen.blit(turtle, positon)
  40.     pygame.display.flip()
  41.     pygame.time.delay(10)
复制代码
最佳答案
2017-11-9 12:58:10
这是列表索引啊,[0]表示第一个值,[1]表示第二个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-11-9 11:17:03 From FishC Mobile | 显示全部楼层
speed[x,y] 分别表示在x,y方向上的自动速度,一般的都是向右为x正方向,向下为y正方向,如果前面加负号表示方向取反
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-9 11:38:30 | 显示全部楼层
本帖最后由 markfzc 于 2017-11-9 11:41 编辑
BngThea 发表于 2017-11-9 11:17
speed[x,y] 分别表示在x,y方向上的自动速度,一般的都是向右为x正方向,向下为y正方向,如果前面加负号表示 ...


谢谢回复,那上面的45行到47行,为什么虽然都加了负号,但为什么speed[0]和speed[1]呢? 还有就是,我的代码运行后是黑屏的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-9 11:57:28 From FishC Mobile | 显示全部楼层
只是将方向取反,大小不变,只需要添加负号即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-9 12:21:47 | 显示全部楼层
BngThea 发表于 2017-11-9 11:57
只是将方向取反,大小不变,只需要添加负号即可

初始化的时候 speed[-2 , 1] 可以理解为每次向x轴的反方向移动2个单位,向y轴的正方向移动1个单位吗?后来的 speed[0] = -speed[0] ,负号我理解了,那【0】表示什么意思呢?同理speed[1] = -speed[1] 中的[1]表示什么意思呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-9 12:58:10 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
这是列表索引啊,[0]表示第一个值,[1]表示第二个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-9 14:31:51 | 显示全部楼层
本帖最后由 markfzc 于 2017-11-9 16:11 编辑
BngThea 发表于 2017-11-9 12:58
这是列表索引啊,[0]表示第一个值,[1]表示第二个


啊,我明白了,我这木脑袋。speed[0] = -speed[0] 只是第一项,也就是x轴的运动方向相反,我把它理解为赋值了。谢谢回答。

另外,最后一个问题,bg = (255, 255, 255) 这个是什么意思? 我知道bg 表示背景。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-9 16:10:41 | 显示全部楼层
另外,我自己回答下一个问题,就是加载后黑屏的原因是,我把单词position 打错了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-9 21:48:57 | 显示全部楼层
bg = (255, 255, 255)表示背景色彩的值,三个255,背景是白色的。如果将其中某个255改成其他值比如100,150,那么背景会呈现其他颜色比如黄色或者粉红。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-9 21:52:25 | 显示全部楼层
markfzc 发表于 2017-11-9 21:48
bg = (255, 255, 255)表示背景色彩的值,三个255,背景是白色的。如果将其中某个255改成其他值比如100,150 ...


对的,rgb三原色的取值范围都是0~255
如果全0就是黑色,全255就是白色
如果是255,0,0那就是红色
依次类推
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-24 10:47:09 | 显示全部楼层
markfzc 发表于 2017-11-9 16:10
另外,我自己回答下一个问题,就是加载后黑屏的原因是,我把单词position 打错了。

我也遇到黑屏的问题,你上面的代码position并没有打错呀?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-19 20:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表