一、微信5.0打飞机游戏排名第一有哪些技巧
引言:随着人们对于游戏的热爱度,现如今各式各样的游戏出现在人们眼中,我国的主要游戏产业主要以腾讯公司和网易公司为主。其中,腾讯在我国游戏领域有着非常大的发展,随着人们对于游戏的热爱度提高,我国游戏发展也是非常迅速,而近几年我国更是兴起了一款一种小游戏,这类消息又叫做轻游戏,它不需要安装,可以直接在线玩,而这类小游戏也是受到了人们的广泛追捧,今天小编带大家了解一款微信小游戏。
一、微信小游戏打飞机
最近微信中出现了一款名为打飞机的小游戏,这款游戏也是非常的吃技巧。而这款游戏上线之后,也是和当时的微信跳一跳一样,掀起了很大一股浪潮。但是这款游戏在后期也就很难操作,今天小编在这里推荐大家一些打飞机的技巧以及方法,这款游戏在后期,因为飞机很多,因此很容易被撞死,所以在后面如果你火力很大,那么保持一定距离很好地对敌方飞机造成伤害,但是相反,如果你火力不够,那么你这人就不要再想着去打地铺飞机了,而是应该以保自身安全为主。
二、这款游戏在哪里找
对于很多微信,刚升级到5.0版本的用户来说,刚进去便会发现一个打飞机的游戏,但是很多网友都不小心退出,从而很难再找到这款游戏,今天小编给大家说一下这款游戏的查找方法,首先先打开微信,然后将页面切换到我,之后点击设置关于微信,然后再点到环影业就能够找到了。
三、微信8.0
现如今微信已经升级到8.0版本,里面小游戏也是越来越多,各式各样的小游戏也吸引了广大网友,嗯,查找游戏的方法也是更加方便,你只需要点到消息页面,将消息页面往下拉,便可以拿出一个搜索小程序的页面,你的学校在搜索上面打出你想要找的东西,便可以直接跳转到该页面,操作非常简单。
二、如何自己制作微信打飞机游戏PC版
为了复习一下准备自己做一个小游戏。想到微信上的飞机大战很火,就决定做一个PC版的。首先去下了个微信的APK,把里面的飞机大战的资源文件提取出来了。大家可以点击这里下载,也可以像我一样自己去提取。然后写游戏时有问题可以访问Pygame在线文档,遇到的问题都可以在其中找到答案。资源准备好后我们就可以开始编写游戏了。
第一步,显示背景。
我们先来显示出飞机大战游戏的背景图。
1#-*- coding: utf-8-*- 2 3 import pygame 4 from pygame.locals import* 5 from sys import exit 6 7 SCREEN_WIDTH= 480 8 SCREEN_HEIGHT= 800 9 10#初始化游戏11 pygame.init()12 screen= pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))13 pygame.display.set_caption('飞机大战')14 15#载入背景图16 background= pygame.image.load('resources/image/background.png')17 18 while True:19 #绘制背景20 screen.fill(0)21 screen.blit(background,(0, 0))22 23 #更新屏幕24 pygame.display.update()25 26 #处理游戏退出27 for event in pygame.event.get():28 if event.type== pygame.QUIT:29 pygame.quit()30 exit()
我们来分析这段代码:
导入Pygame库及需要的库;
初始化游戏,并根据设置好的大小生成游戏窗口;
载入背景图片;
进入游戏主循环。在主循环中,我们进行了以下工作:
清空屏幕
绘制背景
更新屏幕
处理游戏退出事件
运行后效果如下:
第二步,显示飞机。
我们打开resources/image/,发现所有的飞机都在 shoot.png一张图片中。我们在背景上显示的元素(包括飞机、子弹等)在Pygame中都是一个surface,这时可以利用pygame提供的subsurface方法,首先load一张大图,然后调用subsurface方法选取其中的一小部分生成一个新的surface。而这个小图在大图中的位置在image文件夹中shoot.pack文件里。
我们需要做的是在上述代码载入背景图后载入飞机图片,然后生成飞机的surbsurface并初始化飞机开始的位置:
1#载入飞机图片2 plane_img= pygame.image.load('resources/image/shoot.png')3 4#选择飞机在大图片中的位置,并生成subsurface,然后初始化飞机开始的位置5 player_rect= pygame.Rect(0, 99, 102, 126)6 player= plane_img.subsurface(player_rect)7 player_pos= [200, 600]
然后在主循环中绘制背景之后插入绘制飞机的代码:
1#绘制飞机2 screen.blit(player, player_pos)
运行后就能看见玩家操作的战机了:
第三步,让飞机动起来。
让飞机动起来即是让游戏在主循环中响应键盘事件。上面的代码中我们知道 screen.blit(player, player_pos)这一句代码绘制出了飞机,这个player_pos就是每次循环中绘制出的飞机的位置,响应键盘事件时,我们只需要改变这个位置就能移动飞机了。在主循环中加入响应键盘事件的代码:
1#监听键盘事件 2 key_pressed= pygame.key.get_pressed() 3 if key_pressed[K_UP]: 4 player_pos[1]-= 3 5 if key_pressed[K_DOWN]: 6 player_pos[1]+= 3 7 if key_pressed[K_LEFT]: 8 player_pos[0]-= 3 9 if key_pressed[K_RIGHT]:10 player_pos[0]+= 3
每当一个方向键按下时,我们只需要改变一个飞机位置的坐标,就可以让飞机动起来~
这样我们知道了制作一个2D游戏的基本的原理:游戏进入主循环后,每一次循环在响应的位置绘制出图片,改变位置或者图片就可以出现动画效果;然后通过判断两张图片的矩形区域是否相交来检测碰撞。简单吧?
接下来的步骤还有显示子弹、随机生成敌机、检测碰撞、判断游戏结束、计分等。我想介绍了这些,大家应该能自己完成接下来的任务了吧?
当然,玩家、子弹、敌机都可以写成一个类,继承pygame的sprite类,实现一些动画效果,以及检测碰撞,这样使用起来更简单。给大家看一下我写的类代码:
1#子弹类 2 class Bullet(pygame.sprite.Sprite): 3 def __init__(self, bullet_img, init_pos): 4 pygame.sprite.Sprite.__init__(self) 5 self.image= bullet_img 6 self.rect= self.image.get_rect() 7 self.rect.midbottom= init_pos 8 self.speed= 10 9 10 def move(self):11 self.rect.top-= self.speed12 13#玩家类14 class Player(pygame.sprite.Sprite):15 def __init__(self, plane_img, player_rect, init_pos):16 pygame.sprite.Sprite.__init__(self)17 self.image= [] #用来存储玩家对象精灵图片的列表18 for i in range(len(player_rect)):19 self.image.append(plane_img.subsurface(player_rect[i]).convert_alpha())20 self.rect= player_rect[0] #初始化图片所在的矩形21 self.rect.topleft= init_pos #初始化矩形的左上角坐标22 self.speed= 8 #初始化玩家速度,这里是一个确定的值23 self.bullets= pygame.sprite.Group() #玩家飞机所发射的子弹的集合24 self.img_index= 0 #玩家精灵图片索引25 self.is_hit= False #玩家是否被击中26 27 def shoot(self, bullet_img):28 bullet= Bullet(bullet_img, self.rect.midtop)29 self.bullets.add(bullet)30 31 def moveUp(self):32 if self.rect.top= 0:33 self.rect.top= 034 else:35 self.rect.top-= self.speed36 37 def moveDown(self):38 if self.rect.top= SCREEN_HEIGHT- self.rect.height:39 self.rect.top= SCREEN_HEIGHT- self.rect.height40 else:41 self.rect.top+= self.speed42 43 def moveLeft(self):44 if self.rect.left= 0:45 self.rect.left= 046 else:47 self.rect.left-= self.speed48 49 def moveRight(self):50 if self.rect.left= SCREEN_WIDTH- self.rect.width:51 self.rect.left= SCREEN_WIDTH- self.rect.width52 else:53 self.rect.left+= self.speed54 55#敌人类56 class Enemy(pygame.sprite.Sprite):57 def __init__(self, enemy_img, enemy_down_imgs, init_pos):58 pygame.sprite.Sprite.__init__(self)59 self.image= enemy_img60 self.rect= self.image.get_rect()61 self.rect.topleft= init_pos62 self.down_imgs= enemy_down_imgs63 self.speed= 264 self.down_index= 065 66 def move(self):67 self.rect.top+= self.speed
目前我基本实现了玩家移动并发射子弹、随机生成小飞机、击中小飞机并爆炸、玩家被击毁、背景音乐及音效、游戏结束并显示分数这几项功能,已经是一个简单可玩的游戏,我把代码分享到了GitHub上。感兴趣的同学可以去下载下来继续完成生成中飞机、大飞机,改变飞机速度,双排子弹和炸弹等功能。GitHub链接:PythonShootGame。
游戏截图:
三、微信打飞机攻略
1、微信打飞机其实并不是真正意义上的经典打飞机游戏,虽然它原本也可以做成经典打飞机游戏那样,可是因为触摸屏的特性与追求简洁和快的微信产品标准,实际上已经脱离了经典,变成了微信和打飞机的奇怪混合产物。
从这个层面上来说,微信打飞机的正式名字“经典飞机大战”是错的。
2、经典打飞机中,飞机上下左右的移动一般是匀速的,可是在微信里,变成了极快跟随手指――手指动多快,飞机移动就有多快。这让经典打飞机中以精确的速度、位置控制躲避漫天同样匀速飞舞的子弹的优雅快感消失。但这也使得很多诡异的打飞机技法得以实现,比如:
--擦着巨型飞机的边缘打击,发现打不死的瞬间快速侧移;
--在“死亡时间”(后面解释),快速寻找到小飞机突破缝隙,摆脱敌方密集火力造成的位置压制。
3、现在我们已经知道了飞机移动是不限速的,但微信打飞机依然有许多遵循经典飞机的地方,比如很重要的一条特性:飞机子弹以一定频率发射,可是在近距离时,子弹打中敌人并消失后马上会发射新子弹。
这导致了一个常见状况,就是距离敌人越近,飞机子弹发射频率越来越快。我们通常看见有人被巨型飞机逼到最底部,可是因为子弹频率变快,最终干爆巨型飞机。
4、利用移动不限速和子弹频率变快的特性,通过主动贴近敌方,可以实现对大飞机尤其是巨型飞机的快速打击,我称之为“进击”(简称 JJ,洋气点也可以说 Death Closing)。在打飞机时,你可以用 JJ获得更爽快和有效的结果,但它对操作有要求,需要勤加练习。JJ可以在中屏就快速消灭巨型飞机,然后再快速侧后移动来消灭更多飞机,获取更高分数。
5、关于分数。小飞机、大飞机和巨型飞机的分数分别为 1000、5000和 3万。不要相信那些“躲避为重、消灭为辅”的不负责任的说法,记住这一点:你多消灭一个小飞机,就有可能成为你的好友无法逾越的高分,在整整一周的时间里,他都有可能因为你最终比他多打了 1000分而哭泣。
而且,对消灭的追求虽然冒险,但这才能激励你的人生,在打飞机技巧上获得正向回馈。人总要积极一些的。
6、可是躲避依然很重要。在冷静判断敌机来速和子弹频率之后,如果确认已经无法消灭对方,当然需要躲。躲避也有技巧,首先就是在一次次打飞机的练习中,培养躲避的时机意识,很多人都会太早陷入不安全的幻觉,面对巨型飞机选择回避,殊不知这反而可能让你陷入快速到来的大飞机的包围,甚至直接碰到小飞机。
7、其次,永远记住虽然你的飞机是三角形,但只有机身部分碰触敌机才会挂掉,机翼是虚幻的、安全的。
尤其是敌机密集的时候,你第一要做的是迅速观察敌机布局,找到一条只有小飞机或只在远处有一个大飞机的纵轴,然后快速移动到这条轴上(一般容易选择的是左右最边缘的部位)。这种移动方式我称之为“急避”(JB,洋气点也可以说 Death Crossing)。
当打飞机分数已经达到 100万分而你还没挂时,记得深吸一口气,频繁使用 JB的时刻已经到来。有时候一个接一个的 JB,直接决定了你最后所到达的高度,高阶玩家甚至能玩出“幻影 JB”。
当然,这一刻永远不要忘记一个最重要的打飞机元素,那就是“双枪”和“雷”。
8、经典打飞机中的必备要素是火力加强和雷,这两点在微信打飞机中都有异化。微信中火力加强只有一种,那就是蓝色的双枪;微信的雷也只有一种,消灭当前全屏敌机,可并不能让玩家进入无敌状态。
双枪和雷,会间隔 30秒随机出现。其中双枪不用赘述,如同很多低级攻略里说的,拿到双枪,一个干俩!只要没有低级失误,这个超过机身范围的武器会让你进入半无敌的状态,只需要小心两种东西:多个快速前移的大飞机群、自身移动造成的侧撞。
可用雷一定要小心,和双枪一样,雷也是拿分用的,而不是救急用的。你没有雷无敌状态,别犯傻到最后一刻才点雷,一定要预留提前量。注意三点:
--巨型飞机被雷爆炸之后片刻,你碰上去仍然会挂,一定要绕开;
--微信打飞机支持两点同时触摸,所以新手建议一手打飞机,另外一只手放雷;
--雷最多只能储存 3个,再吃也没有用,所以一定要有效利用。
9、谈完了生存,最后我们谈谈死亡。虽然没有获得微信官方的统计数据,但全凭经验,有个死亡率最高的地方:
双枪的持续时间为 18秒,可武器是间隔 30秒才出现的,这意味着你在双枪结束后有 12秒处于脆弱状态。这 12秒就是你的死亡时间,也是 JB展现的时刻。
