用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);
  }
};

来源:网页教学网    作者:闪电儿    责编:豆豆技术应用

正在加载评论...