2009-12-20 72 views
0

我正在研究側面滾動的iPhone應用程序,並且除了實際的側滾動部分外,我還擁有所有資源!我如何製作應用程序以使其橫向滾動?更具體地說,我希望應用程序的視圖在UIImageview(播放器)擊中屏幕的右側/左側邊界時進行滾動。如何製作側面滾動的iPhone應用程序?

<:編輯:>
我非常抱歉,所有這些混亂!我所做的只是一個SAMPLE iPhone應用程序,僅用於模擬器。在應用程序中,當您觸摸箭頭UIImageviews時,我有一個UIImaageview。請注意,本次發言之前的所有信息都是完美無缺的!現在,我的問題是我想UIView只滾動一張圖片(這意味着它不會永遠;))。我曾嘗試使用UIScrollView,但沒有奏效。最後,我不打算使用除基本UIview之外的Cocos2D或任何其他遊戲引擎。這只是一個測試應用程序,而不是編碼盛會......

回答

2

從一個基於視圖的應用程序模板開始,所以你可以得到它的工作原理。稍後,您可以與現有的代碼進行集成。

創建一個無縫的背景圖像320×960像素,名爲「seamless.png」

這伊娃添加到您的視圖控制器的.h文件

UIImageView *bg; 

@property (nonatomic, retain) UIImageView *bg; 

在您的.m文件添加這些#define語句在@implementation行之前,@synthesize之後。

#define kUpdateRate (1.0/60.0) 
#define kMoveY (3.0) 
#define kTopY (0.0) 
#define kBottomY (480.0) 
@synthesize bg; 

添加此方法。

-(void)scrollView; { 
float oldY = self.bg.center.y + kMoveY; 
float newY = oldY; 

if (oldY > kBottomY) { 
    newY = kTopY; 
    } 

self.bg.center = CGPointMake(self.bg.center.x, newY); 
} 

將此添加到您的viewDidLoad方法中。

self.bg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"endless.png"]]; 
[self.view addSubview:self.bg]; 
self.bg.center = CGPointMake(self.bg.center.x, kTopY); 

[NSTimer scheduledTimerWithTimeInterval:kUpdateRate target:self selector:@selector(scrollView) userInfo:nil repeats:YES]; 

當你運行該應用程序時,你應該有一個很好的滾動背景。

綜上所述會發生什麼:將定時器設置爲重複調用滾動視圖:

在那裏,直到它到達預定點(kBottomY),此時它的位置躍升備份圖像向下移動到頂部(kTopY),然後重新開始。

你可以自定義它只在你想要的時候滾動,或者自己滾動另一種方式,對吧?

1

你想使用UIScrollView嗎?如果是這樣,只需將您的scrollView的內容大小設置爲比屏幕更寬的範圍。例如:

self.scrollView.contentSize = CGSizeMake(640, 480); 
+0

不是UIScrollView,我正在製作遊戲應用程序,而不是實用程序/菜單。更具體地說,我希望應用程序的視圖在UIImageview(播放器)擊中屏幕的右側/左側邊界時進行滾動。對困惑感到抱歉! – Flafla2 2009-12-20 17:32:28

1

您應該使用UIScollView(http://www.iphonedevsdk.com/forum/iphone-sdk-tutorials/3393-uiscrollview-tutorial.html)。或者我錯過了這一點?

+0

不是UIScrollView,我正在製作遊戲應用程序,而不是實用程序/菜單。更具體地說,我希望應用程序的視圖在UIImageview(播放器)擊中屏幕的右側/左側邊界時進行滾動。 – Flafla2 2009-12-20 17:33:09

+0

好運,那麼,我真的不能幫你... :-) – 2009-12-20 21:01:35

3

如果您正在編寫遊戲,您可能會受益於諸如之類的引擎爲您提供的許多功能。

1

只是使主視圖比屏幕更寬,並相應地更改邊界以顯示主視圖的不同部分。這假設你的主視圖確實有某種有限的寬度。如果這種觀點一直持續下去,那就會有點棘手。在這種情況下,您可以更改邊界並繪製新顯示的內容。

如果這沒有意義,那麼我認爲你需要改寫你的問題或做一些實驗來縮小你的要求。

1

看看Cocos2D中的iPhone還包括2個碰撞引擎,花栗鼠的選擇和Box2D的

我也可以推薦奧賴利書iPhone遊戲開發,如果你是新的遊戲開發會教哪個你如何推出一個基本的遊戲框架

2

如果橫向滾動的圖片很大,我建議使用滾動視圖,同時利用CATiledLayer。請參閱WWDC10 Session 104視頻和「平鋪」示例代碼。

順便說一句,蘋果文檔中沒有任何內容似乎預先判斷了實用工具或菜單的滾動視圖的使用。

相關問題