【遊戲基礎】內部邊界卷屏

來源:互聯網
上載者:User
什麼是卷屏

對大多數的動作遊戲或冒險遊戲來說,遊戲情境通常都會很大,而無法在遊戲舞台上完全顯示出來,所以如果只是靠遊戲人物在舞台中移動,那麼它的活動範圍會被局限在狹小的舞台中。
那麼怎麼解決這個問題呢?對,移動遊戲情境!俗話說的好,樹欲靜而風不止,運動是相對的,背景的移動會使靜止的遊戲人物產生移動的效果,而情境的移動是不
受限制的,我們的視角只能看到舞台大小的情境,隨著情境的任意移動,遊戲人物也就可以移動到情境的任意位置了,這就是我們所說的卷屏!
下面我們來看一下,AS3中卷屏是怎麼實現的吧!
通常情況下,我們會在x軸方向和y中方向分別為遊戲人物char定義速度vx和vy,然後在ENTER_FRAME事件或者TIMER事件中通過遞增速度值實現人物移動,代碼如下:

  1.                 stage.addEventListener(Event.ENTER_FRAME, loop);
  2.                 private function loop(e:Event):void
  3.                 {
  4.                         char.x += vx;
  5.                         char.y += vy;
  6.                 }


前面說過,運動是相對的,我向前走,路邊的樹就往後走,所以在實現卷屏時,背景background的速度與人物的方向剛好是相反,代碼如下:

  1.                 private function loop(e:Event):void
  2.                 {
  3.                         background.x -= vx;
  4.                         background.y -= vy;
  5.                 }


試著應用上面的方法,你會發現效果並不是你想象的那麼好,當背景移動至舞台邊界時會停住(當然前提是你為遊戲背景建立了邊界檢測,關於遊戲中的邊緣檢測,在此不多介紹,你可以在Goole一下),所以遊戲人物無法真正的到的背景的邊界。
為瞭解決這個問題,我使用內邊界卷屏。
內邊界卷屏

在遊戲人物未到達舞台邊界之前,直接移動遊戲人物對象,當遊戲人物到達舞台邊界時,停止移動遊戲人物並將其定位在邊界位置,然後反向移動遊戲情境,同樣可
以產生遊戲人物移動的效果。但是真正這樣實現起來,你又會發現新的問題,對於未進入舞台部分的情境,我們是無法預知的,隨著情境的移動,可能會出現一個蘋
果,也有可能是一個敵人,而遊戲人物恰好是處在舞台邊界位置,對於即將出現的對象,它只能既來之則安之,聽天由命,這是另遊戲玩家很不爽的一種設計,如果
接著來三個敵人,遊戲人物就必死無疑了(如)。

下載

(19.4 KB)6 天前 23:29


為了避免這種情況的發生,我們可以建立一個內邊界,也就是說,當遊戲人物到達內邊界位置,而實際沒有到達舞台邊界時就開始反向移動遊戲情境,這樣就可以在與遊戲人物碰撞之前發現敵人,然後進行閃躲(如):


理論上是講通了,下面我們來一步一步實現這個演算法。
首先由分別定義內邊界與舞台邊界的距離innerTop、innerBtm、InnerLeft和InnerRight。然後根據遊戲人物的位置不同,我們來分類討論:
1.        在遊戲人物為接觸內邊界的任何一個邊時,它可以任意的移動

下載

(27.3 KB)6 天前 23:32


2.        此時遊戲人物移動至左邊界並停止移動,而我們看到的移動是由情境的反向移動產生的錯覺。

3.        當遊戲情境移動到可見地區邊界(即舞台)時,情境停止移動,並將內邊界的左邊界擴充到可見地區的左邊界位置,此時遊戲人物可以繼續向左移動。

4.        當遊戲人物移至內邊界的右邊界時,在第3步中擴充的左邊界會恢複成初始狀態。

其他幾個邊界的計算方法一次類推。
如果你只定義左右內邊界,可以實現橫向卷屏,比較經典的例子就是超級瑪麗。如果上下左右四個內邊界都定義一般會在俯視視角遊戲中應用,如紅色境界!
好了,就寫到這裡吧,如果你對我的講解還是感覺很模糊的話,可以查閱《Foundation game design with flash》一書中的第6章。另外透露一個小訊息,本書圖靈已經翻譯的差不多了,估計再有一兩個月就能出版了吧!

下載

(27.26 KB)6 天前 23:32

下載

(24.68 KB)6 天前 23:32

下載

(26.29 KB)6 天前 23:32

下載

(22.69 KB)6 天前 23:30
相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.