Javaゲーム
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.KeyEvent.*;
import java.awt.image.BufferStrategy;
import java.awt.Image;
public class sinkeisuijaku extends JApplet implements ActionListener{
int okcnt = 0;
int Imclick[] = new int[2];
int opnImg = 0;
int n = -1;
int sw = -1;
boolean flag = false;
boolean KeySpace;
int indx1 = 0;
int pict1[] = new int[36];
int ch[] = new int[36];
int ran[] = new int[36];
int i,j,y;
int GameTitle = 0;
int GameRuleGamen = 1;
int actionPerformed = 2;
int gamestate;
int scene;
Thread gameThread;
boolean keySpace;
BufferStrategy bstrategy;
Graphics g = bstrategy.getDrawGraphics();
Image ImageIcon;
Image GameTitle,GameRuleGamen;
Image offImage;
int Image1[] = new int[36];
Icon fruit = new ImageIcon("hgi19.gif");
Icon hgif[] = new Icon[18];
JPanel pan1,pan2,pan3;
JButton btn[] = new JButton[36];
JButton sbtn = new JButton("はじめ!!");
JTextField tx = new JTextField("Second");
public void init(){
(以下関係ないので省略)
}
public void start() {
if(gameThread == null) {
gameThread = new Thread(this);
gameThread.start();
}
}
public void run() {
while (true) {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
break;
}
public void stop(){
gameThread = null;
}
public void run(){
while (gameThread == Thread.currentThread()) {
switch (gamestate) {
case 0:GameTitle();
break;
case 1:GameRuleGamen();
break;
}
try {
Thread.sleep(20);
} catch (InterruptedException e) {
break;
}
}
}
public void GameTitle() {
if (keySpace)scene =1;
Graphics gv = offImage.getGraphics();
gv.clearRect(0, 0, 500, 500);
gv.setColor(Color.PINK);
gv.setFont(new Font("SansSerif", Font.BOLD, 28));
gv.drawString("★神経衰弱☆", 25, 180);
gv.setFont(new Font("SansSerif", Font.PLAIN, 22));
gv.drawString("PRESS SPACE KEY!!", 70, 350);
GameTitle = getImage(getDocumentBase(), "fruit.gif");
gv.drawImage(GameTitle, 500, 500, null);
repaint();
}
public void GameRuleGamen() {
if (keySpace) scene = 2;
Graphics gv = offImage.getGraphics();
gv.clearRect(0, 0, 500, 500);
gv.setColor(Color.PINK);
gv.setFont(new Font("SansSerif", Font.BOLD, 28));
gv.drawString("☆ルール説明★", 25, 180);
GameRuleGamen = getImage(getDocumentBase(), "fruit.gif");
gv.drawImage(GameRuleGamen, 500, 500, null);
repaint();
}
public void actionPerformed(ActionEvent e){
(以下関係ないので省略)
}
現在Javaでゲームを作っています。どんなのかを詳しく説明しますと、
タイトル画面(スペースキーを押せば次の画面に切り替わる)
↓
ルール説明画面(スペースキーを押せば次の画面に切り替わる)
↓
ゲーム画面
こんな感じです。
ですが、タイトル画面、ルール説明画面、そしてそれらの画像がなかなか表示されません。
あと実行してみたら…
sinkeisuijaku.java:95: 式の開始が不正です。
public void stop(){
^
エラー 1 個
というエラーが発生しました。
誰か教えていただけないでしょうか?タイトル画面、ルール画面、画像読み込みのプログラムソースと一緒に教えて下さると有難いです。
補足
マシンのメモリを増設するのは無理です。 メモリ使用のロジックも変更できません。 メッセージはJAVAのGCログから出てるものです。 プログラムはわかりません。 ページングとGCの仕組みについてわかりやすく教えてください。 どうして、ページングが発生すると、GCの時間もかかるのでしょうか? JAVAのヒープサイズを大きくすると、何か変わりますか? ふと、思ったのですが、ページングを発生させないのも方法ですよね?