当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > 高级游戏制作:Flash制作物体弹跳电脑游戏

Flash动画制作
Flash AS 3.0实例教程:用Tween类制作缓动动画
Flash AS2实例教程:制作镭射闪光字动画效果
Flash AS2基础教程:一步绘制线条
Flash cs3仿真艺术设计4.4:模糊滤镜的应用
Flash cs3仿真艺术设计4.5:模糊运动制作飞行文字
Flash cs3仿真艺术设计4.6:组合效果应用实例
Flash cs3仿真艺术设计4.7:模糊滤镜的应用
Flash AS 3.0基础教程:物理基础之重力
Flash AS3.0菜鸟学飞教程:创建自定义类
Flash cs3仿真艺术设计4.8:选择模糊的应用
Flash cs3仿真艺术设计4.9:背景模糊应用技巧
Flash AS3.0菜鸟学飞教程:类的编写之时间轴代码转换为外部类
Flash AS3.0菜鸟学飞教程:类的编写之不使用库元件
Flash cs3仿真艺术设计5.1:2.5D基础应用
Flash cs3仿真艺术设计5.2:2.5D高级应用
Flash AS3.0菜鸟学飞教程:含有多个类的AS3类文件
Flash AS3.0实例教程:AS3.0代码制作3D旋转动画效果
Flash cs3仿真艺术设计5.3:2.5D动画技巧之绘制猴子
Flash cs3仿真艺术设计5.4:交换方法制作嘴型吻合
Flash cs3仿真艺术设计5.5:嵌套法打造角色嘴型吻合

Flash动画制作 中的 高级游戏制作:Flash制作物体弹跳电脑游戏


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-22   浏览: 80 ::
收藏到网摘: n/a

  Flash制作物体弹跳电脑游戏,这是一种背景不动的一个物体可以弹跳,可以左右走动的小游戏。比较基础的游戏。在文章的最后提供所有演示的Flash源文件。

看不到动画效果的朋友请去这里观看:http://bbs.ruanchen.com/"/upload/tech/20091121/20091121180433_5b8add2a5d98b1a652ea7fd72d942dac.gif">

  首先制作两个电影剪辑一个是背景,绘制一个矩形小块来当背景。加入AS为:stop(),让它开始就停止。

  另外一个是运动的物体,给大家截图如下。

回到主场景,我们用Actionscript来实现其它效果。在主场景的第一帧直接加入下面代码: 

xspeed = 0;
yspeed = 0;
max_yspeed = 16;
gravity = 1;
walk_speed = 4;
level = new Array();
_root.createEmptyMovieClip("lev", _root.getNextHighestDepth());
level[0] = new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
level[1] = new Array(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
level[2] = new Array(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
level[3] = new Array(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
level[4] = new Array(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
level[5] = new Array(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1);
level[6] = new Array(1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
level[7] = new Array(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
level[8] = new Array(1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
level[9] = new Array(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
level[10] = new Array(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
level[11] = new Array(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
level[12] = new Array(1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
level[13] = new Array(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
level[14] = new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
for (y=0; y<=14; y++) {
 for (x=0; x<=24; x++) {
  if (level[y][x] != 0) {
   place_brick = lev.attachMovie("block", "block_"+lev.getNextHighestDepth(), lev.getNextHighestDepth(), {_x:x*20+10, _y:y*20+10});
   place_brick.gotoAndStop(level[y][x]);
  }
 }
}
_root.attachMovie("player", "player", _root.getNextHighestDepth(), {_x:40, _y:40});
player.onEnterFrame = function() {
 yspeed += gravity;
 if (yspeed>max_yspeed) {
  yspeed = max_yspeed;
 }
 if (Key.isDown(Key.LEFT)) {
  xspeed = -walk_speed;
 }
 if (Key.isDown(Key.RIGHT)) {
  xspeed = walk_speed;
 }
 while (_root.lev.hitTest(this._x, this._y+this._height/2-1+yspeed, true)) {
  yspeed--;
 }
 while (_root.lev.hitTest(this._x-this._width/2+1+xspeed, this._y, true)) {
  xspeed++;
 }
 while (_root.lev.hitTest(this._x+this._width/2-1+xspeed, this._y, true)) {
  xspeed--;
 }
 this._y += yspeed;
 this._x += xspeed;
 xspeed = 0;
};

  上面代码实现的效果是会出现一幅不动的背景。效果如下。