打企鹅攻略(微信朋友圈小游戏打企鹅的技巧攻略)
作者:哪吒游戏网 来源:哪吒游戏网 2020-08-09 13:31:14
打企鹅攻略(微信朋友圈小游戏打企鹅的技巧攻略),哪吒游戏网给大家带来详细的打企鹅攻略(微信朋友圈小游戏打企鹅的技巧攻略)介绍,大家可以阅读一下,希望这篇打企鹅攻略(微信朋友圈小游戏打企鹅的技巧攻略)可以给你带来参考价值。
[文章目录]
最近一款简单粗暴的微信小游戏又来了,疯狂打企鹅!其实老实说,这个游戏我小学的时候就在4399上玩过打企鹅攻略,现在改成了微信版的小手游,通过分享的形式着实是火了一把:鼠标一点就可以把企鹅揍远,最后看距离比谁远。电脑上可以再这里试玩点击前往,不过不能分享到朋友圈就是。下面是我打出来的截图,如果你的版本是一下就可以打出几万米的也是一样的原理:


我们来看看,决定企鹅飞行成绩的代码部分,虽然我也不是很懂js代码,不过可以通过下面的代码看出一般性的问题了,想看代码的可以点击展开,不想看的可以跳过:
[toggle title=”代码部分”]
Main.flyLine = function(angle){
var speedRate = 7;
var gRate = 100;
var flyBird;
var stage = Main.stage;
var fps = Main.fps;
var startX = 0;
var startY = 0;
var sWidth = Main.width;
var sHeight = Main.height;
var flySpeed = Main.speed * (Math.random() * 0.2 + 0.8) * speedRate;
var flyRad;
function initFlyLine() {
// code here.
//Main.stage.removeChild(Main.penguin);
Main.penguin.alpha = 0;
flyRad = angleToRad(angle);
var flyData = {
images: ["/vapp/52/fly.png"],
frames: {width:180, height:170},
animations: {fly:[0,2]},
framerate: 6
};
var spriteSheet = new createjs.SpriteSheet(flyData);
flyBird = new createjs.Sprite(spriteSheet, "fly");
flyBird.regX = 105;
flyBird.regY = 105;
stage.addChild(flyBird);
startFly();
}
var tParam = 0;
var g = 9.8 * gRate;
function clock(){
tParam += 1/fps;
moveBird(flySpeed, flyRad);
// stage.update();
}
function stageMove(difDistance, totalDistance){
Main.fire("moveStage", difDistance, totalDistance);
}
var offsetX = Main.penguinOffsetX;
var offsetY = Main.height - Main.floorLine + 32;
var flyStageDistance = Main.visibleDistance;
var fadeCnt = 0;
// var hitOffsetY = 100;//鍦板钩绾夸笌鍑绘墦鐨勮窛绂�
var hitOffsetY = Main.floorLine - Main.penguin.y - Main.penguinHeight / 2;
var tween;
function moveBird(speed, rad){
var x = speed * Math.cos(rad) * tParam;
var y = speed * Math.sin(rad) * tParam - 1/2 * g * square(tParam) + hitOffsetY;//v0*sina-1/2gt2
var vy = speed * Math.sin(rad) - g * tParam;
var vx = speed * Math.cos(rad);
var slope = -g / square(speed) / square(Math.cos(rad)) * x + Math.sin(rad) / Math.cos(rad);
flyBird.rotation = slope * angle;
var dif = vx * 1/fps;
if(x + startX > flyStageDistance){
stageMove(dif, x + startX);
}else{
flyBird.x = sWidth - offsetX - (x + startX);
}
//circle.x = (x + startX);
//circle.y = y;
flyBird.y = sHeight - offsetY - y;
if(y <= 0 && slope < 0){
//reset
tParam = 0;
startX += x;
startY = 0;
flySpeed = speed * 2.2 / 3;
flyRad = rad * 2.2 / 3;
fadeCnt ++ ;
Main.log(fadeCnt);
stopFly();
hitOffsetY = 0;
Main.log(flyBird.rotation)
if(Math.abs(flyBird.rotation) >= 46 && fadeCnt == 1){
turnDown(flyBird.x, flyBird.y, "down");
stopFly();
gameOver(x + startX);
return;
}
if(fadeCnt == 3){
//end game
stopFly();
var slideTime = Math.cos(rad) * 800;
addLongTrace(x, dif, slideTime);
}else{
tween = createjs.Tween.get(flyBird, {loop:false})
.to({rotation:0}, 50, createjs.Ease.bounceOut)
.call(function(){
startFly();
createjs.Tween.removeTweens(tween);
});
addTrace(dif);
}
}
}
var longTracer;
function addLongTrace(xPass, dif, timeC){
longTracer = new createjs.Bitmap(Resource.get("/vapp/52/longtraces.png"));
stage.addChild(longTracer);
longTracer.width = 452;
longTracer.height = 14;
longTracer.regX = 452;
longTracer.regY = -17;
longTracer.x = flyBird.x;
longTracer.y = flyBird.y;
createjs.Ticker.addEventListener("tick", longTracerClock);
function longTracerClock(){
longTracer.x += dif;
stageMove(dif, xPass + startX + 452);
}
setTimeout(function(){
turnDown(flyBird.x, flyBird.y, "slide");
createjs.Ticker.removeEventListener("tick", longTracerClock);
gameOver(xPass + startX + 452);
}, timeC);
var rect = new createjs.Shape();
rect.graphics.setStrokeStyle(5, 'round', 'round');
rect.graphics.beginFill("#FF0000").drawRect(0,0,460, 40);
rect.graphics.endStroke();
rect.x = 200;
rect.y = 790;
//stage.addChild(rect);
longTracer.mask = rect;
}
function addTrace(dif){
var totalD = 0;
var tracer = new createjs.Bitmap(Resource.get("/vapp/52/traces.png"));
stage.addChild(tracer);
tracer.width = 145;
tracer.height = 45;
tracer.regX = 92;
tracer.regY = -18;
tracer.x = flyBird.x;
tracer.y = flyBird.y;
createjs.Ticker.removeEventListener("tick", tracerClock);
createjs.Ticker.addEventListener("tick", tracerClock);
function tracerClock(){
tracer.x += dif;
totalD += dif;
if(totalD > sWidth * 2 / 3){
Main.log("鍥炴敹鐥曡抗");
createjs.Ticker.removeEventListener("tick", tracerClock);
stage.removeChild(tracer);
}
}
}
function turnDown(fx, fy, status){
Main.stage.removeChild(flyBird);
var spriteSheet = Main.gameOverPenguinSS;
flyBird = new createjs.Sprite(spriteSheet);
Main.stage.addChild(flyBird);
flyBird.gotoAndPlay(status);
flyBird.x = fx - 120;
flyBird.y = fy - 112;
}
function gameOver(distance){
//todo
Main.fire("gameOver", distance, flyBird.x);
}
Main.on("replay", function(){
// 鍨冨溇鍥炴敹
if(longTracer){
Main.log("longTracerDisp")
stage.removeChild(longTracer);
}
stage.removeChild(flyBird);
flyBird = null;
stopFly();
});
function stopFly(){
createjs.Ticker.removeEventListener("tick", clock);
}
function startFly(){
stopFly();
clock();
createjs.Ticker.addEventListener("tick", clock);
}
function angleToRad(angle){
return Math.PI / 180 * angle;
}
//2
function square(num){
return num * num
}
initFlyLine(angle);
}
[/toggle]
我们可以看出大概,企鹅飞行的距离和以下这些因素有关,想详细看的可以展开,想直接看结论的可以朝后看:
角度速度弹起的次数
所以知道了规则后,不难发现这个游戏实际上很科学的,理论上达到以下就可以拿到好成绩了:
1.角度,45°出击。
2.速度,看RP,能达到1.0就是最棒的。
3.不要第一次就狗吃屎打企鹅攻略,这样是弹不远的。
好了,写了这么多大家可以去试一试了!
总结:以上内容就是针对打企鹅攻略(微信朋友圈小游戏打企鹅的技巧攻略)详细阐释,如果您觉得有更好的建议可以提供给哪吒游戏网小编,打企鹅攻略(微信朋友圈小游戏打企鹅的技巧攻略)部分内容转载自互联网,有帮助可以收藏一下。
上一篇: 人人贷攻略(人人贷到底是不是靠谱平台?逾期后利息真的很高!)
- 1 魔兽世界 考古(魔兽世界考古毁一生?这些装备幻化和坐骑值得你去玩考古)
- 2 普罗霍洛夫(卢布危机下俄土豪大甩卖 卖完豪宅卖球队)
- 3 龙之谷手柄(《龙之谷手游》手柄怎么连接 柄连接教学攻略)
- 4 普罗霍洛夫(俄罗斯土豪准备20亿抛售篮网! 最烂老板是怎样炼成的?)
- 5 天联网(天联网信息科技有限公司怎么样?)
- 6 附魔大师(魔兽世界怀旧服附魔大师在哪 附魔大师位置分享介绍)
- 7 wow烹饪食谱(魔兽世界怀旧服烹饪极品食谱)
- 8 陶谦让徐州(陶谦三让徐州,世界上真有这样的好人吗?)
- 9 lol神圣之剑(LOL如果神圣之剑回归,谁最受益?第1:只要不瞎都能上钻石!)
- 10 陶谦让徐州(陶谦三让徐州的原因是什么?)

机械战警
坦克射击
梦道满V版
火箭精英3d免费版
太古灵诀
小小帝国无敌破解版
厉害了我的娃
乐高无限
侠影双剑九游版