gpt4 book ai didi

java - 如何在循环(循环)运行的程序中处理事件?

转载 作者:行者123 更新时间:2023-12-01 09:09:27 26 4
gpt4 key购买 nike

我已经处理这个问题好几天了,我在互联网上搜索并尝试了我想到的所有方法,但没有任何效果。我的问题是我正在制作一个 pexeso 游戏,我们有一些直接来自学校的附加库或类似的东西,它允许我们绘制一些图片而不是仅使用 comad 线...(我们还没有图形)所以我的问题是我的游戏正在循环运行并等待我的点击,我正在检查是否进行了点击。如果我想单击,我必须在代码中声明一个方法 public void vyberSuradnice(int, int)

所以问题是我的游戏正在循环运行并检查是否进行了点击。但是,当单击时,会执行 vyberSuradnice 方法,并且我将 atrrbiute - cakatNaKlik 的值设置为 false,因此发生了单击并且可以进行游戏的一步..但是由于该函数是循环运行的,那么即使我单击并在方法 vyberSuradnice 中属性的值发生更改,我的函数也是循环运行的不响应该更改,因此游戏不会继续进行。这是点击的方法

 public void vyberSuradnice(int paSuradnicaX, int paSuradnicaY) {
this.riadokOdkry = (paSuradnicaY ) / 25;
this.stlpecOdkry = (paSuradnicaX - 10) / 25;
if (this.riadokOdkry > this.aPocetRiadkov || this.stlpecOdkry > this.aPocetStlpcov) {
System.out.println("Klikli ste mimo hracieho pola ");
} else {
this.cakatNaKlik = false;
}
}

这是我等待 cakatNaklik - false 值的代码部分

同时(uhadol){

 if (!this.cakatNaKlik) {
if (this.pocetUhadnutych >= (this.aPocetRiadkov * this.aPocetStlpcov) / 2) {
uhadol = false;
}
this.hraciaPlocha[this.riadokOdkry][this.stlpecOdkry].setUhadnute(true);

但即使在 vyberSuradnice 方法中更改值,也不会触发此条件。但是当我做这样的事情时:

while (uhadol) {
System.out.print(this.cakatNaKlik);
if (!this.cakatNaKlik) {
if (this.pocetUhadnutych >= (this.aPocetRiadkov * this.aPocetStlpcov) / 2) {
uhadol = false;
}
this.hraciaPlocha[this.riadokOdkry][this.stlpecOdkry].setUhadnute(true);

游戏的工作原理就像是通过编写变量刷新它或其他东西...但是我在命令行上不断地打印 true true 或 false,这是我无法承受的...

我知道这可能是通过线程实现的,但这是我不允许做的事情,而且我基本上试图同时做两件事。

是否还有其他方法可以做到这一点,即使没有 println,变量也会被刷新并且代码也能工作?

非常感谢您的每一次帮助

最佳答案

谢谢大家的帮助,终于解决了。我只是尝试在 if 条件之前放置一个 sleep 。它只需要 hibernate 一毫秒,看起来条件就刷新了,所以它可以工作。

关于java - 如何在循环(循环)运行的程序中处理事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41014996/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com