Simon game을 만들려고합니다. 게임을 프로그래밍하는 중반이지만 문제가 있습니다. 이전에 게임에 있던 모든 값을 QUEUE에서 읽은 다음 올바른 순서로 색상을 깜박 거리게하고 싶습니다 (회색으로 바꾸고 두 번째로 정상으로 되돌리기로 결정했습니다). 이것이 내 문제입니다. play()
메서드를 보면 거기에 쓴 주석이 표시됩니다. 어떻게해야합니까?두 줄의 코드 지연 - 그래픽
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.geom.Arc2D;
import java.util.Date;
import javax.swing.JPanel;
import javax.swing.Timer;
import unit4.collectionsLib.Queue;
public class window extends JPanel implements MouseListener , ActionListener{
Queue <Integer>data = new Queue<Integer>();
Queue <Integer>temp = new Queue<Integer>();
int random;
Timer prestart;
int prestartcount;
Color [] colors = {Color.red,Color.blue,Color.yellow,Color.green};
public window(){
prestart = new Timer (1000,this);
int prestartcount=0;
prestart.start();
}
public void play(){
random = (int)(Math.random()*4);
data.insert(random);
int x=0;
Color temp=Color.black;
x = data.remove();
this.temp.insert(x);
temp = colors[x];
colors[x]=Color.gray;
// delay of one second here
colors[x]=temp;
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(colors[0]);
g.fillArc(80, 150, 250, 250, 0, 360);
g.setColor(colors[1]);
g.fillArc(80, 150, 250, 250, 0, 270);
g.setColor(colors[2]);
g.fillArc(80, 150, 250, 250, 0, 180);
g.setColor(colors[3]);
g.fillArc(80, 150, 250, 250, 0, 90);
g.drawString(prestartcount+"", 0, 30);
repaint();
}
@Override
public void mouseClicked(MouseEvent arg0) {
arg0.getLocationOnScreen();
}
@Override
public void mouseEntered(MouseEvent arg0) {
}
@Override
public void mouseExited(MouseEvent arg0) {
}
@Override
public void mousePressed(MouseEvent arg0) {
}
@Override
public void mouseReleased(MouseEvent arg0) {
}
@Override
public void actionPerformed(ActionEvent act) {
if (act.getSource()==prestart){
if (prestartcount<3)
prestartcount++;
else{
prestart.stop();
play();
}
}
}
}
1) 더 빨리 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. 2) 테스트 코드에서도 수업에 의미있는 이름을 사용하십시오. 'SimonGameTest'와 같은 것이 이것에 적절할 수도 있습니다. 3) 클래스에 대한 일반적인 [Java 명명 규칙 (Java 命名 規則)] (http://java.sun.com/docs/books/books/books/jls/second_edition/html/names.doc.html#73307) (특히 이름에 사용 된 사례)을 배우십시오. , 메소드 및 속성 이름 및 일관되게 사용하십시오. 4) 코드 블록에 일관성 있고 논리적 인 들여 쓰기를 사용하십시오. –