用Flash制作一个类似弹弓的小游戏教程
http://tech.ddvip.com 2007年09月20日 社区交流
内容摘要:利用Flash制作一个类似于弹弓的小游戏的教程,主要由Actionscript实现,代码大家由浅入深来理解。
然后我们通过修改上面的代码,在两个小球之间绘制一条线,可以随中间小球任意移动。
attachMovie("sling", "sling_1", _root.getNextHighestDepth(), {_x:20, _y:200});
attachMovie("sling", "sling_2", _root.getNextHighestDepth(), {_x:480, _y:200});
attachMovie("ball", "ball", _root.getNextHighestDepth(), {_x:250, _y:100});
_root.createEmptyMovieClip("elastic", _root.getNextHighestDepth());
ball.onPress = function() {
startDrag(this);
};
ball.onRelease = function() {
stopDrag();
};
elastic.onEnterFrame = function() {
this.clear();
this.lineStyle(2, 0x009900);
this.moveTo(sling_1._x, sling_1._y);
if (ball._y>182) {
dist_x = ball._x-sling_1._x;
dist_y = ball._y-sling_1._y;
distance_from_sling = Math.sqrt(dist_x*dist_x+dist_y*dist_y);
elastic_length = Math.sqrt(distance_from_sling*distance_from_sling-18*18);
angle = Math.atan2(dist_y, dist_x)+Math.asin(18/distance_from_sling);
this.lineTo(sling_1._x+elastic_length*Math.cos(angle), sling_1._y+elastic_length*Math.sin(angle));
} else {
this.lineTo(sling_2._x, sling_2._y);
}
this.moveTo(sling_2._x, sling_2._y);
if (ball._y>182) {
dist_x = ball._x-sling_2._x;
dist_y = ball._y-sling_2._y;
distance_from_sling = Math.sqrt(dist_x*dist_x+dist_y*dist_y);
elastic_length = Math.sqrt(distance_from_sling*distance_from_sling-18*18);
angle = Math.atan2(dist_y, dist_x)+Math.asin(18/distance_from_sling)*-1;
this.lineTo(sling_2._x+elastic_length*Math.cos(angle), sling_2._y+elastic_length*Math.sin(angle));
} else {
this.lineTo(sling_2._x, sling_2._y);
}
};
来源:网页教学网 作者:闪电儿 责编:豆豆技术应用