2011-10-21 3 views
0

私はCocos2Dを使い慣れていないので、キャラクターが画面から脱落しないように、ゲームの画面の端/境界を作る方法を知りたいと思います。私はあなたがCocos2DかBox2Dのどちらかでこれを行うことができると私はどこかを読んで、私が使用する気にしないが、私はどこから始めるべきかわからない。私はデバイスの上部と下部にエッジが必要です。これらの値がハードコードされていないと、これは普遍的なアプリになるので、いいかもしれません。私は実際に境界線を作るときMake Screen 'Edges'(Cocos2D)

また、停止画面の外に行くから文字への現実的な方法は何ですか?重力を0にするか、0にするか?

私はこれをやっていく方法を知っていますか?

私は本当にこれを理解するのに苦労しています!

ありがとうございました!

答えて

1

ゲームでクォーツを使用している場合、各UIオブジェクトにはバウンディングボックスが必要です。これは、次のコードと同様にアクセスできます。

UIImage *hero = [[UIImage alloc]initWithImage:image]; 

CGRect heroBoundingBox = hero.frame; 

ゲームがあるUIViewControllerにも境界ボックスがあります。ヒーローが画面上にあるかどうかを確認する最も簡単な方法は、CGRectContainsRectを使用することです。いくつかのコードこのような

UIImage *hero = [[UIImage alloc]initWithImage:image]; 

CGRect heroBoundingBox = hero.frame; 

CGRect screenBoundingBox = viewController.frame; 

bool heroOnScreen = CGRectContainsRect(screenBoundingBox, heroBoundingBox); 

それからちょうどセットアップ:

if (heroOnScreen) { 
    //continue moving hero 
} else { 
    //move hero back on screen 
} 

そのあなたが任意のコード例を見てか、これがどのように機能するかについての詳細を知らなくても、これを行うために必要なものを言うのは難しいです。うまくいけば、これは役に立ちます。

+0

これをCocos2dにどのように適用すればよいですか?私はCocos2dがバウンディングボックスで動作することを知っていますが、私はObj-Cでゲームの部分をコーディングしていません。/ –

+0

キャラクターをどのように実装し、動かしているかのサンプルコードを提供できますか?私はobjective-cで作業するのに慣れていますが、もしあなたがそれをやっているのを見たら、私はそれを適応させるかもしれません。 – robhasacamera

+0

Cocos2Dのドキュメントが見つかりました。多くのオブジェクトがCGRectを定義しているかのように見えます(CGRectContainsPointを使用することもできます)。あなたのキャラクターにはどんなオブジェクトを使用していますか? CCSpriteの場合は、frameプロパティの代わりにtextureRectプロパティを取得して、CGRectContainsRectメソッドに必要なCGRectを取得します。 – robhasacamera