Python学习笔记 Day 14 项目 -外星人入侵 - 2

Day 14 项目 -外星人入侵 - 2

  • 首先是归纳Day13学习到的有关pygame的知识,用流程图方式,绘图软件:https://www.draw.io/
    pygame绘制窗口基础流程**加粗样式**

定义飞船类流程


  • 初始化窗口,包括获取句柄,获取窗口矩形
	screen = pygame.display.set_mode(width, height)
	pygame.display.set_caption("Alien Invasion")

	self.image = pygame.image.load('images/ship.bmp')
	self.rect = self.image.get_rect()
	self.screen_rect = screen.get_rect()

  • pygame的Sprit类

    	from pygame.sprite import Sprite	
    	from pygame.sprite import Group
    
    • pygame.Sprit类,即‘精灵’,可将游戏中的相关元素编组,进而同时操作编组中的所有元素,类似于创建一个列表。
    • 精灵,可以理解为会动的图片;
    • 精灵的Group()函数,当有若干精灵时,可通过Group()函数创建一个列表。每次对组内的精灵进行绘制时,直接调用Group.update()即可,而不必考虑组内每个精灵的状态。
    • 举例来说,定义一个外星人,是继承Sprite的类,创建了若干外星人后,在屏幕上一起显示,每个外星人的在屏幕上的位置都是随机的,并且要检测边界、检测冲突等等,如果不用Group,需要对每个外星人都做单独的计算更新等等:
        for alien in aliens:
            alien.update()
            screen.blit(alien.image, alien.rect)
    

    如果使用Group,在创建外星人的时候将这些外星人加入群组即可,以后每次只需要更新一次群组即可实现对所有外星人的更新,并且提供内置的冲突检测等功能。

    	for alien_number in range(number_aliens_x):
    		#创建一个外星人并将其加入当前行
    		alien = Alien(ai_settings, screen)
    	aliens.add(alien)
    	#直接调用群组的update
    	aliens.update()
    
  • 响应用户输入(左右箭头移动飞船)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

steventian72

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值