gpt4 book ai didi

java - 暂时禁用窗口的鼠标输入

转载 作者:行者123 更新时间:2023-12-02 06:55:49 24 4
gpt4 key购买 nike

我最近开始使用 Java 编程,并决定开始制作游戏,作为让自己接触一些新概念和方法的一种方式。该游戏是一款简单的 2D 回合制策略游戏(或者将会是),我一直在努力解决的一个主要问题如下:

我希望所有玩家同时分配他们的订单,当他们完成分配他们的订单时,他们提交/确认/提交他们的订单,但是当我让游戏功能接受订单,并且有一个非常简单的“提交”命令时,我似乎不知道如何在游戏移动玩家单位时暂时禁用用户输入。

我认为问题可能出在下面的代码中,如果代码没有以正确的格式出现,我提前道歉(我之前没有发布过问题,但我尝试过):

if(Canvas.keyboardKeyState(KeyEvent.VK_SPACE)){
isUnderway=true;
timeStarted=System.currentTimeMillis();
}
if (isUnderway&&System.currentTimeMillis()>=timeStarted + turnTimeMillis){
isUnderway=false;
}
if(Canvas.mouseButtonState(MouseEvent.BUTTON1)){
targetlocationy=((mousePosition.y-25)/50)*50;
targetlocationx=((mousePosition.x-25)/50)*50;
}
totargetx = targetlocationx - x;
totargety = targetlocationy - y;
dist = Math.hypot( totargetx, totargety );

if(isUnderway){
if ( dist <= 5 ){
x = targetlocationx;
y = targetlocationy;
}
else{
x += totargetx * ( 2 / dist );
y += totargety * ( 2 / dist );
}
}

我尝试更改用于设置 targetlocation[x,y] 的 if() 条件,将其变为:

if(Canvas.mouseButtonState(MouseEvent.BUTTON1)&&isUnderway=false)

以及它的几种变体。但该代码似乎无法操作,我猜它会在 isUn​​derway=true 时转储 targetlocation[x/y],将它们重置为默认值(该片段的当前位置) ),但是当未按住 BUTTON1 时它不会转储 targetlocation[x/y],因此解释没有多大意义。

目前,此代码按预期运行,但无法在提交订单后更改目标位置值。

编辑:此方法(及其所在的类)将 AWT 用于 GUI。

最佳答案

在 SWING 中,这正是 glass panes是为了。

关于java - 暂时禁用窗口的鼠标输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17382442/

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