タグ付けされた質問 「android」

Androidは、Google、Inc.によって開発および保守されているモバイルデバイス用のオペレーティングシステムです。このタグには、Androidに関する特定のプログラミングに関する質問を含める必要があります。

1
ゲームループとopenGLの間のマルチスレッドを利用する
openGLレンダラーに基づくゲームのコンテキストで話す: 2つのスレッドがあるとしましょう: ゲーム内オブジェクトのゲームロジックや物理などを更新します ゲームオブジェクトのデータ(スレッド1が更新し続ける)に基づいて、各ゲームオブジェクトのopenGL描画呼び出しを行います。 ゲームの現在の状態で各ゲームオブジェクトの2つのコピーがない限り、スレッド2が描画呼び出しを行っている間、スレッド1を一時停止する必要があります。そうでない場合、ゲームオブジェクトはそのオブジェクトの描画呼び出しの途中で更新されます。望ましくない! ただし、スレッド1を停止してスレッド2から安全に描画呼び出しを行うと、マルチスレッド/同時実行の目的全体が失われます。 マルチコアアーキテクチャを活用してパフォーマンスを向上させるために、数百または数千または同期オブジェクト/フェンスを使用する以外に、これに対するより良いアプローチはありますか? マルチスレッドを使用して、現在のゲームの状態にまだ含まれていないオブジェクトのテクスチャをロードしてシェーダーをコンパイルできることはわかっていますが、アクティブ/可視オブジェクトに対して、描画と更新の競合を引き起こさずにそれを行うにはどうすればよいですか? ゲームオブジェクトごとに個別の同期ロックを使用するとどうなりますか?このように、すべてのスレッドは、更新/描画サイクル全体ではなく、1つのオブジェクト(理想的なケース)でのみブロックします!しかし、各オブジェクトのロックを取得するのにどのくらいのコストがかかりますか(ゲームには1000のオブジェクトがある場合があります)?

2
Table.drawDebugはlibGDXでは非推奨であるため、代わりに何を使用する必要がありますか?
私は「Learning LibGDX Game Development」の本に従ってシンプルなゲームを作成しています。私は、ステージを作成してデバッグ境界線でレンダリングするメニュー作成セクションにいます。 本は使用するように言っていますTable.drawDebug(stage)が、この静的メソッドはフレームワークTableクラスから完全に削除されたようです。 インポートしていcom.badlogic.gdx.scenes.scene2d.ui.Tableます。以下は私のコードです: @Override public void render(float deltaTime) { Gdx.gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); if (debugEnabled) { debugRebuildStage -= deltaTime; if (debugRebuildStage <= 0) { debugRebuildStage = DEBUG_REBUILD_INTERVAL; rebuildStage(); } } stage.act(deltaTime); stage.draw(); Table.drawDebug(stage); } 最後の行にTable.drawDebug(stage);はコンパイルエラーがあります"The method drawDebug(ShapeRenderer) in the type Table is not applicable for the …

2
オブジェクトの動きを滑らかにするために、実際に補間はどのように機能しますか?
過去8か月間、同じような質問をいくつかしましたが、あまり喜びがなかったので、質問をより一般的なものにします。 OpenGL ES 2.0のAndroidゲームを持っています。その中に私は次のゲームループを持っています: 私のループは固定時間ステップの原理(dt = 1 / ticksPerSecond)で動作します loops=0; while(System.currentTimeMillis() > nextGameTick && loops < maxFrameskip){ updateLogic(dt); nextGameTick+=skipTicks; timeCorrection += (1000d/ticksPerSecond) % 1; nextGameTick+=timeCorrection; timeCorrection %=1; loops++; } render(); 私の統合は次のように機能します: sprite.posX+=sprite.xVel*dt; sprite.posXDrawAt=sprite.posX*width; 今、すべてが私が望むようにかなり機能します。オブジェクトを特定の距離(画面の幅など)で2.5秒で移動するように指定できます。また、ゲームループで許可するフレームスキップのため、ほぼすべてのデバイスでこれを実行でき、常に2.5秒かかります。 問題 ただし、問題は、レンダリングフレームがスキップされると、グラフィックが途切れるということです。それは非常に迷惑です。フレームをスキップする機能を削除すると、すべてが好きなようにスムーズになりますが、異なるデバイスでは異なる速度で実行されます。したがって、それはオプションではありません。 フレームがスキップする理由はまだわかりませんが、これはパフォーマンスの低下とは関係がないことを指摘したいと思います。コードを1つの小さなスプライトに戻し、ロジックはありません(必要なロジックは別として)スプライトを移動します)と私はまだスキップされたフレームを取得します。そして、これはGoogle Nexus 10タブレット上にあります(そして上記のように、デバイス間で速度を一定に保つためにフレームスキップが必要です)。 だから、私が持っている他の唯一のオプションは、内挿(または外挿)を使用することです。そこにあるすべての記事を読みましたが、それがどのように機能するかを理解するのに実際に役立ったものはなく、試行したすべての実装は失敗しました。 1つの方法を使用して物事をスムーズに移動させることができましたが、衝突をめちゃくちゃにしたため、実行できませんでした。レンダリングはレンダリング時にレンダリングメソッドに渡され、その中で処理が行われるため、同様の方法で同じ問題を予測できます。したがって、衝突が位置を修正した場合(キャラクターが壁のすぐ隣に立っている)、レンダラーはその位置を変更して壁に描画できます。 だから私は本当に混乱しています。レンダリングメソッド内からオブジェクトの位置を変更するべきではないと人々は言っていますが、オンラインのすべての例でこれが示されています。 私は正しい方向へのプッシュを求めています。これらを何度も読んだので、人気のゲームループの記事(deWitters、Fix your timestepなど)にリンクしないでください。私はしていない私のためのコードを記述するために誰を尋ねます。補間が実際にいくつかの例でどのように機能するかを簡単な言葉で説明してください。次に、アイデアをコードに統合し、必要に応じてより具体的な質問をします。(これは多くの人が悩んでいる問題だと思います)。 編集する いくつかの追加情報-ゲームループで使用される変数。 private long nextGameTick …

2
フォントサイズをlibgdxの画面解像度に一致させる問題
ゲームのテキストを同じサイズで別の画面に表示するのに問題があり、簡単なテストを行いました。 このテストは、画面にテキストフィッティングを表示することで構成されています。画面やDPIから独立して、テキストのサイズが同じである必要があります。 私はこれとこの答えを見つけましたが、私の問題は解決するはずですが、解決しません。デスクトップではサイズは大丈夫ですが、私の電話では大きすぎます。 これは私のNexus 4での結果です(768x1280、2.0密度) そして、これは私のMacBookの結果です:(480x800、0.6875密度) Open Sans Condensedを使用しています(Googleフォントへのリンク) ご覧のとおり、デスクトップは見栄えが良いですが、電話ではとても大きいです。 ここに私のテストのコード: public class TextTest extends ApplicationAdapter { private static final String TAG = TextTest.class.getName(); private static final String TEXT = "Tap the screen to start"; private OrthographicCamera camera; private Viewport viewport; private SpriteBatch batch; private BitmapFont font; @Override public void …

1
AndroidでGPUスキニングを確実に実装するにはどうすればよいですか?
Androidでキャラクタースキニングを機能させようとしています。 アイデアはかなりバニラです:私にはスキニングマトリックスがあり、各頂点と共に、最大4つのマトリックスインデックスと4つの対応する重みを送信します。それらを頂点シェーダーで合計し、各頂点に適用します。 これは、ゲームのiOSバージョンの頂点シェーダーで行っていることです(法線は問題ありません)。 attribute vec4 in_pos; attribute vec4 in_normal; attribute vec2 in_texture_coords; attribute vec4 in_bone_index; attribute vec4 in_bone_weight; varying vec2 fs_texture_coords; uniform mat4 world_view_projection; uniform mat4 bones[@bind_matrix_count]; void main() { // Skinning vec4 transformed_pos = ((in_pos * bones[int(in_bone_index.x)]) * in_bone_weight.x) + ((in_pos * bones[int(in_bone_index.y)]) * in_bone_weight.y) + ((in_pos * bones[int(in_bone_index.z)]) …

2
外挿は衝突検出を中断します
スプライトの動きに外挿を適用する前は、衝突は完全に機能していました。ただし、(物事を滑らかにするために)スプライトの動きに外挿を適用すると、衝突が機能しなくなります。 これが、外挿前の動作です。 しかし、外挿を実装した後、衝突ルーチンが壊れます。これは、(レンダーコールにある)外挿ルーチンによって生成された新しい座標に作用しているためと考えています。 外挿を適用した後 この動作を修正するには? 外挿の直後に追加の衝突チェックを試みました-これは多くの問題を解決するようですが、レンダリングにロジックを入れることは問題外なので、これを除外しました。 私はまた、spritesXの位置のコピーを作成し、それを外挿して、オリジナルではなくそれを使用して描画してみたので、元のロジックをそのままにして、ロジックがピックアップできるようにしました。壁にぶつかったとき。これもこれに対処する正しい方法ではないと確信しています。 ここで似たような質問をいくつか見つけましたが、答えは役に立ちませんでした。 これは私の外挿コードです: public void onDrawFrame(GL10 gl) { //Set/Re-set loop back to 0 to start counting again loops=0; while(System.currentTimeMillis() > nextGameTick && loops < maxFrameskip){ SceneManager.getInstance().getCurrentScene().updateLogic(); nextGameTick+=skipTicks; timeCorrection += (1000d/ticksPerSecond) % 1; nextGameTick+=timeCorrection; timeCorrection %=1; loops++; tics++; } extrapolation = (float)(System.currentTimeMillis() + skipTicks - …

4
単純なゲームでは、ゲームループの別のスレッドが必須ですか?
ゲーム開発は初めてです。学ぶために、Androidプラットフォームでこのゲームを再現しています。上記のリンクでゲームプレイのビデオを見ることができます。シンプルなゲームです。 私はゲーム開発の開始に関する多くの記事を読みました。それらのほとんどすべてが、別のスレッドでゲームループを使用することを推奨しました。ただし、この特定のゲームでは、別のスレッドを開始する必要がありますか?

2
Androidで関数型言語はどの程度うまく機能しますか?
これは、私が特に適切だと思うこの質問の特別なケースです。 私はAndroid用のゲームに取り組んでおり、libgdxでScalaを使用することを計画しています。私はパフォーマンスの高いゲームを作るつもりですが、必ずしも高性能なゲームではありません。libgdxのガベージコレクションに関するドキュメントを見たところ、次のように思いました。 関数型プログラミングは、多くの不変オブジェクトを意味します。 したがって、オブジェクトを変更するには、新しいオブジェクトを作成する必要があります。 したがって、多くのオブジェクトがガベージコレクションされ、パフォーマンスが低下します。 これは乗り越えられない問題ですか?Androidの機能的なスタイルで他に重大な問題はありますか?
10 java  android  libgdx 

4
無料のアプリでカスタム支払いが行われた場合、AppleとGoogleは共有を要求しますか?
マルチプラットフォームゲーム(web / iOS / Android)を作成しています。無料版でもコアゲームは完全にプレイできますが、支払いを選択した人はより多くのソーシャル機能を利用できます(もちろん広告はありません)。 私はすべてのプラットフォームに無料版と有料版を用意するのではなく、無料でアプリをリリースすることができ、ユーザーがそれ以上欲しい場合は、登録して1回限りの料金を支払う必要があると考えていました(支払いゲートウェイまたはPayPalを介して) )。追加のコンテンツは、アクセスできるすべてのクライアントで利用できます。理論的には、これはプレーヤーにとってより良い価値を意味し、私にとってメンテナンスと頭痛が減ります(明らかに私はすべての支払いトラブルを自分で処理する必要があります)。 Apple / Googleのビジネスモデルに適合しますか?それとも、彼らはまだ登録料のシェアを主張しますか?

1
Unity3dモバイルプロジェクトを既存のネイティブモバイルアプリに埋め込むことはできますか?
AndroidとiPhoneの両方のアプリケーションを作成しています。このアプリケーションには、いくつかのミニゲームが含まれます。ネイティブのAndroidとiPhoneでゲーム以外のセクションを作成したいと思います。私の質問は、私が作成しているUnityミニゲームをすべて1つのapkとiosプロジェクト内に組み込むネイティブアプリを持つことは可能ですか?
10 android  iphone  unity  ios 

1
Android開発を行うときにアニメーションを作成する最良の方法は何ですか?
私は最初のAndroidゲームを作成しようとしています。現在、アニメーションを作成するための最良の方法は何かを(図面を作成する人と別のプログラマーと)理解しようとしています。(キャラクターの動きなどのアニメーション) 最初に、デザイナーはオブジェクト/キャラクターを描画し、フラッシュでそれらをアニメーション化できるため、アクションのすべてのフレームを描画する必要がないと述べました。他のプログラマーと私はFlashをあまり知らないので、Flashアニメーションからすべての画像を抽出し、アニメーションが始まるときに次々と表示されるようにすることを提案しました。 彼はそれがCPUのリソースを使い過ぎる結果になると私は同意する傾向があると彼は言った、しかし私はハードウェアにあまりにもハードでなく、可能な場合にはそれなしでスムーズなアニメーションを作る方法が本当にわからないデザイナーはAdobe Illustratorですべてのフレームを描画します。 経験豊富なAndroidゲーム開発者がこれを調整して、アニメーションを作成する最良の方法がわからないので、ゲームの他の部分に進むことができますか?

3
Unity AndroidとAndroid SDK
Unityに精通しており、Unity Android Basicに関する発表が発表されたときは、Android SDKの学習過程にあります。 Unity Androidを使用して開発する場合と比べて、Android SDKを直接使用する場合の長所と短所は何ですか?

2
無料ゲームをサポートするようユーザーに巧みに依頼するにはどうすればよいですか?
ですから、専用のユーザーは数人いますが、実際のユーザーはほとんどいないゲームがあります。これは、Androidマーケットプレイスの無料ゲームであり、広告でサポートされています。私は定期的にユーザーに次のようなことをするように促す通知をポップアップするという考えをもてあそんでいます。 提示された広告を見てください。 Androidマーケットプレイスで好意的なレビューを書いてください。 友達に遊んでもらいます。 現時点では、ユーザーが広告を定期的にクリックしない限り、ユーザーが10回以上ゲームをプレイした後、5回のゲームごとにこれを実行するように、リリースされていないバージョンで設定しています。私はユーザーにこれを知らせていません。ポップアップを停止するためだけに広告をクリックすることはしたくありません。 基本的に、私は次のレベルに進むためにユーザーからのもう少し動機が必要です、そして私は彼らに私が彼らから何が欲しいかを知らせています。 これは最終的に私を助けてくれるのでしょうか、それとも私は自分をさらに埋葬するつもりですか?ありがとう!

1
Androidゲーム開発でのコレクションの使用は推奨されていませんか?
Androidのゲームプロジェクトに取り組んでいるときに、ゲームコードのパフォーマンス最適化に関する情報を探していました。そして、ListやArraylistなどのJava コレクションの使用はゲームコードでは推奨されていないことを知りましたが、コレクションはJavaプログラミングの便利なツールです。コレクションフレームワークがAndroidシステムに与える影響とその理由について、技術的な詳細を教えてください。この点でどんな助けでも素晴らしいでしょう。
10 android 

5
Android用の無料のオープンソース3Dエンジンはありますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 Android用の無料で無制限のオープンソース3Dエンジンはありますか?NDKの直接の薄いレイヤーとは何か? UnityとShiva 3Dの2つのエンジンしか見つかりませんでした。しかし、フリーやオープンソースのものはありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.