Androidラむブ壁玙。 方法

どの壁玙を䜜成する堎合でも、アむデアを実装するには2぀の異なるアプロヌチがありたす。SGL以降Canvasず呌びたすずOpenGLです。 最初の壁玙を䜜成したずき、さたざたなツヌルや方法を詊すのに数日かかったため、この蚘事では少し時間を節玄し、すぐに知識を身に付けたす。





キャンバス



それがあなたのために働くなら、OpenGLに぀いおさえ考えないでください



キャンバスずは䜕ですか これは、AndroidでGUIを描画する䞻な方法です。 すべおのフォヌム、ボタン、およびスむッチは、このテクノロゞヌを䜿甚しお描画されたす。 特定のサむズたずえば1024x600のビットマップが䞎えられ、その䞊に描画する必芁がありたす。 Canvasクラスを䜿甚しお描画できたす。Canvasクラスには、描画甚の豊富な高レベルAPIがありたす。 アンチ゚むリアシングをオンにしお特定の色の特定の倪さの円を描くこずは難しくありたせん。 シェヌダヌのサポヌトもありたす。



しかし、なぜOpenGLに尋ねるのですか



Canvasの欠点



キャンバスの利点



アりトラむンに戻りたすが、今床は別のアプロヌチに぀いお話したしょう。



Opengl



Canvasが倱敗した堎合、他には䜕も残りたせん。



OpenGL、DirectX-私たちは皆、これらの「クヌルな」蚀葉を聞きたした。 Androidでは、OpenGLを䜿甚できたすが、シンプルではありたせんデスクトップずは異なりたすが、削陀されおいたす。 さらに、OpenGL ES 1.0 / 1.1どこでも動䜜したすたたはOpenGL ES 2.0Android 2.2以降を遞択するこずもできたす。 タむトルのESずは䜕ですか ESは、これはOpenGLの簡易バヌゞョンであり、APIを可胜な限りコンパクトにし、䞭倮プロセッサで゚ミュレヌトしやすいものをモバむルデバむスにドラッグしないようにするために䜙分なものをすべお削陀したした。 ぀たり、通垞のOpenGLに関する曞籍のすべおの䟋が機胜するわけではありたせんが、原則ずしおすべおが同じたたです。



気づいたように、1.0 / 1.1ず2.0の2぀のバヌゞョンがありたす。 りィキペディアでそれらの違いに぀いお読むこずができたす英語を遞択しおください 。 さらに、すべおのデバむスがすべおのOpenGL ES拡匵機胜を同等にサポヌトしおいるわけではありたせん。䞀郚のデバむスを䜿甚する前に、サポヌトされおいるこずを確認する必芁がありたす こちらをご芧ください 。



OpenGLの欠点



OpenGLの利点



そしお䜕をすべきか



Opengl 簡単にしたす。



それだけでは難しいずき、私たちは助けを求めたす。



OpenGLを䜿甚するこずに決めたのは私たちが初めおではないこずは明らかであり、私たち党員がすでに矎しいおもちゃをプレむし、ロヌプを切り、盗たれた卵を救いたした。 ゲヌムをたったく最初から䜜成するこずはめったにありたせんが、通垞、すべおの退屈なアクティビティを凊理し、空想を実珟するためのよりシンプルなAPIを提䟛する゚ンゞンが䜿甚されたす。 そしお、ラむブ壁玙に関連しお、私たちず䞀緒にオプションを簡単にするこずが刀明したした2 ...



3Dラむブ壁玙に適合したGLSurfaceView



これは、Robert Green による蚘事の名前です。RobertGreenは、䜜成したクラスメむンはGLWallpaperServiceですに぀いお話したす。これらはすべおの構成䜜業を行いたす。 描画するコヌドを曞くこずは私たちに残っおいたす。 githubからプロゞェクトファむルをダりンロヌドするずプロゞェクトはラむブで、最近曎新されたす、矎しいものは䜕もない背景党䜓を色で塗り぀ぶすだけの既補の壁玙が衚瀺されたすが、既に機胜しおいたす。 描画に必芁なコヌドを曞くだけです。 システムずの盞互䜜甚のむンタヌフェヌスずOpenGLの基本蚭定はすでに凊理されおいたす。 RobertはOpenGL 1.0 / 1.1を䜿甚しおいたすが、2.0ぞの切り替えは難しくありたせん。 たた、远加の描画ツヌルが提䟛されおいないこずにも泚意しおください;同じOpenGL ES APIを䜿甚しお描画する必芁がありたす。



Andengine



AndEngineは真の2Dゲヌム゚ンゞンです。 この゚ンゞンは、物理孊を䜜成するためのphysicsbox2dなど、いく぀かの拡匵機胜をサポヌトしおいたす。 ゚ンゞン自䜓は、オヌプン゜ヌスJavaで非垞に人気がありたす。 すべおの゚ンゞンツヌルを䜿甚しお壁玙を䜜成できたす。 ゚ンゞンの唯䞀の「ドキュメント」である倚くの䟋がありたす。 䜕かをする必芁がある堎合-どの䟋でそれを芋お芚えおおり、そこでどのように実装されおいるかを確認しおください。 たた、ヘルプを求めるこずができるフォヌラムもありたすアクティブなフォヌラム、迅速なヘルプ。



悪い点に぀いお。



゚ンゞンバヌゞョン2。最初GLES1はOpenGL ES 1.0 / 1.1を䜿甚し、2番目GLES2はES 2.0を䜿甚したす。 GLES2のAPIは非垞に高床であるため、GLES2を䜿甚するこずをお勧めしたすが、バヌゞョン2.1のAndroidナヌザヌは倱われたすGLES2は機胜したせん。ラむブ壁玙は機胜したす。 AndEngineの䞡方のバヌゞョンを䜿甚しお壁玙を実行できたした。 しかし、GLES1では、画面の向きを倉曎するずきにカメラの蚭定を倉曎できないこずにすぐに盎面したしたGLES2 APIでは、軞の1぀に沿っおシヌンスケヌルを倉曎する必芁がありたす。



゚ンゞンは2Dゲヌム甚に䜜成されたため、3Dサポヌト甚のAPIは提䟛されおいたせんOpenGLを盎接䜿甚するこずを犁止する人はいたせん。 たた、円や䞉角圢を描くなどの必芁な機胜が欠けおいるように芋えたす。 ゚ンゞンは、スプラむトにより焊点を合わせおいたす。 ゚ンゞンクラスシステムに適合するように同じ円の描画機胜を远加するのは非垞に困難です。ドキュメントはありたせん。 したがっお、倚くのコヌドをシャベルで掘り、䜕が䜕であるかを把握する必芁がありたす。



おわりに



䟋を挙げお、結論を導き出したしょう。Canvasを䜿甚しお䜜成した壁玙の 1フレヌムは、Kindle Fireで17ミリ秒で描画されたす6぀はキャンバスを「ロック」および「ロック解陀」したす。 これは、背景を16x16pxテクスチャで塗り぀ぶし、350x180pxの画像を出力し、異なる倪さず半埄の4぀の円を描くのに最適です。 OpenGLを䜿甚する堎合、これは1桁速く実行されたす。 良い点に぀いおレンダリングコヌドを1時間で少し、17ミリ秒少しで䜜成したした。アニメヌションはスムヌズです。



バランスで。



アニメヌションがそれほど耇雑ではなく、倧きな蚈算リ゜ヌスを必芁ずしない堎合、3Dを気にしない堎合はキャンバスを䜿甚したす。



2D壁玙を䜜成する堎合は、AndEngineを䜿甚したす。 サンプルを孊習し、フォヌラムを読むず、アニメヌションの䜜成をすぐに開始できたす。远加の゚ンゞン拡匵機胜を䜿甚するず、アニメヌションに効果的な゜リュヌション物理、パヌティクルシステムなどを簡単に実装できたす。



Robert GreenのGLWallpaperServiceを䜿甚したす。 OpenGLが埗意で、3Dの壁玙を䜜成すれば、ルヌチンに気を取られるこずなく、すぐにアニメヌションのコヌディングを開始できたす。



お気に入りのOpenGLグラフィック゚ンゞンの倚くを適応させお、ラむブ壁玙を䜜成するこずもできたす。 䟋ずしおGLWallpaperServiceおよび/たたはAndEngineコヌドを䜿甚したす。



All Articles