摘要: 摘自:http://site.douban.com/widget/notes/7736245/note/210261658/Robocode/游戏物理现在我们来了解Robocode的一些物理参数。坐标系统:Robocode采用了笛卡尔坐标系统,也就是我们最常用的左下角为(0,0)点。这与通常的java与c++编程有所区别。方向约定:【绝对方向系】:Robocode中不管机器人在哪个方向都是以静态战场屏幕为参照物的绝对角度(Heading),正上方为0度角。即是向北为0,向东为90,向南为180,向西为270。【相对方向系】:相对方向是以机器人的动态heading角度为参照物的角度差,不再以整个 阅读全文
posted @ 2012-06-18 23:21 KeenLeung 阅读(656) 评论(0) 推荐(0) 编辑
摘要: 摘自:http://site.douban.com/widget/notes/7736245/note/210034982/游戏规则:生命规则:相撞损失:撞到墙时,生命点损伤度=Math.abs (velocity) * 0.5 -1。撞到另一个坦克时,移动停止,生命点损失6点,扣除积分1.2分。击中损失:当子弹能量为1时,我们生命点损失=4 * power,如果子弹能量大于1,那么我们的生命损失+= 2 * (power-1)。发射损失:如果我们的子弹打中别的坦克,我们可以从子弹那窃取到3*power的能量。炮弹规则:子弹能量:子弹能量是通过凼数getPower()得到的。它大于等于0.1, 阅读全文
posted @ 2012-06-18 23:19 KeenLeung 阅读(660) 评论(0) 推荐(0) 编辑
摘要: 摘自:http://site.douban.com/widget/notes/7736245/note/210064112/从这开始,我们将系统地学习Robocode,从原理到内容。首先,我们来认识一下我们的小robotRobo机器剖析一个机器人坦克包括以下3个部分: 机身(Body) –机身上面载着大炮和雷达。可以控制机身前进和后退, 左转以及右转。 大炮(Gun) -安装在机身上用来发射炮弹的部件.可以左转和右转。 雷达(Radar )-安装在枪上用来扫描敌方坦克的部件,可以左右旋转扫描。当扫描到敌方坦克时会触发onScannedRobot 事件。涉及到的三个方法:void setA 阅读全文
posted @ 2012-06-18 18:40 KeenLeung 阅读(664) 评论(0) 推荐(0) 编辑
摘要: 摘自:http://site.douban.com/widget/notes/7736245/note/210029011/你需要准备的东西:1.c语言的知识和一点点的java知识,robocode意在学习java,不要要太深的java水平,你只要理解java和c的区别就可以了。2.robocode API,这个以后会经常用到,几乎不能离开,相当于方法字典,robocode的所有方法都在里面。下载地址:http://115.com/file/e765xcsb#javadoc.zip网页版:http://robocode.sourceforge.net/docs/robocode/好了,兴趣是最 阅读全文
posted @ 2012-06-18 01:26 KeenLeung 阅读(2666) 评论(0) 推荐(0) 编辑
摘要: 摘自:http://site.douban.com/widget/notes/7736245/note/210019642/Robocode 的安装系统安装最小环境要求:CPU:Pentium2/400MHz以上内存:64MB以上硬盘:10M以上对硬件要求也不是完全绝对的,你用小的机器配置,带来的是比较慢的运行速度。当然具备以上硬件条件后,还要具有Java运行环境,需Java JDK 1.3以上,如果您没有安装JDK,去Java.sun.com下载/并正确安装配置J2SDK.安装Robocode前请到http://robocode.alphaworks.ibm.com/home/home.ht 阅读全文
posted @ 2012-06-18 00:56 KeenLeung 阅读(1236) 评论(0) 推荐(0) 编辑
摘要: 摘自:http://www.iplaysoft.com/robocode.htmlRobocode(用游戏来学习Java技术还是用Java来玩游戏?)用你的JAVA编程技术来玩游戏吧!不会JAVA?那就用游戏来学习JAVA吧!什么是Robocode?其实我对机器人一直很感兴趣。我记得在我还是初中的时候,就知道 AplleⅡ上有一个程序,用它来编写简单的机器人程序,然后相互作战。当时自己还完全不懂编程,总是向往着,那神秘的编程高手玩的游戏是怎样的?Robocode就是这样一个东西,但是更好一些。它是一个基于Java语言的机器人作战游戏。 其代码的编写和建模都不错,玩起来也很有趣。Robocode 阅读全文
posted @ 2012-06-17 01:04 KeenLeung 阅读(652) 评论(0) 推荐(0) 编辑
摘要: 1 //利用FontMetrics类居中 2 import javax.swing.*; 3 import java.awt.*; 4 public class TestCenterMessage extends JFrame{ 5 public TestCenterMessage(){ 6 CenterMessage messagePanel = new CenterMessage(); 7 add(messagePanel); 8 messagePanel.setBackground(Color.WHITE); 9 messa... 阅读全文
posted @ 2012-05-31 01:02 KeenLeung 阅读(11133) 评论(0) 推荐(0) 编辑
摘要: 练习1:View Code 1 1 import javax.swing.*; 2 2 import java.awt.*; 3 3 import java.awt.event.*; 4 4 public class MyWindowEvent 5 5 { 6 6 private Frame f; 7 7 private Button bt; 8 8 private TextField tf; 9 9 private TextArea ta;10 10 public MyWindowEvent()11 11 {12 12 i... 阅读全文
posted @ 2012-05-28 00:45 KeenLeung 阅读(1291) 评论(0) 推荐(0) 编辑
摘要: addKeyListenerpublic void addKeyListener(KeyListener l)添加指定的按键侦听器,以接收发自此组件的按键事件。如果 l 为 null,则不会抛出异常并且不执行动作。java.awt.event 接口 KeyListener用于接收键盘事件(击键)的侦听器接口。旨在处理键盘事件的类要么实现此接口(及其包含的所有方法),要么扩展抽象 KeyAdapter 类(仅重写有用的方法)。然后使用组件的 addKeyListener 方法将从该类所创建的侦听器对象向该组件注册。按下、释放或键入键时生成键盘事件。然后调用侦听器对象中的相关方法并将该 KeyEv 阅读全文
posted @ 2012-05-27 23:31 KeenLeung 阅读(77361) 评论(0) 推荐(3) 编辑
摘要: addMouseListenerpublic void addMouseListener(MouseListener l)添加指定的鼠标侦听器,以接收发自此组件的鼠标事件。如果侦听器 l 为 null,则不会抛出异常并且不执行动作。java.awt.event 接口 MouseListener用于接收组件上“感兴趣”的鼠标事件(按下、释放、单击、进入或离开)的侦听器接口。(要跟踪鼠标移动和鼠标拖动,请使用 MouseMotionListener。)旨在处理鼠标事件的类要么实现此接口(及其包含的所有方法),要么扩展抽象类 MouseAdapter(仅重写所需的方法)。然后使用组件的 addMou 阅读全文
posted @ 2012-05-27 23:26 KeenLeung 阅读(57334) 评论(0) 推荐(4) 编辑
摘要: addActionListenerpublic void addActionListener(ActionListener l)添加指定的动作侦听器,以接收发自此按钮的动作事件。当用户在此按钮上按下或释放鼠标时,发生动作事件。如果 l 为 null,则不抛出任何异常,也不执行任何动作。java.awt.event 接口 ActionListener方法摘要 voidactionPerformed(ActionEvent e) 发生操作时调用。 ——摘自:JDK6API例子:使按钮具有关闭窗口的功能 1 import javax.swing.*; 2 import ja... 阅读全文
posted @ 2012-05-27 23:15 KeenLeung 阅读(101219) 评论(4) 推荐(0) 编辑
摘要: WindowAdapter类:1.接收窗口事件的抽象适配器类。此类中的方法为空。此类存在的目的是方便创建侦听器对象。2.扩展此类可创建 WindowEvent 侦听器并为所需事件重写该方法。(如果要实现 WindowListener 接口,则必须定义该接口内的所有方法。此抽象类将所有方法都定义为 null,所以只需针对关心的事件定义方法。)3.使用扩展的类可以创建侦听器对象,然后使用窗口的 addWindowListener 方法向该窗口注册侦听器。当通过打开、关闭、激活或停用、图标化或取消图标化而改变了窗口状态时,将调用该侦听器对象中的相关方法,并将 WindowEvent 传递给该方法。4 阅读全文
posted @ 2012-05-26 22:43 KeenLeung 阅读(23873) 评论(1) 推荐(5) 编辑
摘要: 1 //设计图像图标 2 import javax.swing.*; 3 import java.awt.*; 4 public class TestImageIcon extends JFrame 5 { 6 private ImageIcon icon1 = new ImageIcon("ToolImages/20.gif");//"ToolImages/20.gif"为该project文件夹下的路劲 7 private ImageIcon icon2 = new ImageIcon("ToolImages/21.gif"); 8 阅读全文
posted @ 2012-05-26 11:30 KeenLeung 阅读(752) 评论(0) 推荐(0) 编辑
摘要: 1 import javax.swing.*; 2 import java.awt.*; 3 import javax.swing.border.*; 4 public class TestSwingCommonFeatures extends JFrame 5 { 6 public TestSwingCommonFeatures() 7 { 8 JPanel p1 = new JPanel(new FlowLayout(FlowLayout.LEFT,2,2));//创建一个面板,使用流布局 9 JButton jbtLeft = new J... 阅读全文
posted @ 2012-05-26 11:00 KeenLeung 阅读(765) 评论(0) 推荐(0) 编辑
摘要: 1 import java.awt.*; 2 public class GetLocalFontFamily 3 { 4 public static void main(String[] agrs) 5 { 6 //获取系统中可用的字体的名字 7 GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment(); 8 String[] fontName = e.getAvailableFontFamilyNames(); 9 for... 阅读全文
posted @ 2012-05-25 00:23 KeenLeung 阅读(6113) 评论(0) 推荐(0) 编辑