高級(jí):Flash制作物體彈跳電腦游戲_Flash教程
推薦:Flash制作超酷的旋轉(zhuǎn)圖像像冊(cè)視覺效果用Flash制作像冊(cè)的教程已經(jīng)很多了!這里就不在給大家羅嗦了!只要發(fā)揮自己的想象,相信自己!你能!那么超酷的旋轉(zhuǎn)圖像像冊(cè)視覺效果就會(huì)出現(xiàn)。因?yàn)轭愃平坛烫?/p>
標(biāo)簽:flash游戲開發(fā) Flash實(shí)例教程 Flash Actionscript制作游戲 Flash高級(jí)技巧。
Flash制作物體彈跳電腦游戲,這是一種背景不動(dòng)的一個(gè)物體可以彈跳,可以左右走動(dòng)的小游戲。比較基礎(chǔ)的游戲。在文章的最后提供所有演示的Flash源文件。
啟動(dòng)Flash,首先修改文檔屬性。

首先制作兩個(gè)電影剪輯一個(gè)是背景,繪制一個(gè)矩形小塊來(lái)當(dāng)背景。加入AS為:stop(),讓它開始就停止。

另外一個(gè)是運(yùn)動(dòng)的物體,給大家截圖如下。

回到主場(chǎng)景,我們用Actionscript來(lái)實(shí)現(xiàn)其它效果。在主場(chǎng)景的第一幀直接加入下面代碼:
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;
};
上面代碼實(shí)現(xiàn)的效果是會(huì)出現(xiàn)一幅不動(dòng)的背景。效果如下。
然后把彈跳的物體放進(jìn)來(lái)。
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;
};
效果(一個(gè)靜態(tài)背景,出現(xiàn)一個(gè)彈跳物體)
然后讓物體能左右移動(dòng)。
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;
};
效果(這時(shí)按鍵盤左右方向鍵你可以看到效果)
最后讓物體能夠蹦起來(lái)啊!
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;
}
};
最終效果(按左右方向鍵和空格鍵試試)
以上所有演示動(dòng)畫的源文件:點(diǎn)擊這里下載源文件
分享:用Flash簡(jiǎn)單制作印章動(dòng)畫視覺效果用Flash簡(jiǎn)單制作印章動(dòng)畫視覺效果,印章效果動(dòng)畫,效果不錯(cuò)!效果:Flash動(dòng)畫源文件下載:點(diǎn)擊這里下載源文件制作步驟:
Flash教程Rss訂閱網(wǎng)站制作教程搜索
Flash教程推薦
- 風(fēng)雨雷電→自然現(xiàn)象動(dòng)畫實(shí)戰(zhàn)技術(shù)
- Flash 動(dòng)作腳本之:資料速查(16)
- 用Flash AS3制作常見的柄圖動(dòng)畫效果
- Flash教程:制作天空中流星劃過(guò)特效
- Flash MX2004入門與進(jìn)階實(shí)例——元件和實(shí)例(14)
- 用Flash動(dòng)畫特效制作:文字炸開
- Flash MX 2004新特性實(shí)例(4)
- FLASH網(wǎng)游通過(guò)XMLSocket與VB后臺(tái)通信
- Flash cs3直線工具教程
- Flash制作用鍵盤方向鍵控制的動(dòng)畫實(shí)例
猜你也喜歡看這些
- Flash AS3.0教程之類入門到精通
- Flash as3.0視頻教程之聲音編程
- 金鷹FlashMx 實(shí)例教程
- Flash.ActionScript3.0從入門到精通
- Authorware 7.0 Flash MX 2004多媒體創(chuàng)作實(shí)例導(dǎo)學(xué)
- Flash卡通動(dòng)畫設(shè)計(jì)教程下載
- 閃魂:Flash CS4完美入門與案例精解
- Flash CS3動(dòng)畫設(shè)計(jì)入門提高與技巧(光盤).
- 新東方王強(qiáng)口語(yǔ)Flash網(wǎng)絡(luò)課程第一、二冊(cè)
- Flash 8 入門與提高實(shí)例教程
- 相關(guān)鏈接:
- 教程說(shuō)明:
Flash教程-高級(jí):Flash制作物體彈跳電腦游戲
。