ゲームプログラミングとはその名のとおりゲームのプログラムを作ることを指します。『Javaから楽しく学ぶ!ゲームプログラミング専門学校』ではゲームプログラミングについて、実際にゲームプログラムをJAVAプログラミング言語を使用し、作成していきながら詳しく解説していきます。
wait()
他のスレッドがこのオブジェクトのnotify() メソッドまたは、
notifyAll()メソッドを呼び出すまで、現在のスレッドを待機させます。
notify()
wait()メソッドによって待機中であるスレッドの1つを再開します。
再開するスレッドは、Java仮想マシンによって任意に選ばれ、
プログラム側から指定することはできません。
notifyAll()
wait()メソッドによって待機中であるすべてのスレッドを再開します。
import java.applet.*;
import java.awt.Graphics;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
public class WaitSample extends Applet implements Runnable, MouseListener{
private Thread th;
private int width;
private int height;
private int count;
private String countString = "";
public void init(){
width = getSize().width; //Javaアプレット画面横幅サイズ取得
height = getSize().height; //Javaアプレット画面縦幅サイズ取得
addMouseListener(this); //マウスイベントを受け取り準備
}
public void start(){
count = 0;
th = new Thread(this);
th.start();
}
public void mouseClicked(MouseEvent e){
}
public void mouseEntered(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
public void mousePressed(MouseEvent e){
this.reStart();
}
public void mouseReleased(MouseEvent e){
}
synchronized public void reStart(){
notifyAll();
}
synchronized public void addCount(){
count++;
try{
wait();
}catch(Exception e){}
}
public void run(){
for(int i = 0; i < 5; i++){
addCount();
repaint();
}
countString = "スレッド終了";
}
public void paint(Graphics g){
g.drawString("" + count, 50,50);
g.drawString(countString, 20,60);
}
}
synchronized public void addCount(){
count++;
try{
wait();
}catch(Exception e){}
}
synchronized public void reStart(){
notifyAll();
}