2010-11-22 49 views
1

我有一個遊戲應用程序(cocos2d),其中,一個球從大炮射出,這個球穿過軌跡路徑在建築物上的土地。現在的問題是,根據要求,我必須增加背景圖像的大小,因爲我的建築物圖像在第一個視圖和第一個視圖上不可見,而且我不得不拖動背景圖像而不干擾軌跡路徑球。在這方面有人能幫助我嗎?爲了澄清問題,我還附加了一張圖片。提前致謝。移動背景屏幕以及在Iphone遊戲中保存球的路徑遊戲應用程序

回答

2

你有兩個不同的座標空間應該是相互獨立的。 球應該在「世界」座標空間中移動,與「屏幕」座標空間無關。當然,必須在「屏幕」上顯示「世界」,所以你必須將「世界」座標空間轉換爲「屏幕」座標空間,在你的情況下,這是一個簡單的翻譯,可以通過添加一個偏移量來完成。

在iPhone上,您可以簡單地將所有「世界對象」放在UIView的內部,然後左右移動「UIView」,而世界對象相對於該視圖內的「世界」移動,並從「世界座標空間「(視圖座標空間)到屏幕座標空間將在屏幕上繪製視圖時爲您完成。

+0

我不清楚這一點。你能解釋清楚嗎?我不明白什麼是座標空間。這裏沒有使用uiview這是一個cocos2d遊戲應用程序。 – Sri 2010-11-22 14:23:40

+0

我的意思是你有兩個座標系。座標的兩個起點應該是獨立的。球的位置應始終與「世界」起源有關。 「世界」的位置可以相對於「屏幕」原點移動。 – filipe 2010-11-22 14:30:20

3

在cocos2d中,最簡單的方法是移動整個圖層。如果您以正常的cocos2d方式進行操作,則可以使用CCLayer的子類。

在該課程中,您只需更改其位置即可獲得理想的效果。

在你的例子中,既然你想將「相機」移動到右邊,你可以簡單地將圖層移動到左邊。例如:

-(void) centerOnBuilding { 
    CGPoint distanceToMove = ccp(-120, 0); 
    self.position = ccpAdd(distanceToMove, self.position); 
} 

即函數,在一個CCLayer,將具有定心照相機120點的像素到它原來所在之處的權利的效果。如果您想要滾動效果,請執行同樣的操作,但在圖層中運行MoveTo或MoveBy操作。