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

Javaは人気のあるオブジェクト指向プログラミング言語であり、ほとんどのハードウェアおよびソフトウェアプラットフォームでJavaプログラムを変更せずに実行できるランタイム環境です。


1
ターン制ゲームでの世界の状態とアニメーションの分離
ターン制ゲームでアニメーションと世界の状態の分離をどのように扱いますか?現在、2Dグリッドベースのゲームに取り組んでいます。以下のコードは、わかりやすくするために簡略化されています。 アクターが移動するとき、クリーチャーがアニメートして新しい位置に移動する間、ターンのフローを一時停止したいと思います。そうしないと、画面が世界の状態より大幅に遅れて、奇妙な外観になります。また、ゲームの流れを妨げないアニメーションが必要です。パーティクルエフェクトは、ゲームプレイに影響を与えずに複数のターンにわたって展開できます。 私がやったことは、ブロッキングアニメーションとノンブロッキングアニメーションと呼ばれる2種類のアニメーションを紹介することです。プレイヤーが移動したい場合、実行されるコードは class Actor { void move(PositionInfo oldPosition, PositionInfo newPosition) { if(isValidMove(oldPosition, newPosition) { getGame().pushBlockingAnimation(new MoveAnimation(this, oldPosition, newPosition, ....)); player.setPosition(newPosition); } } } 次に、メインの更新ループが行います。 class Game { void update(float dt) { updateNonBlockingAnimations(dt); //Effects like particle explosions, damage numbers, etc. Things that don't block the flow of turns. if(!mBlockingAnimations.empty()) { …

5
類似したタイルが互いに隣り合って生成される可能性を高める
私はタイルマップシステムに取り組んでいます。これは、ここではこのように見えます(緑は草、空気は白、石は灰色、青は水です)。 単純な乱数ジェネレータを使用して、タイルが草である可能性が45%、水である可能性が30%、石である可能性が25%になるようにします。 とにかく、草/石のブロックが固まり、陸塊を形成する傾向を高め、ウォーターブロックを海に形成することができますか(Minecraftのようなゲームで見ることができるもののようなものですか)?
9 java  algorithm  tiles  maps  lwjgl 



3
1日か2日のJavaゲーム[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 4年前休業。 私たちは学校のプロジェクトとしてJavaで簡単なゲームを作ろうとしている3人です(大学、初年度)。ゲームはオブジェクト指向でなければなりません。時間はあまりありません、10-20時間のトップス。私たちの誰もゲーム開発の経験はありませんが、Javaにはかなりのスキルがあります。 私たちは正確にどのような種類のゲームを選ぶことができます、そしてそれが問題があるところです。どれくらいの高さを目指すべきでしょうか?競争があるので、今の時間で最高のゲームを作りたいです。3Dゲームは非現実的ですか?ゲームエンジン/ライブラリを使用する必要がありますか?どのような機能を避けるべきですか?

2
高度なJavaゲームでキー/マウス入力をどのようにすべきですか?
私は独学のプログラマなので、適切な方法がわかりません。小惑星やヘビのような単純なゲームを作成しましたが、これらのゲームでは、キーイベント関数内の変数を簡単に変更できます。ここに私が私の簡単な小惑星ゲームでそれをした方法があります: /* * key listener events */ public void keyReleased(KeyEvent k){ int keyCode = k.getKeyCode(); switch(keyCode){ case KeyEvent.VK_LEFT: turnLeft = false; break; case KeyEvent.VK_RIGHT: turnRight = false; break; case KeyEvent.VK_UP: accel = false; break; case KeyEvent.VK_1: cls = true; break; case KeyEvent.VK_ENTER: break; case KeyEvent.VK_SPACE: fire = false; } } …
9 java  input 

4
ゲームにJavaアプレットを使用してはならない正当な理由はありますか?
マルチプレイヤーのブラウザベースのゲームを作りたいです。アプレットを使用することの良い点は、クライアントとサーバーを同じ言語(java / closure / scala / etc)で作成できることです。私はhtml5とjavascriptがあることを知っていますが、サーバー側のjavascriptは、jvmプラットフォームとブラウザサポートほど成熟していないので、まだ不安定です。 アプレットは広く使用されていないようですが(Runescapeを除く)、それらが不適切である理由はありますか、それとも、幼少期に開発した評判が悪いためですか?
9 java  web 

8
Javaの背景からゲーム開発を学ぶのに最適なリソースは?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 5年前休業。 私はエンタープライズJavaプログラマーですが、私が興味を持っていたのは、ゲーム全体を作成できるようにするというアイデアでした。 誰かがアドバイスや本の推奨事項を提供できるかどうか疑問に思っています。 私が最も興味を持っているのは、ゲームエンジンの設計と実装です。人々は「ああ、でも自分で書く理由はたくさんある」と言うかもしれません-それは純粋に学習目的、物事がどのように機能するかを見るなどのためです。 これまでLWJGLを調べましたが、それほど深刻なことは何も達成していません。 ありがとう。
9 java 


3
Androidスレッドがデザインに頭を悩ませる問題
ゲームデザインに頭を悩ませています。Androidプラットフォームでは、アクティビティがあり、そのコンテンツビューにカスタムサーフェスビューを設定しています。カスタムサーフェスビューがパネルとして機能し、すべてのクラスのインスタンスを作成し、そこですべての描画と計算を行います。 質問:代わりに、アクティビティで他のクラスのインスタンスを作成する必要がありますか? 次に、ゲームループを処理するカスタムスレッドクラスを作成します。 質問:この1つのクラスをすべてのアクティビティでどのように使用しますか?または、毎回拡張スレッドクラスの個別のインスタンスを作成する必要がありますか? 前のゲームでは、スレッドクラスのインスタンスを作成する必要のある複数のレベルがあり、スレッドクラスでは、各個別のレベルにコンストラクターメソッドを設定し、ループでswitchステートメントを使用して、レンダリングする必要があるレベルを確認しましたそして更新。混乱するようでしたら申し訳ありません。 私が使用している方法が非効率的であるかどうか(おそらくそうであるかどうか)と、それを正しい方法で設計する方法を知りたいだけです。私はそこにたくさんのチュートリアルを読みました、そして私はまだこの特定のトピックで多くの問題を抱えています。多分これを説明するいくつかのチュートリアルへのリンク?ありがとう。

3
次の最適な方向に向けたパックマンキャラクターAIの提案
まず、これはPacManのAIであり、ゴーストではありません。 アイコンの周りでPacManを再生するAndroidライブ壁紙を書いています。画面タッチによるユーザーの提案をサポートしていますが、ゲームの大部分はAIによって行われます。私はゲームのすべてのプログラミングを99%完了していますが、PacMan自身のAIはまだ非常に弱いです。PacManの次の移動方向を決定するための優れたAIの開発に協力を求めています。 私の最初の計画はこれでした: 各方向のスコアカウンターをゼロの値で初期化します。 現在の位置から開始し、BFSを使用して、キューに追加することにより、可能な4つの初期方向に外側に移動します。 キューから要素をポップし、それがまだ「見られていない」ことを確認し、それが有効なボード位置であることを確認し、対応する初期方向スコアに、以下に基づいて現在のセルの値を追加します。 ドットあり:プラス10 パワーアップ:プラス50 果物を持っている:プラスの果物の価値(レベルによって異なります) おびえた幽霊がいる:プラス200 幽霊がパックマンに向かっている:200を引く パックマンから逃げる幽霊がいる:何もしない ゴーストが垂直に移動している:50を引く セルへのステップ数に基づいて、セルの値にパーセンテージを掛けます。最初の方向からのステップが多いほど、セルの値はゼロに近づきます。 現在のセルから3つの可能な方向をエンキューします。 キューが空になったら、4つの可能な初期方向のそれぞれについて最高のスコアを見つけ、それを選択します。 紙の上ではそれは良さそうに聞こえましたが、幽霊はパックマンを非常に急速に取り囲み、1つが彼に到達するまで、彼は同じ2つまたは3つの細胞で前後にぴくぴく動いています。ゴーストプレゼンスの値を調整しても、効果はありません。私の最も近いドットBFSは、ゲームが終了する前に少なくともレベル2または3に到達できます。 適切なAIを開発するためのコード、考え、リソースへのリンクを探しています。できれば前の2つです。これを今週末に市場でリリースしたいので、ちょっと急いでいます。どんな助けでも大歓迎です。 参考までに、これは当初StackOverflowに投稿されました
9 java  ai  path-finding 

3
フレームレートがオブジェクトの速度に影響しています
私はJavaでゼロからゲームエンジンを構築する実験をしており、いくつか質問があります。私のメインゲームループは次のようになります。 int FPS = 60; while(isRunning){ /* Current time, before frame update */ long time = System.currentTimeMillis(); update(); draw(); /* How long each frame should last - time it took for one frame */ long delay = (1000 / FPS) - (System.currentTimeMillis() - time); if(delay > 0){ try{ Thread.sleep(delay); }catch(Exception …

3
ランダムゼルダスタイルのマップ生成
ドアで接続された部屋のマップをランダムに生成しようとしていますが、このコードを使用してマップを生成することに成功しました。 public void generate(GameContainer gc) { rooms = new ArrayList<Room>(); startingRoom = new Room(0); startingRoom.setPosition(viewport.getCenterX(), viewport.getCenterY()); lastRoom = startingRoom; rooms.add(startingRoom); int roomsize = 25; for (int i = 0; i <= (1000 + Math.random() * 4000); i++) { Room room = new Room(i + 1); int direction = (int) (Math.random() …

1
Box2D WorldCenterと位置の違い
そのため、この問題は数日間続いています。まず、言うBody.getWorldCenter()とBody.getPosition()の違いは何ですか。WorldCenterは重心か何かに関係があるかもしれないと聞いた。 次に、スプ​​ライトのBox2Dボディを作成すると、ボディは常に左下隅にあります。box.getWorldCenter()の周りに1ピクセルの長方形を印刷して確認します。ボディがスプライトの中央にあり、バウンディングボックスがスプライトを包み込む必要があると私が理解していることから、正しいですか? これが私が何を意味するかのイメージです(The Sprite is Red、Body Blue): ここにいくつかのコードがあります: ボディクリエーター: public static Body createBoxBody( final World pPhysicsWorld, final BodyType pBodyType, final FixtureDef pFixtureDef, Sprite pSprite ) { float pRotation = 0; float pCenterX = pSprite.getX() + pSprite.getWidth() / 2; float pCenterY = pSprite.getY() + pSprite.getHeight() / 2; float pWidth = pSprite.getWidth(); …

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