[英]Camera movement in AS3
好的,所以我有一個隨鼠標移動的角色。 我需要它留在屏幕的中心(有點像平台游戲)。 我無法弄清楚如何訪問相機並移動它。 (注意:我已經嘗試過Vcam並移動所有其他物體,但Vcam使文件變慢或某些東西[或者我已經聽過]和移動其他物體有點像作弊[並且我的需求不足])我不喜歡沒有任何代碼,因為我不知道從哪里開始。 也許有人可以指出我正確的方向。
謝謝,托爾
一種方法是將Everyhting存儲在一個DisplayObject
,然后根據攝像機移動移動該單個對象。 不要移動相機,而是將主容器移向相機的相反方向。 我不確定為什么你似乎建議像這樣的策略是“作弊”,因為它是一個非常合適的方式來做到這一點。
這是我之前在這里找到的類似問題的答案。
我在這里做的是:
使用屬性camera
創建一個Map
類,這是另一個自定義類MapCamera
。
MapCamera
有五個屬性:
_x
_y
map
- 對擁有此MapCamera
的Map
實例的MapCamera
offsetX
offsetY
_x
和_y
屬性是private
,並且具有getter和setter。 吸氣劑非常基本:
public function get x():Number{ return _x; }
public function get y():Number{ return _y; }
setter是視口將被改變的地方,如下所示:
public function set x(n:Number):void
{
_x = n;
map.x = -(_x + offsetX);
}
public function set y(n:Number):void
{
_y = n;
map.y = -(_y + offsetY);
}
從這里,您將您的孩子添加到Map
容器中,然后可以簡單地去:
map.camera.x = player.x;
map.camera.y = player.y;
這將導致玩家始終位於屏幕的中心。
您的相機只是一個修改所有可渲染對象位置的矢量。
myMovieClip.x = movingClipPosition.x + camera.x
因此,如果camera.x向右移動,這將使對象向左移動,給人一種“相機”的印象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.