私は、複数の結果を持つ自分自身で選ぶプロジェクトを選択しています。私がやろうとしていることの1つは、短時間の制限内でボタンをクリックするか、殺さなければならないクイックタイムイベント(QTE)やゲーム内のイベントを組み込むことです。この場合、私は、時間が来ると、ゲームが「突然あなたの右から来る蹄の鳴りを聞く!」と言うようにしています。その時点でGUIのポップアップを行うメソッドが呼び出されますボタンを押すだけで、数秒でボタンをクリックできます。適切な時間内にボタンをクリックすると、ゲームが続行されます(「CRACK !!」で始まります)。そうでない場合、ゲームは終了し、メッセージが印刷されます( 'GAME OVER - あなたはMinotaur Prison Guardによって殺されましたが、GUIをポップアップしないとGame Overメッセージが3回印刷されますsleepLines遅延し、その後「CRACKが!!あなたがすばやく回す...」というメッセージが表示されますここに私のコードです:。JavaでのGUIを使用したクイックタイムイベント
import java.util.Scanner;
import java.awt.Container;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class KCP1Main extends JPanel{
public static JButton AttackButton;
static Scanner myScanner = new Scanner(System.in);
static int quicktimecompletion = 0;
public static void main(String[] args) throws InterruptedException {
//insert leading up to this point here
System.out.println("Suddenly, you hear the clomping of hooves to your right!");
QuickTimeEvent(args);
sleepLines(500,2);
System.out.println("CRACK!!");
sleepLines(1000,1);
scrollText("You quickly turn right, swinging your metal pole at the same time... it swings into the head of ");
scrollText("a minotaur that was charging towards you, with enough force to knock him out.");
}
}
public static void QuickTimeEvent(String[] args) throws InterruptedException
{
for(int timer=0 ; timer<3 ; timer++){
ButtonHandler handler = new ButtonHandler();
AttackButton = new JButton("<!");
//static add(AttackButton);
AttackButton.addActionListener(handler);
sleepLines(1000,1);
if(quicktimecompletion == 1)
{
break;
}
if(timer > 3);
{
System.out.println("GAME OVER");
System.out.printf("You were slain by a Minotaur Prison Guard.");
}
}
}
public static class ButtonHandler implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
if (event.getSource() == AttackButton)
{
quicktimecompletion = 1;
}
}
}
public static void scrollText(String message) throws InterruptedException{
for(int i = 0; i < message.length(); i++)
{
System.out.print(message.charAt(i));
Thread.sleep(62);
}
System.out.print("\n");
}
public static void JPanel(String[] args){
JFrame theGUI = new JFrame();
theGUI.setTitle("Incoming!");
KCP1Main makeButtons = new KCP1Main();
theGUI.add(makeButtons);
theGUI.setSize(300, 200);
theGUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
theGUI.setBackground(Color.red);
Container pane = theGUI.getContentPane();
theGUI.setVisible(true);
}
public static void sleepLines(int duration, int lines) throws InterruptedException{
for(int i=0; i < lines; i++){
Thread.sleep(duration);
System.out.println("");
}
}
}
として
が、これはチュートリアルを読むために急いのあまりに誰かが作成した意識コードの乱数ストリームのように見えます。私の助言を取り、このコードをすべて削除し、使用したいGUIライブラリを選択してください。それはSwingまたは最近のJavaFXです。次に、ライブラリで複雑なプログラムを作成する前にチュートリアルを最初に調べてください。あなたがこれに従うなら、あなたは自分自身(そして私たち)に多くの悲しみを救うでしょう。 –