关于java线程的问题 本帖最后由 lidawn 于 2013-01-30 10:33:36 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是用Swing做的吗,如果是建议用Timer这么个类,不用创建线程。 嗯 这是电脑tank 因为是自动的而且不止一辆 所以做成了线程 是否添加个变量 比如 i=0 每次坦克转一次 就说明过去1s 则i++ 如果 i%4==0则fire 取决于你的整个游戏架构。如果你禁用了 Swing 自身的重绘机制,自己另外实现了单线程队列的 FPS(Frame Per Sedond) 机制,那你可以精确控制每一帧做什么,设计一个“毫秒表”的类,检测1000ms和4000ms就行了。如果你用了 Swing 自带的机制,那就用 javax.swing.Timer,你可以用单独的 Timer 来专门控制变向和开火,但是更好的机制大概是整个游戏只用一个 Timer,虽然不是严格的 FPS 但是跟FPS类似,Timer 以很高的频率执行两个方法:- update model- repaint view其中 update model 的时候可以去检查所有坦克的“毫秒表”距上次转向/开火过了多少时间,是不是应该转向/开火了。网上很多视频教程里教的用 Swing 做游戏是错的,很多用了 Thread/Runnable,然后在后台线程里直接更改model里的数据,至少是线程不安全。做这种游戏,几乎可以说你用了多线程就已经错了。 我以前在Swing做动画就是用这个javax.swing.Timer这个类的,很好用的,而且容易控制。 而且保证了线程安全,符合EDT规范。使用正确的API工具的好处还有: API的提供者会尽可能保证它的时间精度,不用你自己操心。 高手能给我解决一个图片抗锯齿的问题吗?我的问题的是这样的,在JPanel上画一张图片,然后旋转图片,发现旋转到一定角度之后,图片的四边有锯齿 , 怎么解决?网上说的g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);这个方法不行效果不明显。好像只能处理文本的锯齿 你刚刚贴问题我就看到了因为自己没搞过图片旋转所以回答不了……http://www.jhlabs.com/ip/filters/你可以试试这里面的 RotateFilter classpath问题 Java 怎么生成双击可以直接运行的程序啊 下面的方法swap为什么无法交换实际参数的值?(王晓东版课后题) 如何把ArrayList转为byte[]数组 关于swing的小问题 str .append(ch) 中append 是什么用的 高分请教:如何在java中读取Foxpro生成的dbf文件?最好给点源码,谢了先! 请高手指点:JCreator如何配置?(50分求助) 如何正确的将字符转换为byte数组?? 请各位高手指点一下该怎么作?(200分送上) 多个线程操作同一个文件是否需要同步 java如何抽取指定范围的随机数
嗯 这是电脑tank 因为是自动的而且不止一辆 所以做成了线程
- repaint view其中 update model 的时候可以去检查所有坦克的“毫秒表”距上次转向/开火过了多少时间,是不是应该转向/开火了。网上很多视频教程里教的用 Swing 做游戏是错的,很多用了 Thread/Runnable,然后在后台线程里直接更改model里的数据,至少是线程不安全。做这种游戏,几乎可以说你用了多线程就已经错了。
而且保证了线程安全,符合EDT规范。使用正确的API工具的好处还有: API的提供者会尽可能保证它的时间精度,不用你自己操心。
我的问题的是这样的,在JPanel上画一张图片,然后旋转图片,发现旋转到一定角度之后,图片的四边有锯齿 , 怎么解决?网上说的g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);这个方法不行效果不明显。好像只能处理文本的锯齿
你刚刚贴问题我就看到了
因为自己没搞过图片旋转所以回答不了……http://www.jhlabs.com/ip/filters/
你可以试试这里面的 RotateFilter