用Java写一个地图编辑器
记得媒体在采访C 之父的时候,他说作为程序员,要相信自己能够解决已经理解的任何事情.
换句话说:您可以解决任何问题,只要想得明白
现实问题:开发一个基于地砖的二维游戏的地图编辑器,要求生成两个binary文件,各包含一个二维数组,*.map存放地砖,花花草草什么的.*.item放道具,比如某个点可能会触发一个事件.很简单,随便写.看到这里您已经大致明白程序的整体结构.
计算机语言:java.
要理解事件必须分析
初步来看,地图编辑器:生成某种形式的若干数组,无论是哪种形式的数组,你的目的:
生成数组.地图是实际是一个(x,y)的二维坐标系,这很容易让人联系到:亦无论
我准备把设置两个程序界面(主界面/Map界面),Java的布局管理器不好摆弄,不如分开两个class,主界面用JBuilder自动创建的Application模块(带菜单).Map界面自己写,也是JFrame,类之间相互传递消息,map界面将在程序开始时被初始化,也可以在程序从主界面中初始化(有问题)
构建程序
以下内容为程序代码:
basePanel.setLayout(new GridLayout(5, 5)). for (byte i = 0. i < 9. i ) { baseMapButton[i] = new ((Icon) pic.getImageIcon(i, 0)). baseMapButton[i].setButtonTitle(i). baseMapButton[i].addActionListener(buttonListener). basePanel.add(baseMapButton[i]). }
itemPanel.setLayout(new GridLayout(5, 5)). for (byte i = 0. i < 3. i ) { itemMapButton[i] = new MapButton((Icon) pic.getImageIcon(i, 1)). itemMapButton[i].setButtonTitle(i). itemMapButton[i].addActionListener(buttonListener1). itemPanel.add(itemMapButton[i]). }
tabbedPane.addTab("Bases", basePanel). tabbedPane.addTab("Items", itemPanel). contentPane.add(tabbedPane, BorderLayout.CENTER).
| |
有两个地方要解释:
MapButton:自己写的一个类
以下内容为程序代码:
import javax.swing.Icon. import javax.swing.JButton.
public class MapButton extends JButton {
public MapButton() { super().
}
public MapButton(String arg0) { super(arg0). }
public MapButton(Action arg0) { super(arg0). }
public MapButton(Icon arg0) { super(arg0). }
public MapButton(String arg0, Icon arg1) { super(arg0, arg1). }
public byte width, height.
//public pic_w, pic_y.
public void setButtonTitle(byte w, byte h) { width = w. height = h. }
public void setButtonTitle(byte w){ width =w. }
public byte getButtonWidth() { return width. }
public byte getButtonHeight() { return height. } }
| |
相关文章
java学习——理解面向对象程序设计
Struts中bean:present使用方法
改进JAVA字符串分解的方法
Mysql的子类,专门验证登录Pa ql
用Java写一个地图编辑器
我的百宝箱之tomcat5中文问题解决之道
在较量中携手前行——写给Java1.5和.NET2.0
一个字母频率分析计算小程序
Servlet与Javabean配置
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛