麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 辦公 > Flash > 正文

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

2020-07-17 13:08:07
字體:
來源:轉載
供稿:網友

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

方法一:通過單擊按鈕實現物體的單位運動

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

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


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

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


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

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

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

方法二:通過敲擊方向鍵實現物體的單位運動

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

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


復制代碼
代碼如下:
onClipEvent (keyDown) { //當鍵被按下后執行下面的語句
if (Key.getCode() == Key.LEFT) {
//如果擊鍵為'←'鍵就告之影片跳到第2幀執行。實現圖片地翻轉
tellTarget ("/mc") {
gotoAndStop (2);
}
}
if (Key.getCode() == Key.RIGHT) { //如果擊鍵為'→'鍵就執行下面的語句
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命令。輸入如下代碼:


復制代碼
代碼如下:
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幀執行。實現圖片地翻轉
tellTarget ("/mc") {
gotoAndStop (1);
}
}
//還有兩段控制圖片上下運動的代碼同上
}

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

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

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


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

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


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

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

方法三、通過鼠標拖拽和點擊實現物體的任意運動

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


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

這段代碼的功能是點擊一下鼠標,影片就出現在什么地方。

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


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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久精品视频7 | 国产一区二区精品在线观看 | 久久av一区二区 | 国产伦精品一区二区三区 | 国产一区二区三区网站 | 成人精品久久久 | 手机在线看片国产 | 黄色av网站在线观看 | 免费看一级片 | 色蜜桃av| 爱逼爱操综合网 | 欧美另类在线视频 | 国产一级毛片高清 | 欧美日韩中文字幕在线视频 | 久在线观看福利视频69 | 九九精品影院 | 91成人午夜性a一级毛片 | 日韩电影av在线 | 久久亚洲美女视频 | 369看片你懂的小视频在线观看 | 成人午夜精品久久久久久久3d | 久久久久久久久久久久免费 | 深夜福利视频绿巨人视频在线观看 | 91av久久| 亚洲精品wwww | 精品麻豆cm视频在线看 | 色毛片 | 91美女啪啪 | 一级免费a| 久色免费| 国产一级二级毛片 | 色婷婷一区二区三区 | 12av毛片| www亚洲成人| 激情视频在线播放 | 欧美成人精品一级 | 欧美精品免费一区二区三区 | 黄色免费高清网站 | www.17c亚洲蜜桃 | 午夜在线小视频 | 91短视频在线观看 |