导航:首页 > 编程语言 > java游戏地图编辑器

java游戏地图编辑器

发布时间:2022-09-23 01:25:43

❶ 红色警戒3如何用编辑器制作塔防地图

0000000

❷ 求一个java写的地图程序

用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;
}
}

pic:自己写的mappic类的intance:

以下内容为程序代码:

package com.nenghe.mapeditor;

import javax.swing.imageicon;

public class mappic {
imageicon[] baseimages;

imageicon[] itemimages;

imageicon image1;

public mappic() {
init();
}

public void init() {
baseimages = new imageicon[9];
baseimages[0] = new imageicon(mappic.class.getresource("m1.png"[img]/images/wink.gif[/img]);
baseimages[1] = new imageicon(mappic.class.getresource("m2.png"[img]/images/wink.gif[/img]);
baseimages[2] = new imageicon(mappic.class.getresource("m3.png"[img]/images/wink.gif[/img]);
baseimages[3] = new imageicon(mappic.class.getresource("m4.png"[img]/images/wink.gif[/img]);
baseimages[4] = new imageicon(mappic.class.getresource("m5.png"[img]/images/wink.gif[/img]);
baseimages[5] = new imageicon(mappic.class.getresource("m6.png"[img]/images/wink.gif[/img]);
baseimages[6] = new imageicon(mappic.class.getresource("m7.png"[img]/images/wink.gif[/img]);
baseimages[7] = new imageicon(mappic.class.getresource("m8.png"[img]/images/wink.gif[/img]);
baseimages[8] = new imageicon(mappic.class.getresource("m9.png"[img]/images/wink.gif[/img]);

itemimages = new imageicon[3];
itemimages[0] = new imageicon(mappic.class.getresource("error.png"[img]/images/wink.gif[/img]);
itemimages[1] = new imageicon(mappic.class.getresource("i1.png"[img]/images/wink.gif[/img]);
itemimages[2] = new imageicon(mappic.class.getresource("i2.png"[img]/images/wink.gif[/img]);
}

public imageicon getimageicon(int x, int flags) {
if (flags == 0) {
return baseimages[x];
} else if (flags == 1) {
return itemimages[x];
}
return null;
}
}

写mapbutton在于处理事件的时候可以准确的获得按钮的坐标,忘了说了,map界面中我是用按钮代替地图方格的.这是很容易想到的,最笨也是最省力的办法

pic单独写好改,什么时候内容改变了,很容易改,硬要合写没有也随便.

下面就是事件了
有两个事件要处理,第一个是按钮事件,第二个菜单事件
按钮事件我套用这样的结构

以下内容为程序代码:

actionlistener buttonlistener = new actionlistener() {
public void actionperformed(actionevent e) {
//system.out.println(e.tostring());
mapbutton pressedbutton = (mapbutton) e.getsource();

mapdraw.temp_x = pressedbutton.getbuttonwidth();
mapdraw.temp_y = 0;
//system.out.println(mapdraw.temp_x+" "+mapdraw.temp_y);
}
};
....

basemapbutton[i].addactionlistener(buttonlistener);

jbuilder中把按钮事件事件单独生成一个类,我不明白,看不懂.真的很高深.
菜单事件模型jbuilder自己加的.overwrite

以下内容为程序代码:

public void *_actionperformed(actionevent e) {...}

用两个中间值从主界面向map界面传递按了什么:

这里是map界面中的按钮的事件处理程序

以下内容为程序代码:

actionlistener buttonlistener = new actionlistener() {
public void actionperformed(actionevent e) {
mapbutton pressedbutton = (mapbutton) e.getsource();
pressedwidth = pressedbutton.getbuttonwidth();
pressedheight = pressedbutton.getbuttonheight();

if (temp_y == 0) {
if (item[pressedwidth][pressedheight] != 0) {
item[pressedwidth][pressedheight] = 0;
jfm.showmessage("这里的道具已被置空!\nthe item has been null!"[img]/images/wink.gif[/img];
}
map[pressedwidth][pressedheight] = temp_x;
pressedbutton.seticon((icon) pic.getimageicon(temp_x,
temp_y));
} else {
if (map[pressedwidth][pressedheight] == 0) {
jfm.showmessage("道具不能放在这!\nnot put item at this point!"[img]/images/wink.gif[/img];
} else {
if (temp_x == 0) {
byte value = map[pressedwidth][pressedheight];
item[pressedwidth][pressedheight] = 0;
pressedbutton.seticon((icon) pic.getimageicon(
value, 0));
} else {
pressedbutton.seticon((icon) pic.getimageicon(
temp_x, temp_y));
item[pressedwidth][pressedheight] = temp_x;
}
}
}
}
};

请问两个中间值是什么呢?一目了然哦

最后是生成map

以下内容为程序代码:

public void createmap() throws ioexception {
try {
dataoutputstream mapbinaryfile = new dataoutputstream(
new fileoutputstream(mapeditor.filename + "map"[img]/images/wink.gif[/img]);

dataoutputstream itembinaryfile = new dataoutputstream(
new fileoutputstream(mapeditor.filename + "item"[img]/images/wink.gif[/img]);

mapbinaryfile.writebyte(width);
mapbinaryfile.writebyte(height);

for (byte i = 0; i < height; i++)
for (byte j = 0; j < width; j++) {
//system.out.println(i+" "+j);
byte mapvalue = map[i][j];
byte itemvalue = item[i][j];

if (mapvalue != 0) {
system.out.println(i+" "+j+" "+ mapvalue);
mapbinaryfile.writebyte(j);
mapbinaryfile.writebyte(i);
mapbinaryfile.writebyte(mapvalue);
}
if (itemvalue != 0) {
itembinaryfile.writebyte(j);//x
itembinaryfile.writebyte(i);//y
itembinaryfile.writebyte(itemvalue);
}
}

mapbinaryfile.close();
itembinaryfile.close();
} catch (eofexception e) {
system.err.println("error"[img]/images/wink.gif[/img];
}
}

❸ 非计算机专业毕业怎样转行进来

希望我的经验能影响他,影响徘徊在计算机行业外想进来的人。

先做个自我介绍,让这篇博文比较有参考价值:
大学: 2004 ~ 2008 西安工业大学 包装工程
现在公司: 中科大洋 -上海研发部
职位: Java软件工程
工作年限:4年
工作内容: B/S 架构的企业软件开发, 技术涉及Java、Javscript、 iOS
已掌握的语言: Java、Javascript、SQL、 C、 Objective C、Ruby

1. 程序员这个职业并不是为计算机专业学生专设的

我现在所在的公司,上海这边就有3个大学非计算机专业的同事。除了我之外,一个是09年毕业学建筑的,一个是11年毕业学法律的。如果你想,这条路可行。

2. 兴趣是最大的老师

2002年高一暑假,暴雪推出了war3(魔兽争霸3)。我想学编程的想法就从这个游戏开始。

由于暴雪的关系,当时让我觉得做游戏是一件非常酷的事情。03年的一期大众软件,介绍了如何使用war3中的地图编辑器做RPG游戏,从此便迷上了地图编辑器,开始泡各种地图编辑器的论坛。

在当时我只知道照着论坛的帖子改地形,写触发器,写判断语句,后来才知道地图编辑器中使用的语言Jass(war3中的脚本语言)。

从那时起就立下一个目标,“学编程,做游戏。酷!”。

后来高考我并没有考上计算机专业,志愿被调剂西安工业大学的包装工程。不过依然坚定自己的目标:“上了大学自学编程, C语言->C++-> VC -> 做游戏”。
现在想想当时的想法非常天真,就是这个天真的想法让我一头扎进了计算机的世界。

如果你对编程世界充满好奇,恭喜你,他将会是你最好的老师。在整个过程中请牢记:“一切为了兴趣”。在学习过程中碰到不感兴趣的东西,可以先放放,让兴趣指引你去学你想学的东西,那些让你感觉很头疼的东西(比如编译原理,算法等),以后你会因为兴趣将他们拾起来。

3. 学习是一个循环的过程

发现 -> 感兴趣 -> 学习 -> 实践 -> 成就感 -> 发现 -> … 请时刻记住这个循环过程。当然你可以总结出自己的一套循环理论。

4. 如何开始?

如果你现在很幸运的只知道一门编程语言,恭喜你,直接上手学吧。现在就开始是最好的开始。程序 语言的逻辑都很像,只要学会一个其他的都很容易。我在学编程的时候只知道C语言->C++->VC这条路,进入大学后整天泡在图书馆,在没有 电脑的情况下手写代码。这段学习经历让我意识到,即刻开始是最好的开始。

如果你不幸知道了很多编程语言,并且不知道如何选择,这里我可以给你一些建议:
C语言永远是值得学习的一门语言。在犹豫不决的时候不妨先学C语言。如果你能很轻松写出冒泡排序,写出函数的递归调用。恭喜你,程序逻辑方面你已经很优秀了。
如果你对做网站感兴趣,PHP是一个不错的开始。当然还有Ruby、 Python。
如果你希望按照传统套路来,Java是个不错的选择,之后可以选择企业开发,Android开发等。
如果你对移动感兴趣并且资金充足,Objective C 觉得很好的选择。iOS开发难点在Mac, iPhone等设备购买上(贵,你懂得)。
最后不要忘了身边的有当程序员的人,他们的意见很值得参考,如果按照他们的路子入门,你将得到一个很好的导师。这将会是一件非常棒的事情。

如何选择书:
选书之前先在豆瓣读书看看书评。
首选图灵出版社的书。
书越薄越好,快速入门是目的。那种跟砖一样厚的书,请忽略掉,除非你有自虐倾向。

一些值得推荐的网站:
编程中国: www.bccn.cn 很适合初学者的网站。我刚开是学编程的是时候,在这里得到很多帮助。
CSDN: www.csdn.net 大而全。
ITEye: www.iteye.net 前身JavaEye,我常年混迹的网站。建议工作后来这里混。

❹ mappy编写java游戏地图

游戏地图是一小块一小块组成的,而游戏地图就是一个数组,通过数组来绘制地图。比如说:数组里0是草地,1是砖头,只需遍历数组来绘制即可。也就是说,地图编辑器只是给你数组,但是具体遍历数组来绘制地图的方法是要自己实现的。
网络博客里讲了NeatBeans开发手机游戏地图的。不过做游戏地图,其实用mapwin也行。

地图编辑器不会给你小的图片单元的,那是要自己用方法来拆图片,并绘制的。不过在手机游戏开发的game包里有相应的类和方法,用来帮助开发手机游戏。

❺ Java游戏编程的图书信息(一)

ISBN: 7030129423
印刷时间: 2004-6第1次印刷
开 本: 16
价 格(元): 68 第一部分 Java游戏基础
第1章 Java线程 1. 1 什么是线程 1. 2 在Java中生成与运行线程 1. 2. 1 扩展Thread类 1. 2. 2 实现Runnable接口 1. 2. 3 使用匿名内类 1. 2. 4 等待线程完成 1. 2. 5 休眠线程 1. 3 同步 1. 3. 1 为什么要同步 1. 3. 2 如何同步 1. 3. 3 同步是什么 1. 3. 4 不同步是什么 1. 3. 5 避免死锁 1. 4 使用wait 与notify 1. 5 Java事件模型 1. 6 何时使用线程 1. 7 何时不使用线程 1. 8 线程池 1. 9 小结
第2章 二维图形与动画 2. 1 全屏图形 2. 1. 1 屏幕布局 2. 1. 2 像素颜色与位深度 2. 1. 3 刷新率 2. 1. 4 将显示切换到全屏方式 2. 1. 5 抗齿边 2. 1. 6 选用显示方式 2. 2 图像 2. 2. 1 透明度 2. 2. 2 文件格式2. 2. 3 读取图像 2. 2. 4 硬件加速图像 2. 2. 5 图形绘制基准程序 2. 2. 6 动画 2. 2. 7 活动绘制 2. 2. 8 动画循环 2. 3 避免闪烁与裂开 2. 3. 1 双缓存 2. 3. 2 翻页2. 3. 3 监视刷新与裂开 2. 3. 4 BufferStrategy类 2. 3. 5 生成屏幕管理器 2. 3. 6 幽灵 2. 4 简单效果 2. 5 小结
第3章 交互性与用户界面 3. 1 AWT事件模型 3. 2 键盘输入 3. 3 鼠标输入 3. 4 通过鼠标移动的观看模式 3. 5 创建输入管理器 3. 6 使用输入管理器 3. 6. 1 暂停游戏 3. 6. 2 增加重力 3. 7 设计直观用户界面 3. 8 使用Swing组件 3. 8. 1 Swing基础 3. 8. 2 在全屏方式中使用Swing 3. 9 创建简单菜单 3. 10 游戏者配置键盘 3. 11 小结
第4章 声效与音乐 4. 1 声音基础 4. 2 JavaSoundAPl 4. 2. 1 打开声音文件 4. 2. 2 使用Line 4. 3 播放声音 4. 4 创建实时声音过滤体系结构 4. 5 创建实时回响过滤 4. 6 仿真三维声音 4. 6. 1 生成三维过滤器的思路 4. 6. 2 实现三维过滤器 4. 6. 4 测试三维过滤器 4. 7 创建声音管理器 4. 7. 1 Sound类 4. 7. 2 SoundManager类 4. 7. 3 线程局部变量4. 8 播放音乐 4. 8. 1 播放光盘声频 4. 8. 2 播放MP3与OggVorbis 4. 8. 3 播放MIDI音乐4. 8. 4 生成适配音乐 4. 9 小结
第5章 创建二维平台游戏 5. 1 生成基于地砖的地图 5. 1. 1 实现Tile地图 5. 1. 2 读取Tile地图 5. 1. 3 绘制Tile地图 5. 1. 4 绘制幽灵 5. 1. 5 视差滚动 5. 1. 6 充电器 5. 1. 7 简单坏人 5. 2 碰撞探测 5. 2. 1 探测碰撞 5. 2. 2 处理碰撞 5. 2. 3 幽灵碰撞 5. 3 完成与加速 5. 4 生成可执行的.jar文件 5. 5 扩展游戏 5. 6 小结
第6章 多人游戏 6. 1 Java I/O库的变革 6. 1. 1 JDK 1. 4NIO库的概述 6. 1. 2 信道 6. 1. 3 缓存 6. 1. 4 选择器与SelectionKeys 6. 2 基本多方游戏应用程序6. 2. 1 服务器端 6. 2. 2 建立与运行服务器 6. 2. 3 客户端6. 2. 4 建立与运行客户机 6. 3 多方游戏服务器框架 6. 3. 1 设计目标与战术 6. 3. 2 设计 6. 3. 3 共用类与接口 6. 3. 4 服务器实现 6. 3. 5 客户机 6. 4 RPS游戏 石头. 布. 剪刀 6. 4. 1 类 6. 4. 2 运行RPS游戏 6. 5 建立框架 6. 5. 1 客户机GUI 6. 5. 2 持久性 6. 5. 3 伙伴名单. 门厅与闲聊 6. 6 服务器管理 6. 6. 1 登记 6. 6. 2 启动/关闭 6. 6. 3 服务器管理控制台 6. 6. 4 游戏监查 6. 7 高级课题 6. 7. 1 切断与重接 6. 7. 2 HTTP隧道 6. 7. 3 量化测试 6. 7. 4 Modem连接 6. 7. 5 性能剖析与统计 6. 7. 6 性能调整 6. 8 小结
第二部分 三维图形与高级技术
第7章 三维图形 7. 1 三维绘制的类型 7. 2 回顾曾经学过的数学 7. 2. 1 三角学和直角三角形 7. 2. 2 向量数学 7. 3 3D的基础 7. 4 3D的数学 7. 5 多边形 7. 6 三维变换 7. 6. 1 旋转 7. 6. 2 包装旋转和平移变换 7. 6. 3 采用变换 7. 6. 4 旋转顺序 7. 7 3D的简单管道 7. 8 镜头移动 7. 9 实体和背面删除 7. 9. 1 点积 7. 9. 2 交积 7. 9. 3 再谈点积和交积 7. 10 扫描转换多边形 7. 11 三维剪取 7. 12 最后绘制管道 7. 13 小结
第8章 纹理贴图与照明 8. 1 透视正确纹理贴图的基础 8. 2 简单纹理贴图器 8. 3 优化纹理贴图 8. 3. 1 纹理的存储格式 8. 3. 2 原始优化 8. 3. 3 内联方法 8. 3. 4 快速纹理贴图演示程序 8. 4 简单灯光 8. 4. 1 扩散反射 8. 4. 2 环境光 8. 4. 3 光源强度 8. 4. 4 距离减弱 8. 4. 5 实现点光源 8. 5 实现纹理照明 8. 6 使用阴影图的高级照明 8. 6. 1 求出边界矩形 8. 6. 2 采用色档图 8. 6. 3 建立色档图 8. 6. 4 建立表面 8. 6. 5 缓存表面 8. 6. 6 阴影表面演示程序 8. 7 其他概念 8. 7. 1 深度提示 8. 7. 2 伪阴影 8. 7. 3 MIP贴图 8. 7. 4 双线性插值 8. 7. 5 三线性插值 8. 7. 6 法线图与深度 8. 7. 7 其他类型的光 8. 8 小结
第9章 三维对象 9. 1 表面消隐 9. 1. 1 油画算法 9. 1. 2 反油画算法 9. 1. 3 Z缓存 9. 1. 4 使用1/Z的Z缓存 9. 1. 5 计算Z深度 9. 2 三维动画 9. 2. 1 空间运动 9. 2. 2 角度运动 9. 3 多边形组 9. 4 从OBJ文件装入多边形组 9. 4. 1 0BJ文件格式 9. 4. 2 MTL文件格式 9. 5 游戏实体 9. 6 管理游戏实体 9. 7 综合起来 9. 8 改进 9. 9 小结
第10章 用BSP树管理三维视景 10. 1 BSP树简介 10. 2 二叉树基础 10. 3 一维BSP树 10. 4 二维BSP树 10. 4. 1 建立BSP树 10. 4. 2 BSP树遍历实例 10. 5 实现二维BSP树 10. 5. 1 BSPLine 10. 5. 2 确定点相对于直线的边 10. 5. 3 BSP多边形 10. 5. 4 遍历BSP树 10. 5. 5 中序遍历 10. 5. 6 由前到后遍历 10. 5. 7 树的建立 10. 5. 8 两条线求交 10. 5. 9 用直线剪取多边形 10. 5. 10 删除T形接头 10. 5. 11 测试BSP树 10. 6 从前到后画多边形 10. 7
第一个BSP树例子 10. 8 在视景中画实体 10. 9 从文中装入贴图 10. 10 综合起来 10. 11 改进 10. 12 小结
第11章 碰撞探测 11. 1 碰撞基础 11. 2 实体间碰撞 11. 2. 1 减少测试 11. 2. 2 边框球 11. 2. 3 边框圆柱 11. 2. 4 离散时间问题 11. 3 实体与世界碰撞 11. 3. 1 测试地板的边框 11. 3. 2 寻找特定位置的BSP叶 11. 3. 3 实现地板和天花板高度测试 11. 3. 4 测试墙的边框 11. 3. 5 BSP树的线段交点 11. 3. 6 角问题 11. 3. 7 实现实体/世界碰撞探测 11. 4 基本碰撞探测演示程序 11. 5 滑动与碰撞处理 11. 5. 1 实体间滑动 11. 5. 2 实体沿墙的滑动 11. 5. 3 重力与爬楼梯 实体沿地 面滑动 11. 5. 4 实现跳动 11. 6 碰撞探测与滑动演示程序 11. 7 改进 11. 8 小结
第12章 路径搜索 12. 1 路径寻找基础 12. 2 初步路径寻找方法 12. 3 A*算法基础 12. 4 采用A*算法 12. 5 BSP树与A*算法 12. 5. 1 门户 12. 5. 2 实现门户 12. 6 一般性路径寻找 12. 7 建立PathBot 12. 8 改进A*搜索 12. 9 小结
第13章 人工智能 13. 1 人工智能基础13. 2 减少Bot的神力 13. 2. 1 视觉 13. 2. 2 听觉 13. 3 状态机与响应 13. 4 概率机 13. 5 决策 13. 6 模式 13. 6. 1 躲避 13. 6. 2 攻击 13. 6. 3 跑开 13. 6. 4 瞄准 13. 6. 5 射击 13. 7 实体派生 13. 8 综合起来 13. 8. 1 大脑 13. 8. 2 健康与死亡 13. 9 进化 13. 9. 1 再生 13. 9. 2 进化Bot 13. 9. 3 演示改进 13. 10 进化 13. 11 小结
第14章 游戏脚本14. 1 关于脚本 14. 2 实现接触与释放通知 14. 3 游戏实体监听器 14. 4 脚本 14. 4. 1 设计脚本 14. 4. 2 嵌入BeanShell解释器14. 5 延迟事件 14. 6 综合起来 14. 7 改进 14. 8 小结
第15章 保存游戏 15. 1 游戏保存基础 15. 2 对游戏状态保存使用Java序列化 API 15. 2. 1 序列化简介 15. 2. 2 序列化基础 15. 2. 3 序列化规则 15. 2. 4 序列化问题 15. 2. 5 覆盖缺省行为 15. 3 生成游戏屏幕图形 15. 3. 1 生成屏幕略图图形 15. 3. 2 保存图形 15. 4 将游戏保存到正确目的地 15. 5 小结
第三部分 调整与完成游戏
第16章 优化技术 16. 1 优化规则 16. 2 剖析 16. 2. 1 基准测试 16. 2. 2 使用HotSpot剖析器 16. 3 HotSpot 16. 3. 1 Java特定优化 16. 3. 2 死亡代码消除 16. 3. 3 循环不变项提升 16. 3. 4 公共子表达式消除 16. 3. 5 常量传递 16. 3. 6 内联方法 16. 4 优化技巧 16. 4. 1 算法 16. 4. 2 移位 16. 4. 3 求模 16. 4. 4 乘法 16. 4. 5 指数 16. 4. 6 更多循环不变项提升 16. 4. 7 查找表 16. 4. 8 定点算术 16. 4. 9 异常 16. 4. 10 输入/输出 16. 4. 11 内存贴图文件 16. 5 内存使用与回收 16. 5. 1 Java堆与内存回收 16. 5. 2 监视内存回收 16. 5. 3 监视内存使用 16. 5. 4 调整堆 16. 5. 5 调用内存回收单元 16. 5. 6 减少对象生成 16. 5. 7 对象复用 16. 5. 8 对象池 16. 6 感觉性能 16. 7 小结
第17章 生成游戏图形与声音 17. 1 选择外观 17. 1. 1 寻找灵感 17. 1. 2 保持一致 17. 2 取得自由版权游戏媒体 17. 3 与艺术家和声效工程师合作 17. 4 工具 17. 5 生成声音 17. 6 生成纹理与幽灵 17. 6. 1 图形文件格式 17. 6. 2 生成无缝纹理 17. 6. 3 生成替换纹理 17. 6. 4 生成过渡纹理 17. 6. 5 生成多层纹理 17. 7 生成漂亮屏幕与HUD图形 17. 8 生成UI图形 17. 9 生成字体17. 10 小结
第18章 游戏设计与最后10% 18. 1 最后10% 18. 1. 1 效果 18. 1. 2 游戏状态机 18. 2 游戏设计要素 18. 2. 1 环境 18. 2. 2 故事要素 18. 2. 3 玩游戏 18. 2. 4 告诉用户怎么玩 18. 3 生成贴图编辑器18. 4 调试 18. 4. 1 调试Java2D问题 18. 4. 2 日志 18. 5 保护代码 18. 6 游戏部署 18. 7 JavaWebStart游戏部署 18. 7. 1 从jar文件取得资源 18. 7. 2 签名jar文件 18. 7. 3 生成JNLP文件 18. 7. 4 设置Web服务器 18. 8 自然编译游戏部署 18. 9 更新与补丁18. 10 带宽问题 18. 11 反馈与Beta测试18. 12 赚钱 18. 13 综合起来 18. 14 小结
第19章 未来 19. 1 Java的演变 19. 1. 1 Java社团 19. 1. 2 缺陷天堂 BugParade 19. 2 Java 1. 5 Tiger 19. 2. 1 一般 JSRl4 19. 2. 2 枚举 JSR201 19. 2. 3 静态导入口 JR201 19. 2. 4 改进for循环 JSR201 19. 2. 5 编译器API JSRl99 19. 2. 6 网络传输格式 JSR200 19. 2. 7 共享虚拟机JSR121 19. 3 Java平台需要什么 19. 3. 1 更多鼠标与键盘输入选项 19. 3. 2 游戏杆输入 19. 3. 3 硬件加速半透明图像 19. 3. 4 高精度定时器19. 3. 5 Linux中的硬件加速图形和全屏 方式 19. 3. 6 运行环境中的硬件加速三维 特性 19. 3. 7 HotSpotSIMD优化 19. 3. 8 更多字体光顺选项 19. 3. 9 其他情况 19. 4 新设备与Java Games Profile JSR134 19. 5 小结
Java 是一个由 Sun 公司开发而成的新一代编程语言。使用它可在各式各样不同机器、不同操作平台的网络环境中开发软件。
游戏编程属于软件开发。用编程制作软件属于编程,但是指在进行中,而一但编制完整就属于软件开发了。

❻ Java Eclipse来开发地图,用什么插件

1. Log4E

Log4E支持Java项目使用日志,不依赖于任何Log框架,可以通过配置支持各种日志框架,例如Log4J、JDK 1.4日志记录和SLF4J。Log4E高级版本提供了扩展功能,如可编辑模板、在常用日志框架中使用Jakarta字符串生成器,预览向导,首选范围等。总体来说,Log4E是一款实用且受欢迎的插件。
2. Mylyn

Mylyn可以将任务管理和上下文管理无缝集成到Eclipse中,是一款强大的任务和应用程序生命周期管理(ALM)框架。Mylyn基于Eclipse,提供以任务为重点的界面、工具和API,帮助开发人员执行多任务,避免信息过载。另外,Mylyn还集成了很多有用的工具,如Jira,Bugzilla和Trac,这些工具可以提供任务管理和离线编辑功能
3 Spring IDE

Spring IDE是一个Eclipse插件套件,主要用于开发基于Spring的应用,支持Spring AOP(面向方面的编程),Spring Web Flow和Spring JavaConfig。除此之外,开发人员还可以使用向导、文本和图形编辑器来创建Spring配置文件和新的Spring项目。
4. FindBugs

FindBugs是一个免费的开源软件应用程序,主要作用是帮助开发人员发现Java代码中的错误,它能够分析Java1.0到1.8所有版本编译的代码。FindBugs可以作为流行IDE的可用插件,如Eclipse,Netbeans和IntelliJ等。另外,它还为开发人员提供云存储功能,帮助他们查找和共享某些问题的评估信息。
5. Eclipse Checkstyle

Checkstyle是一种广泛使用的Java源代码检查工具,它能够自动化检查Java代码是否符合规范。Eclipse Checkstyle集成了多个Eclipse工作区插件的Checkstyle代码分析器,允许开发人员配置自定义编码标准和规则,一旦出现任何违反标准和规则的代码就会及时反馈和警告,发现的违例或偏差可作为代码编辑器注释、Eclipse问题视图和Checkstyle违例视图。
6. Eclim

Eclim是一款用于将Eclipse IDE的代码编辑功能与Vim(一种支持多种编程语言的流行文本编辑器)集成的插件。通过这一插件Java开发人员可以访问几个重要功能,如代码完成提示、代码验证、Java文档和源代码搜索,支持Checkstyle和正则表达式测试。程序员还可以利用Eclim编辑HTML,Python,Ruby,JavaScript等代码。此外,第三方Eclim客户端还支持其他文本编辑器,例如Sublime Text 2,TextMate和Emacs。
7. Apache IvyDE

Apache IvyDE是一个用于将Eclipse Ivy(一个依赖项管理器)与Eclipse IDE集成的插件。 Apache Ivy是Apache Ant的一个子项目,是一个基于Java的软件工具,用于自动化构建过程。 Apache IvyDE提供了强大的功能,如Java依赖关系管理,支持传递依赖,Ivy XML文件编辑器,托管类路径容器和反向依赖关系浏览器。
8. EGit

Git是一款流行的免费开源分布式版本控制软件,EGit集成了Eclipse Team Framework与GIT,它能够保存用户创建的任何新提交的更新,并且实现了对于代码每次修改的整个历史的跟踪。 EGit项目是在“The JGit Project”(GIT的Java实现)之上实现Eclipse工具。
9. P4Eclipse

P4Eclipse是一个强大的解决方案,用于集成Eclipse IDE与Perforce Helix版本控制引擎。 P4Eclipse是Eclipse IDE的Helix插件,它为Eclipse提供基本的Helix操作,支持Eclipse Team Framework中的敏捷和传统开发工作流程, P4Eclipse为Eclipse IDE用户提供了一些有用的功能,如代码审查,协作,调试,复杂重构等等。
10. Hibernate Tools

Hibernate Tools是一套用于Eclipse IDE的插件,允许Java开发人员利用Hibernate3的强大功能。Hibernate是一个用于Java平台的对象关系映射工具,它是JBoss Tools的重要组成部分。Hibernate工具为Eclipse IDE提供了一系列的功能,如映射编辑器,Hibernate控制台,统一Ant任务和数据库逆向工程。

❼ 如何做一个简单的java地图编辑器

❽ 几个关于魔兽争霸3的问题~~[高手进]

本文主要介绍目前开发游戏比较流行的两款工具mappy(mapwin)和tiled,分别介绍工具的安装、使用、优缺点分析,虽然不能面面俱到,但使用要点之处都已说明。作为开发游戏的fans们必不可少的入门指南。

一、何所谓“地图编辑器”
地图编辑器,顾名思义,就是用来编辑地图的工具,如果玩过《魔兽争霸》或是《帝国时代 2 》、《英雄无敌》的话,应该会知道这几款游戏都附有地图编辑工具,可提供玩家自行编辑地图关卡,地图编辑器就具有类似的功能。

二、mappy(mapwin)入门指南:

1.预备知识:
tile:中文名字-瓷砖,呵呵,也就是平铺在某个物体表面上的单元。使用过j2me的Tile或者vc开发游戏的都知道。
playback library:回放库,支持装载和显示mapwin的FMP地图文件的库。

2.mapwin简介:

软件名称:mapwin
版本:1.4.11
运行环境:windows
依赖库文件:libpng12.dll、zlib.dll
用途:灵活的建立2d、3d游戏的tile。
强大的回放库支持:DirectX、Allegro、OpenGL、Java、CDX、SDL、Delphi、Blitz Basic、Dark Basic、GBAMappy、Combined、GameMaker等

3.快速安装导航:
首先就是下载mapwin,作者下载的是mapwin1.4.11版。
如果需要支持PNG图片,那么就要到下载两个dll文件:
zlib.dll-用于文件压缩,下载地址:zlib.net
libpng12.dll-libpng的window版,png图像压缩库,下载地址:gnuwin32
安装这两个dll文件很简单,方法就是直接复制到mapwin目录下。

4.快速使用导航:
(1)第一步就是启动程序。然后File->new map,新建一个map,设置每个tile的长宽和map包含的tile的行数和列数。

(2)根据提示进入File->Import...,选择作为tile的图片,这样右侧会出现以前面设置的按照每个tile的长宽划分的图片tile。

(3)此时就可以使用鼠标选取tile,在map中的适当位置点击便会将此tile画在map上。使用右键可以删除map上的title。

(4)mapwin默认只有一个layer,如果要新建layer的话,可以通过Layer->add layer实现,map上方的状态条会显示鼠标当前的位置和当前Layer的层数。

(5)map完成后,按ctrl+s保存,选择File->export as text,将map导出为用map数组表示的文本。其中“Map Array(s) Prefix with”选项可以修改为java语言表示数组的形式:new int[][]。这样就会生成j2me中可用的代码片断,可以直接用到程序中。

5.优缺点:
优点:与tiled相比,支持2d、3d游戏,具有很多的游戏开发接口和语言;使用相应的回放库可以设置碰撞检测等扩展功能。
缺点:缺少快捷工具栏,操作速度慢。

三、tiled入门指南:

1.预备知识:
Tileset:tile的集合,这是tiled管理tile的一种分组方式。每个tile有一个name来代表。
Tile的存在方式:tiled软件管理tile的方法与众不同。tile默认只保存在map中,也可以导出为.tsx文件供多个map共用。

2.tiled简介:

软件名称:Tiled
版本:0.5.1
运行环境:支持java的os
依赖库文件:无
用途:tiled地图编辑器是一种用于通用目的的编辑器。特点是比较好用,风格类似mini版的photoshop。它可以用于制作多种类型的游戏引擎需要,而且支持使用插件读写map、增加用于引擎的map格式。

3.快速安装导航:
下载tiled,然后解压缩,可以发现tiled.jar文件,使用java -jar tiled.jar命令来运行之。

4.快速使用导航:
(1)使用File->new,进入New Map Dialog对话框,其中可以选择Map的类型,设置Map size和Tile size,这和mapwin很类似。

(2)建立map之后,系统会默认分配一个layer,但是并没有Tileset,所以选择Tilesets->New tileset...建立tileset。输入Tileset名字后,选取“Reference tileset image”选项,浏览Tile image所使用的图片。其中的“Tile spacing”为设置Tile四边的边框,因为不常用,所以经常被设置为0。

(3)在增加了tileset后,点击左下角的按钮可以看到tile的调色板,这时便可以在调色板中选择合适的tile在map上构图了。

tile左侧的工具栏提供了快捷工具:move layer、paint、erase、fill、eye dropper(取色器)、select、缩放。而在右侧是类似photoshop的layer manger,用来新建layer、复制layer、锁定layer、隐藏layer。

eye dropper的使用方法有两种:一种是选择eye dropper工具,然后在map中选择tile;另一种方法更快捷-直接在map中的tile上点击鼠标右键。

(4)当map画好后,按ctrl+s可以将map保存为tmx文件。
(5)对map文件内容的解释:
<?xml version="1.0" ?>
<map orientation="orthogonal" width="32" height="32" tilewidth="24" tileheight="24">
<tileset firstgid="1" name="Sewers" tilewidth="24" tileheight="24">
<image source="tiledweb/files/tiles_pipes.png"/>
</tileset>
<layer name="Layer 0">
<data encoding="base64" compression="gzip">
+s6l0jolNJiif18tt/Fj8AAMC9ARtYg28AEAAA </data>
</layer>
</map>
此文件表示了这个map只有一个tileset和一个layer,注意一下前面建立map和tileset时输入的数据不是所有都在这个文件中,因为使用默认的属性(如tile spacing)是不会保存在这个文件中的。
由于一个tile可以被多个map引用,所以layer的data属性值使用base64编码、使用gzip压缩的一个32位整数的数组,它代表了tile的全局id--firstgid。每个tile内部使用自己的local id,而firstgid作为在多个map中区分tile的标识。

注意此软件没有导出为map数组的功能,只能使用View->Show Coordinates显示坐标。

5.优缺点:
优点:易用。使用xml规范作为map文件的书写规范有利于用户自定义修改和功能的扩展。
缺点:缺少与游戏开发语言的接口,还需要进一步的开发扩展。

❾ 怎样制作一款游戏

不是随便那一个软件就可以做游戏的,需要很多软件搭配使用,编程、美工、等工序。

游戏制作(The Games Factory) ,是指一个电子游戏的制作过程。由于游戏的类型、大小和要求,游戏制作需要的人员和时间也不一样。游戏制作一般主要分为两大块,即程序开发、美术设计。程序开发主要包括服务器端开发、客户端开发。而美术设计包括场景、角色、次时代、特效、动画等部分,要完成一个优秀的游戏作品,每一部分都需有专业人才负责。

游戏程序开发主要负责游戏程序开发,这一块是人才缺口相对比较少的,因为各高校都开设有c/c++、java等专业,如今国内从事软件开发的人才需求比较大,人才输出也同样比较大。

对于大型的游戏,一般需要几十个人的团队制作几年;而小游戏则可能只需一个人制作几天。一般的大型游戏制作都会由游戏开发公司来完成,小型的游戏则有可能由业余团队或者个人完成,如RPG制作大师此类软件就可以让不懂技术的人做出电脑游戏。

❿ 手游开发j2me需要安装哪些软件,如何安装

在进行J2ME程序需要开发的时候,使用的开发工具分为两类:l 通用开发工具——适合所有手机的通用工具l 专用开发工具——适合某种型号的手机的开发工具,例如Nokia下面介绍一下通用开发工具J2ME Wireless Toolkit(J2WTK),最近SUN公司将这个名字更改为Java Wireless Tookit,其最新版本为2.3beta。该工具完全免费,其官方主页为: http://java.sun.com/procts/sjwtoolkit/index.html 下面以J2WTK2.2版本为例,来介绍该工具的安装和使用。首先SUN公司发布的J2WTK2.2分为四种语言的版本:英语、日语、简体中文、繁体中文。其中简体中文版本的安装程序下载地址为: http://java.sun.com/procts/sjwtoolkit/zh_download-2_2.html 下载完成以后,下面介绍一下该软件的安装。在该软件安装以前,必须保证系统中已经正确安装了JDK1.4.2版本,不能安装JDK1.5版本,该软件不支持高版本的JDK。安装好了JDK1.4.2以后,就可以安装该软件了。该软件的安装过程比较简单,就不做详细的说明了。安装好该软件以后,该软件的详细使用使用说明,可以参看该软件附带的中文使用说明文件,该文件位于安装目录下的\docs\zh\docs目录中,文件名称为:UserGuide.pdf。该文件包含所有J2WTK的使用说明。

阅读全文

与java游戏地图编辑器相关的资料

热点内容
个税app在哪里填写赡养父母 浏览:341
打开cad时总弹出一个文件 浏览:87
删除一个文件夹找不到了 浏览:654
电脑桌面文件管理哪个软件好 浏览:188
苹果数据线头歪了 浏览:135
ghostwin764位系统镜像文件 浏览:443
传感器视频教程下载 浏览:95
flash源文件贺卡下载 浏览:434
如何提高网络扶贫的效果 浏览:654
飞车软件文件夹叫什么 浏览:242
刷ec用什么编程器 浏览:765
方菱数控u盘文件格式 浏览:260
编程为什么输出两个变量 浏览:490
卫星大锅2017用升级吗 浏览:113
玉米win10系统下载 浏览:134
fgo技能升级减cd吗 浏览:129
什么记账app免费好用 浏览:441
网络检测可以检测到什么 浏览:504
sip协议教程 浏览:832
编程哪里可以接项目 浏览:119

友情链接