加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

500行代码,教你用Python写个微信飞机大战

发布时间:2019-10-21 18:26:11 所属栏目:业界 来源:上海小胖
导读:【大咖·来了 第7期】10月24日晚8点寓目《智能导购对话呆板人实践》 这几天在重温微信小游戏的飞机大战,玩着玩着就在思索人生了,这飞机大战怎么就可以做的那么好,操纵简朴,简朴上手。 辅佐蹲厕族、YP族、饭圈女孩在无聊之余可以有一样对象让他们振作起

实现子弹类,完成子弹的首要操纵

  1. # 飞机子弹类 
  2. class Bullet(): 
  3.     def __init__(self, image_path=os.path.join(source_dir,'bullet.png'), background_size=(480, 700), plan=None, speed=1000): 
  4.         ''' 
  5.         :param image_path: 子弹的图片地点 
  6.         :param background_size: 游戏窗口巨细 
  7.         :param plan: 飞机工具 
  8.         :param speed: 子弹航行速率 
  9.         ''' 
  10.         self.image = pygame.image.load(image_path).convert_alpha() 
  11.         self.background_size = background_size 
  12.         self.speed = background_size[1] / speed 
  13.         # 子弹是否击中敌机 
  14.         self.destroyed = False 
  15.         self.position = self._get_position(plan) 
  16.  
  17.     def _get_position(self, plan): 
  18.         ''' 
  19.         按照plan获得子弹发出位置 
  20.         :param plan: 飞机工具 
  21.         ''' 
  22.         bullet_size = self.image.get_size() 
  23.         plan_width = plan.image_size[0] 
  24.         x = (plan_width-bullet_size[0]) / 2 
  25.         return [plan.position[0] + x, plan.position[1]] 
  26.  
  27.     def update(self, time_passed): 
  28.         ''' 
  29.         改变子弹位置 
  30.         :param time_passed: 间隔前次绘制图像到此刻的时刻 
  31.         ''' 
  32.         # 假如子弹超出屏幕可能击中敌机,就配置self.position[1]为-100,在plan.draw的时辰就移除它 
  33.         if self.position[1] + self.image.get_size()[1] <= 0 or self.destroyed: 
  34.             self.position[1] = -100 
  35.             return 
  36.  
  37.         # 改变的间隔 = 时刻 * 速度 
  38.         self.position[1] -= time_passed * self.speed 

500行代码,教你用Python写个微信飞机大战

这样,我们就把全部的操纵都实现完了,接下来只必要行使 Game().run(),就可以运行我们的游戏了。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读