0

私は Android でビデオ ゲームを作成する方法を学ぼうとしているので、SurfaceView オブジェクトを使用して Android でグラフィックスを作成する方法についての適切なチュートリアルを入手する必要があります。ただし、私が試したすべてのグラフィックチュートリアル(主にSurfaceViewのもの)は失敗しました。XMLは私の要素から外れているため、使用したくないことに注意してください。Googleは、プログラムで実行できるきちんとした広告でその手法を販売したいだけです。

私が遭遇した大きな問題の 1 つは、Google とサードパーティの両方から、import android.opengl.GLSurfaceView コマンドを使用するか、GLSurfaceView のサブセットをインポートするコードを含む多くのチュートリアルがあり、それが私の IDE では機能しないことです。 . それらのいずれかをインポートしようとするたびに、Eclipse は基本的にそのパッケージを認識しないと言いたいのです。奇妙なことに、android.opengl.* をインポートできますが、それでもこれらのパッケージのコードの一部が、認識されていない型やメソッドを参照しています。

最初の問題をしばらくいじってみたところ、Lunar Lander の例では、これら 2 つの問題ライブラリのいずれもインポートしようとしていないことに気付きました。そのため、そのコードと参照リソースを初期段階のプロジェクトの 1 つに取り込み、そのプロジェクトの他のすべてを未使用のままにしました。もちろん、Lunar Lander コードが入っているパッケージを変更し、LunarLander.java などのクラス名を変更しましたが、それは問題ではありません。Eclipseでビルドするものを手に入れることができました。しかし、実行しようとすると、クラッシュするだけでした。Lunar Lander のグラフィックスなどを一切表示せずに、エミュレーターは、基本的にアプリが予期せず動作を停止し、アプリを閉じるように指示するこのエラー メッセージを表示します。

1) opengl.GLSurfaceView パッケージの問題はどうなっていますか? 2) 月着陸船の例はどうなっていますか? 3) Android 用のビデオ ゲームの作り方についてのしっかりしたチュートリアルはどこにありますか

ありがとう。

4

1 に答える 1

3

2D または 3D でゲームを作成していますか? 3D について話すことはできませんが、単純な 2D ゲームをいくつか作成しましたが、SurfaceView は助けになるというよりは邪魔になりました。エミュレーターは 1 つのコアのみをシミュレートするため、描画のパフォーマンスは実際には向上しません。さらに、スレッドのオーバーヘッドとメンテナンスは対処するのが面倒で、多くの機能を妨げています (さまざまな構成から GameOver ダイアログを起動しようとして数時間を費やしましたが、余分なスレッドがこれを防ぎました)。

SurfaceView に代わる方法は、View を拡張する独自のクラスを実装し、onDraw(Canvas) をオーバーライドして好きなように描画することです (これは私と私の友人が行ったことです)。

ポイントに答えるには:

  • 私は 3D で作業したことも、Android の OpenGL を使用したこともありませんが、Eclipse (それを使用している場合) は、Android リソースを見つけるのに少し気まぐれかもしれません。残りのクラスはロードされますか?

  • Lunar Lander は、SurfaceView と SurfaceHandler を拡張するビューを作成および破棄する方法を示しています。繰り返しになりますが、SurfaceView が優れた選択肢となるコンテキストがあるかもしれませんが、Android を始めて単純な 2D ゲームを作成する場合は、SurfaceView は必須ではないと思います。

  • 良いチュートリアルを見つけるのは難しいです。私はこの 2D ゲームを作成するために、 Hello Androidの電子書籍版で数時間を費やして十分に学びました。

私の仲間の何人かと私は、今学期に Android 用のゲームに取り組んでおり、学期が進むにつれて他の人にリソースを提供したいと考えているブログも設定しました。悲しいことに、現時点ではあまりありません。

幸運を!

于 2010-02-23T03:33:38.340 に答える