1

Android Studioでは、SurfaceViewオブジェクトを使用して60fpsでアニメーションを描画するゲームを開発しています。私はプレーフィールドの端を隠すために最上層として半透明のイメージを使用します。つまり、プレーヤーはシャドウを越えて何を期待するのか分からないように、「戦争のかぶり」のような効果を与えます。カスタムキャンバス上に固定レイヤーを置くことはできますか?

私の問題は、プレーフィールドが右/左/上/下にスクロールしても、影が決して変化したり動かなくても、すべてのフレームに対してこのシャドウイメージを描画する必要があるということです。フルスクリーンの画像なので、ゲームをクロールするのが遅くなります。

アニメーション化されたカスタムキャンバスの上にワンタイムオーバーレイを作成する方法はありますか?あたかもオーバレイがそこにいなくてもあたかもその下のキャンバスとやりとりしたいと思っています。

sample fogs-of-war effect

+0

カスタムキャンバスでビューの上に正確に配置された別のビューを使用することは可能でしょうか。このビューは背景として「影」を持つことができます。 – 0X0nosugar

+0

同じキャンバスを使用して上に描画します – Zoe

答えて

0

(これは戦争のあなたの「霧の背景があると仮定したら、それを描画する必要があり、あなたがあなたの表面図の上にフルスクリーンImageViewのを入れ、これに「霧の戦争の」画像を設定しようとした持っていますトランスペアレント")。

あなたはViewOverlayがあなたをカバーしなければならないが、私の理解が、これはこれは不要であるべき個々のビューを使用すると、フルスクリーン面図を使用しているとして、アニメーションのために彼らの境界の外側に描画したいときに使用されている、その後は何も手の込んだ必要がある場合は

https://developer.android.com/reference/android/view/ViewOverlay.html

サーフェスビューにサーフェスビューを貼り付けることができない理由もありません。 1つは戦争の霧/スクリーン効果、1つはゲーム面用です。

+0

私はまだあなたのソリューションがサウンドに見えますが、私はまだこの問題に取り組んでいます。私は、キャンバスドローによってイメージがオーバーレイされないSurfaceView内の適切な場所を見つける必要があります。私の一部の追加学習が必要です。 ViewOverlayはもっと良い解決策かもしれませんが、私はJellyBeanersのためにこれをコーディングしています。 ViewOverlayはAPIレベル18以上でのみ動作します。 –

1

Thomas Stevensからの応答に基づいて、ImageViewでSurfaceViewをオーバーレイするオプションを研究しました。私の解決策は、必要なImageViewを含むFrameLayoutを追加することです。 (そうすれば、私は単純にレイアウトXMLを更新することにより、オーバーレイに追加のビューを追加することができます。)

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    //temporarily set the view to the overlay layout to gain access to the frame 
    setContentView(R.layout.overlay_game); 
    FrameLayout overlayLayout = (FrameLayout)findViewById(R.id.gameOverlayFrame); 

    //set the final view to the active game surface (a Java-coded SurfaceView object) 
    setContentView(new GameSurface(this)); 
    //add the overlay view on top of the game surface view 
    addContentView(overlayLayout, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT)); 
} 

私はこれが解決策...私の作品一つだけであることを主張しません。

関連する問題