目前分類:Flash Tutorial(Flash中階) (2)

瀏覽方式: 標題列表 簡短摘要
flash網路遊戲已遍佈世界各角落,技術再也不是隱藏且困難的事,
早已應該將其詳細內容解說,一直拖至今日終於有時間整理出給

u2420123 發表在 痞客邦 留言(1) 人氣()

在flash學習過程中,也許你學習到許多語法,但你卻不知如何用它,在遊戲設計碰撞到
物件就無法行走,今天我們不談語法, 偏重在學習邏輯設計上,

以下是 遊戲設計碰撞時, 可能需要的方法:


1. 當碰撞時,產生反作用力 如果你產生行走的 power=1.2 反作用力 power = -1.2
    一加一減相抵消

2.另一作法是控制住你的變數 , 當碰撞時就鎖住你的 方向 變數與加速度
   舉個例子,你power = 1.2  xspeed +=power ;  則當發生碰撞時,
   power = 0 ; 產生的加速 xspeed = 0 ;

3.第三種作法是 一般國外做遊戲碰撞常用的邏輯, 跟 第2點提到很像
   它是以你物件下一步要走的位置,來判斷 是否你下一步要走到的位置
   是否與物件發生碰撞
  
  舉個例子;

  物件在 (x ,y ) , 你下一步要往左走 , 也就是 (x -1 , y) , 我們事先將下一步要走的
  (x-1, y)座標, 與下一步會碰撞到的物件 做偵測
  假設下一步(x-1, y) , 在(x-1, y)並沒有障礙物 , 則可以work
  若否 , 則不work !
 

   不管是上面那一種方法 勢必都要以你要物件碰撞的方向去偵測
 
   舉個例子 :

            物件座標是(x , y) , 它的左碰撞點是在  (x- 20 , y ) ;20只是假設
            表示 碰撞點在你物件的左方座標 (用該座標去偵測與邊界是否碰撞
            或是 用 左物件與物件 去碰撞偵測  偵測是否左方發生碰撞)


4. 再來談談碰撞語法

  flash 內建的碰撞 hitTestObject  這是一個很"陽春"的碰撞
 
  它有一個很大的缺點 就是它碰撞是以 物件元件的藍色外框邊界做為判斷

  假設你有一個圓形的物件 要跟正方體碰撞  還未碰到圓形就顯示碰撞了
  因為圓物件外框是以四方藍色邊界所圍起來 , 當碰到元件邊框時就產生
  碰撞
 
 
  而且 如果你物件是中空的情況, 你要偵測的物件又在物件裡, 那更是糟糕
 

  所以製作遊戲的人,千萬千萬盡量別使用 hitTestObject 你會把自己
  陷入無窮的深淵

 那你說該怎辦?  所以為了解決這問題 在國外早就有人把完美的碰撞法
 寫出來給大家使用, 是一種 以"像素"偵測"像素"法來偵測碰撞 ,就再也不
 會有形狀偵測上的問題

u2420123 發表在 痞客邦 留言(1) 人氣()