游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3995|回复: 4

[讨论] FLASH游戏打企鹅的距离是怎么计算的啊?

[复制链接]

9

主题

30

帖子

30

积分

注册会员

Rank: 2

积分
30
发表于 2008-5-20 17:26:00 | 显示全部楼层 |阅读模式
FLASH游戏打企鹅的距离是怎么计算的啊?高手请指教指教.这2天在研究打企鹅,就是想知道距离是怎么计算出来的.

10

主题

115

帖子

123

积分

注册会员

Rank: 2

积分
123
发表于 2008-5-20 17:49:00 | 显示全部楼层

Re:FLASH游戏打企鹅的距离是怎么计算的啊?

抛物线么...力量是固定的..时间不同角度不同...大概是这样的...

1

主题

31

帖子

42

积分

注册会员

Rank: 2

积分
42
发表于 2008-5-21 13:47:00 | 显示全部楼层

Re:FLASH游戏打企鹅的距离是怎么计算的啊?

这个牵涉到物理学知识,诸如赛车、足球等游戏都需要这方面的设计
打企鹅中,需要根据打击角度、初速度、等进行抛物线计算,不清楚是否加入空气摩擦力的因素,但是地面摩擦力是加入了,如果需要考虑到空气的话,还需要进行流体力学的计算,具体计算公式参考物理学和空气动力学的书籍,通过这些公式对程序进行模拟,其实很简单。

9

主题

30

帖子

30

积分

注册会员

Rank: 2

积分
30
 楼主| 发表于 2008-5-26 21:27:00 | 显示全部楼层

Re:FLASH游戏打企鹅的距离是怎么计算的啊?

// [onClipEvent of sprite 14 in frame 1]
onClipEvent (enterFrame)
{
if (_parent._x > 300)
{
setProperty("", _visible, false);
}
else
{
setProperty("", _visible, true);
} // end else if
}

// [onClipEvent of sprite 17 in frame 1]
onClipEvent (enterFrame)
{
if (_parent._x > 200)
{
setProperty("", _visible, false);
}
else
{
setProperty("", _visible, true);
} // end else if
}

// [onClipEvent of sprite 20 in frame 1]
onClipEvent (enterFrame)
{
if (_parent._x > 650)
{
setProperty("", _visible, false);
}
else
{
setProperty("", _visible, true);
} // end else if
}

// [onClipEvent of sprite 20 in frame 1]
onClipEvent (enterFrame)
{
if (_parent._x > 650)
{
setProperty("", _visible, false);
}
else
{
setProperty("", _visible, true);
} // end else if
}

// [onClipEvent of sprite 24 in frame 1]
onClipEvent (load)
{
setProperty("", _y, _parent.yeti._y);
setProperty("", _x, _parent.yeti._x - 1000);
wert = 100;
}

// [onClipEvent of sprite 24 in frame 1]
onClipEvent (enterFrame)
{
if (_parent._x > Math.abs(_x) + 650 || _parent._x < Math.abs(_x) - 650)
{
setProperty("", _visible, false);
}
else
{
setProperty("", _visible, true);
} // end else if
}

// [onClipEvent of sprite 24 in frame 1]
onClipEvent (load)
{
setProperty("", _y, _parent.yeti._y);
setProperty("", _x, _parent.yeti._x - 2000);
wert = 200;
}

// [onClipEvent of sprite 24 in frame 1]
onClipEvent (enterFrame)
{
if (_parent._x > Math.abs(_x) + 650 || _parent._x < Math.abs(_x) - 650)
{
setProperty("", _visible, false);
}
else
{
setProperty("", _visible, true);
} // end else if
}

// [onClipEvent of sprite 24 in frame 1]
onClipEvent (load)
{
setProperty("", _y, _parent.yeti._y);
setProperty("", _x, _parent.yeti._x - 3000);
wert = 300;
}

// [onClipEvent of sprite 24 in frame 1]
onClipEvent (enterFrame)
{
if (_parent._x > Math.abs(_x) + 650 || _parent._x < Math.abs(_x) - 650)
{
setProperty("", _visible, false);
}
else
{
setProperty("", _visible, true);
} // end else if
}

// [onClipEvent of sprite 24 in frame 1]
onClipEvent (load)
{
setProperty("", _y, _parent.yeti._y);
setProperty("", _x, _parent.yeti._x - 1500);
wert = 150;
}

// [onClipEvent of sprite 24 in frame 1]
onClipEvent (enterFrame)
{
if (_parent._x > Math.abs(_x) + 650 || _parent._x < Math.abs(_x) - 650)
{
setProperty("", _visible, false);
}
else
{
setProperty("", _visible, true);
} // end else if
}

// [onClipEvent of sprite 24 in frame 1]
onClipEvent (load)
{
setProperty("", _y, _parent.yeti._y);
setProperty("", _x, _parent.yeti._x - 2500);
wert = 250;
}

// [onClipEvent of sprite 24 in frame 1]
onClipEvent (enterFrame)
{
if (_parent._x > Math.abs(_x) + 650 || _parent._x < Math.abs(_x) - 650)
{
setProperty("", _visible, false);
}
else
{
setProperty("", _visible, true);
} // end else if
}

// [onClipEvent of sprite 87 in frame 1]
onClipEvent (enterFrame)
{
if (_parent._x > 200)
{
setProperty("", _visible, false);
}
else
{
setProperty("", _visible, true);
} // end else if
}

// [onClipEvent of sprite 87 in frame 1]
onClipEvent (mouseUp)
{
if (_parent.ball._currentframe == 1)
{
_parent.ball.play();
_parent.ball.aktiv = true;
this.gotoAndPlay(2);
}
else if (_parent.ball.act == "fall")
{
play ();
} // end else if
}

// [onClipEvent of sprite 92 in frame 1]
onClipEvent (load)
{
setProperty("", _y, _parent.yeti._y);
}

// [onClipEvent of sprite 92 in frame 1]
onClipEvent (enterFrame)
{
setProperty("", _x, _parent.ball._x);
setProperty("", _alpha, 100 - int((_parent.yeti._y - _parent.ball._y) / 5));
}

// [onClipEvent of sprite 225 in frame 1]
onClipEvent (load)
{
xspeed = 0;
yspeed = random(50) / 40;
startx = _x;
starty = _y;
act = "fall";
aktiv = false;
this.swapDepths(1000);
}

// [onClipEvent of sprite 225 in frame 1]
onClipEvent (enterFrame)
{
if (aktiv && bereit)
{
yspeed = yspeed + 5.000000E-001;
setProperty("", _y, _y + yspeed);
if (_y > _parent.yeti._y)
{
if (_root.snd && yspeed > 2)
{
_parent.flutsch.setVolume(yspeed * 4);
_parent.flutsch.start();
} // end if
if (yspeed < 17)
{
yspeed = yspeed * -5.000000E-001;
xspeed = xspeed * 8.000000E-001;
++_parent.spurtemp;
_parent.spur.duplicateMovieClip("spur" + _parent.spurtemp, 100 + _parent.spurtemp);
_parent["spur" + _parent.spurtemp]._x = _x;
_parent["spur" + _parent.spurtemp]._y = _y;
}
else
{
xspeed = 0;
yspeed = 0;
setProperty("", _rotation, 0);
gotoAndPlay("steck");
act = "steck";
if (_root.snd)
{
_parent.steck.setVolume(50);
_parent.steck.start();
} // end if
} // end else if
setProperty("", _y, _parent.yeti._y);
if (Math.abs(xspeed) < 1.000000E-001)
{
if (act != "steck")
{
act = "landok";
gotoAndPlay("landok");
} // end if
xspeed = 0;
yspeed = 0;
_parent.weitenmessung.aktiv = true;
_parent.weitenmessung.weite = int(_parent.schlagx - _x) / 10;
aktiv = false;
if (_parent.yeti._currentframe > 1)
{
_parent.yeti.play();
} // end if
} // end if
} // end if
setProperty("", _x, _x + xspeed);
if (_x < 150)
{
_parent._x = _parent._x - xspeed;
} // end if
} // end if
if (act == "fly")
{
setProperty("", _rotation, yspeed * -4);
} // end if
}

// [onClipEvent of sprite 231 in frame 1]
onClipEvent (load)
{
setProperty("", _y, -10);
aktiv = false;
}

// [onClipEvent of sprite 231 in frame 1]
onClipEvent (enterFrame)
{
if (aktiv)
{
setProperty("", _x, _parent.ball._x);
setProperty("", _y, _y + 20);
if (_y >= _parent.ball._y)
{
setProperty("", _y, _parent.ball._y);
} // end if
} // end if
}

// [Action in Frame 1]
stop ();
_root.snd = true;
this.createEmptyMovieClip(snd, -2000);
aushol = new Sound(snd);
aushol.attachSound("aushol");
flutsch = new Sound(snd);
flutsch.attachSound("flutsch");
hepp = new Sound(snd);
hepp.attachSound("hepp");
hui = new Sound(snd);
hui.attachSound("hui");
ok = new Sound(snd);
ok.attachSound("ok");
schlag = new Sound(snd);
schlag.attachSound("schlag");
steck = new Sound(snd);
steck.attachSound("aushol");
spurtemp = 0;

9

主题

30

帖子

30

积分

注册会员

Rank: 2

积分
30
 楼主| 发表于 2008-5-26 21:27:00 | 显示全部楼层

Re:FLASH游戏打企鹅的距离是怎么计算的啊?

baidu知道里面一个家伙贴给我的,我还没仔细看呢~~贴 出来大家分享下吧~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-7-22 18:30

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表