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

标签 java event-handling

我已经处理这个问题好几天了,我在互联网上搜索并尝试了我想到的所有方法,但没有任何效果。我的问题是我正在制作一个 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/

相关文章:

ios - 如何记录 UIControlEvents?

java - 使用 UiBinder 构建的 GWT 应用程序的本地化在托管模式下不起作用

java - 无法在Android中同一类中的方法之间传递值

java - MyBatis with Spring - 配置错误空指针异常

java - Process.getOutputStream() 不起作用?

javascript - 单击 div 内的链接触发 div 的 onclick

c# - 在创建 silverlight 页面期间触发的最后一个事件是什么

Javascript dispatchEvent - 如何更改 eventArgs

jquery - 从触发另一个元素事件的单击元素中检索数据属性

java - Mahout 推荐器返回空结果