python如何设置画布开始位置_Python-游戏-添加动画

信息来自Sweigart, Al. 2012. Making Games with Python & Pygame.http://inventwithpython.com/pygame/)

原理:用python制作动画的原理其实和静态画面有类似,是连续画图的结果。也就是运用程序在window上画出图画,一段时间后画出另一幅图画,连续起来即可。

7e315ba5bf3f3cb00c90f0f0692585e6.png

ps.:猫的图片下载处:http://invpy.com/cat.png

(效果动态待添加)

程序步骤如下:

1. import pygame, sys

2. from pygame.locals import *

3.

4. pygame.init()

5.#到这一步位置都是和静态绘图一样的基本设置

6. FPS = 30 # frames per second setting #FPS指的是frame rate(程序每秒钟画出的图片数量)。大多数的FPS是60。FPS太低会导致画面卡顿。

7. fpsClock = pygame.time.Clock() #Clock()是一个object,它可以保证程序以一个相对较大的FPS奔跑,但是不至于太快(通过在得到每次静态结果后插入一个暂停)。如果没有这一步,程序会跑太快。如何添加暂停,这一步被放在最后第47行,使用tick('FPS')在Clock()之后可以计算出一个暂停的长度(即与上一次使用tick()之间的差距)。总之,一定要在游戏loop之后加上这一步。

8.

9. # set up the window

10. DISPLAYSURF = pygame.display.set_mode((400, 300), 0, 32) #设置画布

11. pygame.display.set_caption('Animation') #设置tile

12.

13. WHITE = (255, 255, 255) #设置画布颜色,地20行添加

14. catImg = pygame.image.load('cat.png') #python支持从外部添加图像(PNG,JPG,GIF,BMP),这里需要确保图像文件和.py文件在一个路径下即可。在完成了图像编辑之后,需要将图像粘贴到画布上!这一步在39行。

#接下来是设定动态图像的位置(按照右下左上的顺序):

15. catx = 10 #图像左上角x轴设置为初始值1

16. caty = 10 #图像左上角y轴设置为初始值2

17. direction = 'right'

18.

19. while True: # the main game loop

20. DISPLAYSURF.fill(WHITE)

21.

22. if direction == 'right': #开始向右移动

23. catx += 5

24. if catx == 280:

25. direction = 'down'

26. elif direction == 'down': #开始向下移动

27. caty += 5

28. if caty == 220:

29. direction = 'left'

30. elif direction == 'left': #开始向左移动

31. catx -= 5

32. if catx == 10:

33. direction = 'up'

34. elif direction == 'up': #开始向上移动

35. caty -= 5

36. if caty == 10:

37. direction = 'right'

38.

39. DISPLAYSURF.blit(catImg, (catx, caty)) #将编辑好的图像粘贴到画布上面,blit(图像的名字,(图像左上角x轴的位置,图像左上角y轴的位置))。记住,当画布被锁定时无法添加图像(解锁方法参考静态图像制作过程)。

40.#下面的结束段跟静态图像制作过程一样。

41. for event in pygame.event.get():

42. if event.type == QUIT:

43. pygame.quit()

44. sys.exit()

45.

46. pygame.display.update() #显示。这一步很重要!

47. fpsClock.tick(FPS) #时间控制。这一步很重要!

完。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值