高級:Flash制作物體彈跳電腦游戲_Flash教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:Flash制作超酷的旋轉圖像像冊視覺效果
      用Flash制作像冊的教程已經很多了!這里就不在給大家羅嗦了!只要發揮自己的想象,相信自己!你能!那么超酷的旋轉圖像像冊視覺效果就會出現。因為類似教程太多

        標簽:flash游戲開發 Flash實例教程 Flash Actionscript制作游戲 Flash高級技巧。

        Flash制作物體彈跳電腦游戲,這是一種背景不動的一個物體可以彈跳,可以左右走動的小游戲。比較基礎的游戲。在文章的最后提供所有演示的Flash源文件。

        啟動Flash,首先修改文檔屬性。

        首先制作兩個電影剪輯一個是背景,繪制一個矩形小塊來當背景。加入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;
      };

        上面代碼實現的效果是會出現一幅不動的背景。效果如下。

        然后把彈跳的物體放進來。

      yspeed = 0;
      max_yspeed = 16;
      gravity = 1;
      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;
      }
      while (_root.lev.hitTest(this._x, this._y this._height/2-1 yspeed, true)) {
      yspeed--;
      }
      this._y = yspeed;
      };

        效果(一個靜態背景,出現一個彈跳物體)

        然后讓物體能左右移動。

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

        效果(這時按鍵盤左右方向鍵你可以看到效果)

        最后讓物體能夠蹦起來啊!

      xspeed = 0;
      yspeed = 0;
      max_yspeed = 16;
      gravity = 1;
      walk_speed = 4;
      can_jump = false;
      jump_power = 10;
      jump_walk = true;
      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() {
      if (Key.isDown(Key.LEFT)) {
      if (jump_walk or can_jump) {
      xspeed = -walk_speed;
      }
      }
      if (Key.isDown(Key.RIGHT)) {
      if (jump_walk or can_jump) {
      xspeed = walk_speed;
      }
      }
      if (Key.isDown(Key.SPACE) and can_jump) {
      yspeed -= jump_power;
      can_jump = false;
      }
      yspeed = gravity;
      if (yspeed>max_yspeed) {
      yspeed = max_yspeed;
      }
      while (_root.lev.hitTest(this._x, this._y this._height/2-1 yspeed, true)) {
      yspeed--;
      can_jump = true;
      }
      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--;
      }
      while (_root.lev.hitTest(this._x, this._y-this._height/2 1 yspeed, true)) {
      yspeed ;
      }
      this._y = yspeed;
      this._x = xspeed;
      if (jump_walk or can_jump) {
      xspeed = 0;
      }
      };

        最終效果(按左右方向鍵和空格鍵試試)

        以上所有演示動畫的源文件:點擊這里下載源文件

      分享:用Flash簡單制作印章動畫視覺效果
      用Flash簡單制作印章動畫視覺效果,印章效果動畫,效果不錯!效果:Flash動畫源文件下載:點擊這里下載源文件制作步驟:

      來源:網頁教學網//所屬分類:Flash教程/更新時間:2008-03-05
      相關Flash教程