Home>戻る

〜第二章 スケルトン(骨格)作り〜
ではスケルトンを作ってみましょう。簡単な描画をするだけです。


Rpg02.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
// RPG02 スケルトン(骨格)作り
// 2004/07/10

import java.awt.*;
import java.applet.*;

public class Rpg02 extends Applet implements Runnable{
   Image buffer;//イメージバッファ
   Graphics bufferg;//バックバッファ

   //初期化
   public void init(){
      Thread t;
      //スレッドを開始する
      t = new Thread(this);
      t.start();
      
      //バッファを作成する
      Dimension d = getSize();
      buffer = createImage(d.width,d.height);
   }
   
   //実行
   public void run(){
      try{
         //ここがゲームループ
         while(true){
            action();//処理
            input_key();//キー入力
            repaint();//再描画

            //ちょっと休憩(0.01秒)
            Thread.sleep(10);
         }
      }
      catch(Exception e){
      }
   }
   
   //描画更新
   public void update(Graphics g){
      paint(g);
   }

   //描画
   public void paint(Graphics g){
      //バッファのグラフィックコンテキストを取得する
      if(bufferg == null){
         bufferg = buffer.getGraphics();
      }
      
      //バッファを描画する
      Dimension d = getSize();
      bufferg.setColor(Color.white);
      bufferg.fillRect(0,0,d.width,d.height);

      bufferg.setColor(Color.black);
      bufferg.drawString("RPGを作ろう 第二回",20,100);
      //ウインドウを更新する
      g.drawImage(buffer,0,0,this);
   }


   //処理
   public void action(){
      //まだ何もなし
   }

   //キー入力
   public void input_key(){
      //まだ何もなし
   }

}


↓実行結果。白の背景に黒の文字。


26行目の「ゲームループ」と書いているとこがメインです。
ここで処理(action)、キー入力(input_key)、描画(repaint)という順に関数を書いています。
Javaの場合だけ気をつけて欲しいのが、キー入力、描画の関数はJava側で独自に用意されているところです。
このプログラム内でrepaint()はどこでも定義されていませんが、順番としてはupdate()→paint()という順に呼ばれます。
あと、キー入力もイベントで取得できます。input_key()は書いてしまいましたが実は要りません(^^;