したがって、1 つのスレッドで常に「ゴールド」の量を更新し、もう 1 つのスレッドでゲームを実行する必要があります。
問題は、カーソルがそれぞれに変更されていることです。最初は、スリープと同期していないことで修正しましたが、ユーザーにテキストを入力させたいときに、最初の行に移動します。誰でもこれを修正する方法を知っていますか?
import java.awt.*;
import java.lang.*;
import java.util.*;
import java.awt.Color;
import hsa.Console;
public class Money {
public static long gold = 0;
public static long rate = 1;
public static void main(String args[]) {
Console con = new Console (41, 100);
ThreadTest test1 = new ThreadTest();
ThreadTest2 test2 = new ThreadTest2();
test1.setConsole(con);
test2.setConsole(con);
test1.start();
test2.start();
}
}
public class ThreadTest extends Thread {
Console c;
public void setConsole(Console con) {
c = con;
}
public void run() {
try {
sleep(900);
} catch (InterruptedException e) {
}
c.println("Welcome to the world of grind\nThe goal of the game is to amass money and get stuff!\nWhat would you like to do?\n\n<q>uest | <s>hop | <i>nventory");
c.setCursor(5,1);
String choice = c.readString();
}
}
public class ThreadTest2 extends Thread {
Console c;
public void setConsole(Console con) {
c = con;
}
public void run(){
do
{
Money.gold = Money.gold + 1*Money.rate;
c.setCursor(1,1);
c.print("You currently have: " + Money.gold + " gold");
try {
sleep(1000);
} catch (InterruptedException e) {
}
}
while (true);
}
}