在Java中执行之前是否要先执行一个if语句?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在Java中执行之前是否要先执行一个if语句?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1306字,纯文字阅读大概需要2分钟。
内容图文
![在Java中执行之前是否要先执行一个if语句?](/upload/InfoBanner/zyjiaocheng/654/0a090e8a44e74ea5b888f61faa193502.jpg)
我试图让Java等待1秒钟,然后评估一条if语句以查看它是否应该更改一个布尔值.
我设置了它,如果Rectangle r与Rectangle y相交,则布尔“ Intersect”变为true,并且r向后移动. 1秒后,我要执行if语句来检查r是否仍与y相交.如果不是,则“相交”再次变为假,并且r停止向后移动.我怎样才能做到这一点?这些语句位于同一线程中,并且涉及动画,因此Thread.sleep()不能正常工作,因为它使动画非常跳跃.
以下是与问题相关的代码片段:
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
public class Game extends JFrame {
boolean p1Intersect=false;
private class Move1 extends Thread {
public void run() {
if((p1horizontal.intersects(grass1)&&(hleft==true||hright==true)&&p1Intersect!=true) { //Normal speed
p1Speed = 5;
}
if(p1horizontal.intersects(edge2)&&hleft==true) { //moves backwards after collision as long as p1Intersect = true
p1Speed=-4;
p1Intersect=true;
}
if((p1horizontal.intersects(edge2)&&hleft==true)==false) { //This is the statement that I would like to wait for 1 second before executing
p1Intersect=false;
}
解决方法:
在游戏设计中,尝试将逻辑保持在主线程中(也就是说,我将避免使用计时器).我建议以下解决方案:
当检测到相交时,将系统时间存储在较长的时间,
使用长的intersectTime = System.currentTimeMillis().
现在,在第二个if语句中,只需检查额外条件
System.currentTimeMillis()-intersectTime> 1000
因为1000毫秒= 1秒.
内容总结
以上是互联网集市为您收集整理的在Java中执行之前是否要先执行一个if语句?全部内容,希望文章能够帮你解决在Java中执行之前是否要先执行一个if语句?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。