自学Python笔记-项目《外星人入侵》一些心得和体会(一)

项目《外星人入侵》一些心得和体会

目前,我跟着书上的内容,做了外星人入侵的火箭部分。

然后,我开始做练习题,我将我的项目命名为:我的设计游戏

然后我创建了我的主程序文件: my_shoot_game.py

然后创建了文件: settings.py

文件settings.py包含Settings类,这个类只包含方法__init__(),它初始化控制游戏外观和飞船速度、子弹速度

然后创建了文件:ufo.py

文件ufo.py包含Ufo类,这个类包含了方法__init__() 、管理飞船位置的方法,update()以及在屏幕上绘制飞船的方法blitme()

表示飞船的图像存储在文件夹images下的文件ufo.bmp中。

随着功能越来越多,代码需要重构,于是创建了文件game_function.py

其中包含了一系列函数,游戏的大部分工作都是它们完成的。函数check_events() 检测相关事件、如按键和松开,并使用辅助函数check_keydown_events()和check_keyup_events()来处理这些事件

就目前而言,这些函数管理飞船的移动。模块game_functions还包含函数update_screen(),它用于在每次执行主循环时都重绘屏幕。

然后创建子弹文件:bullets.py

这里之后,就用到了pygame.sprite中导入的Sprite类。通过精灵,将游戏中相关的元素编组。到这里,我就觉得有点费脑子了。

因为书中没有讲,为什么要这么编组,只说了编组的好处,就是可以同时操作编组中的所有元素。

 

难点:

  • 不是很了解pygame中的Sprite和Group
  • 子弹我选择了圆形。
    # 在(0,0)处创建一个表示子弹的圆,再设置正确的位置
            self.circle = pygame.Rect(0, 0, settings.bullet_radius, settings.bullet_width)
            self.circle.centerx = ufo.rect.right
            self.circle.centery = ufo.rect.centery
    
    
     def draw_bullet(self):
            """ 在屏幕上绘制子弹"""
            pygame.draw.circle(self.screen, self.color, (self.circle.centerx, self.circle.centery), self.radius, self.width)

    设置屏幕背景图片的代码:此时settings.screen_background = pygame.image.load('image/sky.jpg')

  • screen.blit(settings.screen_background, (0, 0))

     

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值