国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 辦公 > Flash > 正文

在Flash中實現(xiàn)物體運動的三種方法介紹(AS)

2020-07-17 13:08:07
字體:
供稿:網(wǎng)友

現(xiàn)在用Flash開發(fā)的游戲是越來越多了。很多朋友也很想學(xué)習(xí)用Flash制作游戲的方法。大家知道,不管在什么游戲中,實現(xiàn)物體的運動是游戲的前提,而不同的游戲里物體移動的方式又不盡相同。所以,想學(xué)習(xí)制作Flash游戲的朋友今天就先隨我一起學(xué)學(xué)在Flash中實現(xiàn)物體運動的幾種方法吧。幾種方法如下:

方法一:通過單擊按鈕實現(xiàn)物體的單位運動

這種方法一般在需要按鍵的游戲中使用。你也可以給某個實體加上這段代碼,然后通過單擊這個實體達到某種游戲效果。

1、 打開Flash,按快捷鍵"Ctrl + M"打開[ Movie Properties ]面板。根據(jù)你的要求設(shè)置場景大小和背景顏色。
2、 按快捷鍵"Ctrl + F8"新建一個名為Graphic的Graphic符號(Movie Clip符號也行)。
3、 按快捷鍵"Ctrl + R"導(dǎo)入一張動物圖片(我導(dǎo)入圖片中動物的臉是面向右的,這樣是為了移動效果更真實)。你也可以在move影片的場景里隨便畫個方塊或圓圈。不過這樣做效果就不太明顯了。
4、 按快捷鍵"Ctrl + F8"新建一個名為move的Movie Clip符號,把Graphic符號拖拽到move影片的第1幀中。雙擊第1幀,輸入函數(shù)Stop()。右鍵單擊第1幀,選擇Copy Frames命令。然后右鍵單擊第2幀,選擇Paste Frames命令。
5、 選擇move影片第2幀中的圖片,執(zhí)行[Modify]→[Transform]→[Flip Horizontal]命令把圖片水平翻轉(zhuǎn)。注意:影片在第1幀和第2幀中的位置應(yīng)該是一樣的(用快捷鍵"Ctrl + Alt + I"打開Instance面板設(shè)置圖片的X軸Y軸坐標(biāo))。
6、 回到主場景,按快捷鍵"Ctrl + L"打開Library后按住鼠標(biāo)左鍵把影片move拖拽到場景中。按快捷鍵"Ctrl + I"打開Instance面板,給move影片起名為mc。
7、 單擊[Windows]菜單→[Common Libraries]→[Bottons]打開按鈕符號庫。選擇 "(circle)VCR Button Set"中的"gel Left"和"gel Right"按鈕,然后把它們拖拽到場景中適當(dāng)?shù)奈恢谩?
8、 右鍵單擊"gel Left"按鈕,輸入如下代碼:


復(fù)制代碼
代碼如下:
on (release) {
tellTarget ("_root.mc") { //告知電影以被調(diào)用,跳轉(zhuǎn)到第2幀
gotoAndStop (2); //跳轉(zhuǎn)到第二幀后,影片就換了個方向
}
movex = getProperty("/mc", _x); //將影片在場景中的X坐標(biāo)值附給movex
movex = movex-10; //以10個像素為單位變動坐標(biāo)值,實現(xiàn)物體的移動。
setProperty ("/mc", _x, movex); //重新定義影片的'_x'坐標(biāo)屬性
}

9、 右鍵單擊"gel Right"按鈕,輸入如下代碼:


復(fù)制代碼
代碼如下:
//單擊此按鈕,跳轉(zhuǎn)到第1幀。實現(xiàn)圖片地翻轉(zhuǎn)
on (release) { //以下代碼含義參考上面
tellTarget ("/mc") {
gotoAndStop (1);
}
movex = getProperty("/mc", _x);
movex = movex+10;
setProperty ("/mc", _x, movex);
}

以上兩段代碼是用來控制物體左右運動的。至于控制物體垂直方向運動的代碼可以結(jié)合"方法二"自己編寫。最終效果如圖1。

另外,你可以通過"onClipEvent (mouseDown){ }"語句實現(xiàn)單擊鼠標(biāo)左鍵實現(xiàn)物體的單向運動。"{ }"中添加的代碼參考"方法一",很簡單的,篇幅關(guān)系我這里就不多說了。但是"方法一"的設(shè)計還有一些不完美。這些我們將在"方法二"中解決。

方法二:通過敲擊方向鍵實現(xiàn)物體的單位運動

這種方法在游戲中是經(jīng)常被使用到的,尤其是RPG游戲,學(xué)會它是設(shè)計RPG和其它很多游戲(如俄羅斯方塊)的基礎(chǔ)。實例中用的是小鍵盤的方向鍵,你有可以把它改成其它鍵,做出各種你想要的效果。
1-5步同"方法一"。

6、 右鍵單擊move影片第1幀中的Graphic圖片(是右鍵單擊圖片,不是幀),選擇Actions命令。輸入如下的代碼:


復(fù)制代碼
代碼如下:
onClipEvent (keyDown) { //當(dāng)鍵被按下后執(zhí)行下面的語句
if (Key.getCode() == Key.LEFT) {
//如果擊鍵為'←'鍵就告之影片跳到第2幀執(zhí)行。實現(xiàn)圖片地翻轉(zhuǎn)
tellTarget ("/mc") {
gotoAndStop (2);
}
}
if (Key.getCode() == Key.RIGHT) { //如果擊鍵為'→'鍵就執(zhí)行下面的語句
width = getProperty("/mc", _width); //把影片寬度附值給變量width
movex = getProperty("/mc", _x);
movex = movex+width/10; //以影片寬度的十分之一作為圖片移動的單位值
setProperty ("/mc", _x, movex);
}
if (Key.getCode() == Key.UP) { //以下代碼含義參考上面
height = getProperty("/mc", _height);
movex = getProperty("/mc", _y);
movex = movex-height/40;
setProperty ("/mc", _y, movex);
}
if (Key.getCode() == Key.DOWN) {
height = getProperty("/mc", _height);
movex = getProperty("/mc", _y);
movex = movex+height/40;
setProperty ("/mc", _y, movex);
}
}

7、 右鍵單擊第2幀中的move影片,選擇Actions命令。輸入如下代碼:


復(fù)制代碼
代碼如下:
onClipEvent (keyDown) { //以下代碼含義參考上面
if (Key.getCode() == Key.LEFT) {
width = getProperty("/mc", _width);
movex = getProperty("/mc", _x);
movex = movex-width/10;
setProperty ("/mc", _x, movex);
}
if (Key.getCode() == Key.RIGHT) {
//如果擊鍵為'→'鍵就告之影片跳到第1幀執(zhí)行。實現(xiàn)圖片地翻轉(zhuǎn)
tellTarget ("/mc") {
gotoAndStop (1);
}
}
//還有兩段控制圖片上下運動的代碼同上
}

8、 回到主場景,按快捷鍵"Ctrl + L"打開Library后按住鼠標(biāo)左鍵把影片move拖拽到場景中。按快捷鍵"Ctrl + I"打開Instance面板,給影片move起名為mc。

這樣,影片就可以做上下左右的運動了。不相信你可以按小鍵盤上的方向鍵試試看。最終效果如圖2。不過大家又發(fā)現(xiàn)一個問題,就是實體一直往一個方向移動的話,然后就會跑的無影無蹤。那怎么辦呢?別急,讓我們再給實體加上下面一段代碼,讓實體出不了邊界:

右鍵單擊move影片第1幀中的Graphic圖片,然后在"movex = movex+width/10;"代碼下添加如下代碼:


復(fù)制代碼
代碼如下:
if(movex>=300-width){ //假設(shè)影片的場景寬度為300;
movex=300-width; //這樣設(shè)置是因為場景是以左上角的點為(0,0)點的
}

右鍵單擊move影片第2幀中的Graphic圖片,然后在"movex = movex-width/10;"添加如下代碼:


復(fù)制代碼
代碼如下:
if(movex<=0){
movex=0;
}

在垂直方向運動的代碼你可以自己寫了吧,我這里就不說什么了。
影片中,你也可以把圖片換成動畫。如果你想自己做人物動畫(如果你自己不會畫的話,就把GIF動畫拆下來用。明白嘛!^o^),你可以制作8張圖片,兩個一組,前后左右方位的共四組,然后在影片中再增加幾幀就OK了(大家可以自己探索一下)。這樣就不會象導(dǎo)入Gif動畫后影片一直動個不停了。

方法三、通過鼠標(biāo)拖拽和點擊實現(xiàn)物體的任意運動

拖拽方法的實現(xiàn)是很簡單的,但它在游戲中的運用卻是很廣泛的。如拼圖,推箱子,打老鼠,棋類等游戲都要用到這種方法。
新增一個名為"mc"的影片。然后右鍵單擊鼠標(biāo)輸入下面的代碼即可:


復(fù)制代碼
代碼如下:
onClipEvent (mouseDown) { //當(dāng)鼠標(biāo)按下時執(zhí)行下面代碼
startDrag (mc); //讓影片吸附在鼠標(biāo)并跟隨鼠標(biāo)一起運動
}
onClipEvent (mouseUp) { //當(dāng)松開鼠標(biāo)時執(zhí)行下面代碼
stopDrag (); //影片脫離鼠標(biāo)
}

這段代碼的功能是點擊一下鼠標(biāo),影片就出現(xiàn)在什么地方。

新增一個名為"mc"的影片。然后右鍵單擊鼠標(biāo)輸入下面的代碼即可:


復(fù)制代碼
代碼如下:
onClipEvent (mouseDown) {
x = _root._xmouse; //把鼠標(biāo)當(dāng)前在場景中的X坐標(biāo)值附值給變量x
y = _root._ymouse; //把鼠標(biāo)當(dāng)前在場景中的Y坐標(biāo)值附值給變量y
setProperty ("/mc", _x, x);
setProperty ("/mc", _y, y);
}

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 罗江县| 扬中市| 桓仁| 高唐县| 镇坪县| 肥西县| 阜南县| 民和| 东台市| 抚顺县| 二连浩特市| 平凉市| 鞍山市| 高安市| 宁安市| 大宁县| 方城县| 石泉县| 合水县| 繁昌县| 隆尧县| 平和县| 车险| 玉屏| 体育| 六盘水市| 报价| 辽宁省| 闻喜县| 合作市| 庆元县| 阳春市| 本溪| 商洛市| 桂平市| 东阿县| 延川县| 伊川县| 内黄县| 成都市| 锡林浩特市|