我正在尝试创建一个蛇游戏,我使用箭头键或WASD移动蛇。最初,蛇的速度很慢,并且以每秒2帧的速度移动(就像经典的蛇游戏),我希望当我按住其中一个键时,蛇的移动速度更快,当我松开它时,将其设置为原始速度。
我试着在按下ON键的情况下改变移动速度:
scene.setOnKeyPressed(event -> {input = event.getCode().toString();
for (String acceptedKey : acceptedKeys) {
if (event.getCode().toString().contains(acceptedKey)) {
movement.setRate(4);
break;
}
}
});
然后在我发布时将其更改为正常速率:
scene.setOnKeyReleased(event -> movement.setRate(1));
*运动是一条时间线,从游戏开始到蛇停止或死亡。
代码按我的预期工作,但每次我按下一个键时,它都会加速一个周期,然后变慢。我希望速度只有在我按住一个键一段时间(比如400毫秒)时才会改变,所以有没有办法我可以放一个if语句来检查onKeypress()的持续时间?
与其在监听器中处理这种复杂的逻辑,不如设置一个布尔标志,当按下某个键时,该标志会被打开。
scene.setOnKeyPressed(event -> {input = event.getCode().toString();
for (String acceptedKey : acceptedKeys) {
if (event.getCode().toString().contains(acceptedKey)) {
acceptedKeyBeingPressed = true;
break;
}
}
});
scene.setOnKeyReleased(event -> acceptedKeyBeingPressed = false);
然后,当按下标志acceptedKeyPressed
为true
时,使用某种numtickshold
变量跟踪时间。
检查每个勾号上的acceptedKeyPressed
是否为真。当按下acceptedKeyPressed
为false
时,将numtickshold
变量重置为0。如果为真
,则增加1。如果numtickshold
高于某个阈值,移动。设置速率(4)
。
我不知道tick/update方法在您的框架中是什么样子的,但它应该是这样的:
public void tick() {
if(acceptedKeyPressed) {
numTicksHeld++;
if(numTicksHeld > KEY_HELD_THRESHOLD)
movement.setRate(4)
} else {
numTicksHeld = 0;
movement.setRate(1)
}
}
我试图用libgdx做一个游戏,但有一个问题。我已经找得很好了,但我找不到解决办法。
问题内容: 我正在寻找Play 2.0持续集成设置的想法。它会包含典型的工作,例如在git push之后进行构建,每晚进行部署并部署到测试Heroku实例等。此外,代码质量和测试覆盖率指标的生成也很方便。 目前,堆栈看起来像带Java的Play 2.0,但可能会更改为Scala。 对于“传统” Java Web应用程序,我将使用Hudson / Jenkins。我找到了适用于Play的Hudson
如何在同一个字母中设置助记符解析。在我的项目中,在button中设置助记符,但button<code>setText</code>在每个事件操作中都会发生变化,但在<code>_o</code>中助记符是相同的,但短键只在一个事件中起作用。如何解决这个问题 抱歉,我的< code >英语
问题内容: 为了测试并发的goroutine,我在函数中添加了一行代码,以使其花费随机的时间返回(最多一秒钟) 但是,当我编译时,出现此错误 。\ crawler.go:49:无效操作:rand.Int31n(1000)* time.Millisecond(int32和time.Duration类型不匹配) 有任何想法吗?如何乘以持续时间? 问题答案: 和是不同的类型。您需要将转换为,例如。
我需要创建3个如下所示的表 学生(SID:CHAR(12),SNAME:VARCHAR(50),BDATE:日期,地址:VARCHAR(50),SCITY:VARCHAR(20),年份:CHAR(20),GPA:FLOAT) 公司(CID:CHAR(8),CNAME:VARCHAR(20)) 应用(SID:CHAR(12),CID:CHAR(8)) (粗体属性为主键) 但是我不确定如何设置外键,因
问题内容: 在我的组织中,我们有200多个Microsoft桌面和Web应用程序。我正在尝试为那些应用程序设置持续集成和持续部署(我已经为Java应用程序做过)。我们已经在企业Github,Jenkins,Nexus,XL- Deploy和XL- Release中使用了以下工具。我们还开发了Groovy的框架,该框架由Jenkins调用,并在Jenkins中分配了所有自动创建的工作,并将生成的工件