2011-03-12 15 views
5

GUIデザインになるたびにWebゲームをJavaで作成してトラブルを抱えますが、通常は他のコードを見てデザインのほとんどをコピーしています。つかいます。私はアプレット、キャンバス、JFrameを使用しました。私が必要とするのは、メインループと、異なるゲーム間で変化する描画機能です。だから、どんなクラスを使うべきですか、どのデザインが良いですか、なぜ、有用なチュートリアルやサンプルにリンクしているのでしょうか?あなたの提案を説明してください。ありがとう。Webアプレットのゲームデザイン

答えて

4

あなたの場合あなたがチェックする必要がありますいくつかのコードを解剖したい場合Killer Game Programming in Java

それは今は古いライブラリを使用しても、それは良い本です。私は数年前にそれを買った。あなたがそれを購入したくない場合でも、Webサイトからすべてのソースコードをダウンロードすることができます。

アプレットまたはJava Web Startの使用を簡単に抽象化できます。選択すると、私はJWSに行きます。純粋に、デバッグするために開発環境をセットアップする方が簡単だからです。

これらの2つのリンクがJFrameののVキャンバスを使用する方法を示しています

  1. JFrameのhttp://download.oracle.com/javase/tutorial/uiswing/components/frame.html

  2. キャンバスhttp://en.wikibooks.org/wiki/Java_Programming/Canvas

1

JPanelを含むJFrameを使用してアプリケーションを開発します。

ウェブにアクセスする準備が整ったら、java web startを使用してJFrameを起動できます。

私はSunのJavaチュートリアルを使用しており、非常に効果的でした。

+0

http://stackoverflow.com/tags/java-web-start/info –

+0

なぜアプレットまたはキャンバスではないですか?いくつかのリンクを表示できますか? – Vladp

2
  • アプレット(またはJApplet)はWebページに埋め込まれているため、ブラウザから与えられたスペースのみがあります。ページが表示されている間はそこにとどまります。
  • 適切な(J)フレームは独自のウィンドウです。したがって、ウィンドウシステム(および画面サイズ)が可能な限り大きくなり、ブラウザページ(およびその中のアプレット)を閉じることなく閉じることができます。

これは主な違いです。自分のキャンバス(AWT用)またはJPanel(Swing用)で図面を作成し、これを(J)アプレットまたは(J)フレーム内に配置することで、決定するまで両者の差を抽象化することができます。

0

ゲームをアプレット(JApplet)またはJFrameベースのアプリケーションとして操作できるラッパークラスを作成できます。

次に、すべてのゲーム固有のコードをJAppletまたはJFrameの子として追加されたJPanelに書きます。以前にCanvasを使用したのと全く同じ方法でJPanelを使用することができます。以下

サンプルコード:

import javax.swing.JApplet; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 

public class AppletApp extends JApplet { 

    public void init() { 
     // do any applet-specific initialisation here 
     getContentPane().add(new AppPanel()); 
    } 

    private static final class AppPanel extends JPanel { 
     public AppPanel() { 
      // do any common initialisation here 
      add(new JButton("Hello World!")); 
     } 
    } 

    public static void main(String[] args) { 
     // do any frame-specific initialisation here 
     JFrame f=new JFrame("Frame"); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     AppPanel appPanel=new AppPanel(); 

     f.getContentPane().add(appPanel); 
     f.pack(); 
     f.setVisible(true); 
    } 
} 

明らかにこれは単なるおもちゃの一例である - 通常、あなたは別のクラスファイルなどにごAppPanelを分離したいと思います.....

0

パウロEbermann独自のキャンバスを開発言ったようにまたはその他のコンポーネント表示のためのtは最良のアプローチです(私の意見によると)。

どのコンポーネントを選択するかは、選択したライブラリによって異なります。 Java2D標準のJavaコンポーネントを使用して開発するだけで十分です。 LWJGL、JOGL、または他のライブラリに切り替えると、彼らはしばしば独自のコンポーネントを提供します。

特に、JOGLはAnimatorと呼ばれるスレッドによって駆動されるため、ゲームループを実装するための具体的な方法も提供します。あなたのデザインをJOGLと互換性を持たせたいなら、あなたのゲームループをこのスレッドと互換性を持たせる必要があります。

関連する問題