0

私は数ヶ月前に iPhone ゲームを作成し、現在 Cocos2D を使用して iPad と iPhone 5 の両方にユニバーサル アプリとして移植しようとしています。ゲームを実行しているデバイスに基づいて、オブジェクトを配置する場所を決定する単純な方法があるかどうか疑問に思っていました。

if ステートメントを使用して、ゲームが実行されているデバイスを特定できるため、デバイスに適したサイズの画像を取得すると、オブジェクトごとに個別の位置を設定できますが、それを可能にする数式があるようです。使用するコードを大幅に減らすことができます。明らかに、全画面の背景のようなものは非常に単純です。

[background setPosition:CGPointMake(screenSize.width/2,screenSize.height/2)];

古い 3.5 インチ、640 x 960 の解像度の iPhone で X = 144 & Y = 330 になるボタンを、iPad または iPhone 5 の解像度に適応させる方法がわかりません。

生活が楽になるなら、iOS の最新バージョンを使用したいと思っていますが、Apple のオブジェクトを使用していないため、それが可能かどうかはわかりません。

iPhone版とiPad版ではボタンの大きさが違うので無理かもしれませんが、聞いてみようと思いました。

4

2 に答える 2

1

ええ、私は通常同じ問題に直面していますが、それが静的なオブジェクトの配置である場合はrelative coordinates instead of absolute、すべてのオブジェクトに対して持っていて、画面サイズを使用してそれらを正しく配置するので、次のような関数を使用することができます:

-(CGPoint) relativeToScreen:(CGPoint) p { 
    return ccp(screenSize.width * p.x, screenSize.height * p.y) 
}

ここで、0.0 <= px = <1.0であり、pyについても同じです。

anchorPointノードの位置もそれに基づいているので、あなたのことを忘れないでください

そして私はあなたがcocos2dがあなたの代わりにすでに画像選択をしていることを発見したことを願っています、あなたはあなたの画像に正しい接尾辞を設定する必要があります:-hd, -ipad, -ipadhd

于 2012-10-12T17:21:44.527 に答える
0

iPhone5 の解像度では、画面の寸法に対して hud ボタンを配置します。バックグラウンドで行っていることと非常によく似ています。たとえば、左上に一時停止ボタンを配置するには、次のようにします。

[pauseButton setPosition:CGPointMake(0.0f + 30.0f, screenSize.height - 50.0f)];

ipadの場合、それは本当にトリッキーになります。私が実装した怠惰な方法は、コンテンツの倍率をいじってすべてをズームアップし、iPad の画面比率を補正するために「デッド」ボーダーを作成することです。最高ではありませんが、少なくとも同じアセットをすべて iPad で再利用できます。

于 2012-10-12T17:22:11.033 に答える