① 求教贴,java桌面小游戏的地图怎么做
小游戏地图一般都是各种图片的拼接,然后保存到2维数组里面
比如
//数值常量
publicstaticfinalintEMPTY=0;//空地什么也没有
publicstaticfinalintBRICK=1;//土墙
publicstaticfinalintSTONE=2;//石头
publicstaticfinalintSEA=3;//海洋
publicstaticfinalintGREENS=4;//草地
publicstaticfinalintSNOW=5;//雪地
//对应的图片
.....
publicstaticfinalImageIMG_STONE=newImageIcon(MapValues.class.getResource("/resource/imgs/stone.png")).getImage();//石头图片
......
那么保存一副地图就可以用类似于下面的二维数组表示
002405100
145111123
132131001
使用的时候, 加载二维数组,然后把对应的图片显示在地图上就可以了.
不过这样做也存在一定的问题.
1:图片太多,对应的数字太多, 那么地图编辑起来很麻烦, 需要有强大的记忆力,和想象力
2:不能一边编辑,一边就显示出效果来, 出错后,排查麻烦. 效率太低
所以,我们还需要写点代码,做一个简单的地图编辑器,添加辅助线,擦除工具等, 这样的话, 编辑地图就非常方便了,所见即所得.并且一键可以保存为地图数据(二维数组)
学习swing的时候,写过一个简单的地图编辑器,效果图如下
② 关于java开发2d游戏地图问题
分析:
地图->排列好的地图元素->N个加载图片的对象->单个图片->位置X,Y,宽高W,H,颜色,ARGB,等相关属性
举例:
地图元素的实现:
class m_Cell
{
m_Cell();
~m_Cell();
Image m_img;
int x,y,w,h;
int A,R,G,B;
}
地图M的实现:
class M
{
m_Cell cell=new m_Cell[10];//定义10个地图元素
for(int i=0;i<10;i++)
{
cell[i].x=i*cell[i].w;
draw(cell[i]);
}
}
实现10个地图元素的地图在1行的平铺,如果想加2,3,4行,那代码里的X下面加上Y的和H的变化就可以了.
滚屏请查看卡马克算法..一般游戏都是参照这个经典算法的.除了DX貌似是全屏刷新基本不需要之外,2D尽量采用这种算法
③ java怎么生成迷宫地图
//作者:zhongZw
packagecn.zhongZw.model;
importjava.util.ArrayList;
importjava.util.Random;
publicclassMazeModel{
privateintwidth=0;
privateintheight=0;
privateRandomrnd=newRandom();
publicMazeModel(){
this.width=50;//迷宫宽度
this.height=50;//迷宫高度
}
publicintgetWidth(){
returnwidth;
}
publicvoidsetWidth(intwidth){
this.width=width;
}
publicintgetHeight(){
returnheight;
}
publicvoidsetHeight(intheight){
this.height=height;
}
publicMazeModel(intwidth,intheight){
super();
this.width=width;
this.height=height;
}
publicArrayList<MazePoint>getMaze(){
ArrayList<MazePoint>maze=newArrayList<MazePoint>();
for(inth=0;h<height;h++){
for(intw=0;w<width;w++){
MazePointpoint=newMazePoint(w,h);
maze.add(point);
}
}
returnCreateMaze(maze);
}
privateArrayList<MazePoint>CreateMaze(ArrayList<MazePoint>maze){
inttop=0;
intx=0;
inty=0;
ArrayList<MazePoint>team=newArrayList<MazePoint>();
team.add(maze.get(x+y*width));
while(top>=0){
int[]val=newint[]{
-1,-1,-1,-1
};
inttimes=0;
booleanflag=false;
MazePointpt=(MazePoint)team.get(top);
x=pt.getX();
y=pt.getY();
pt.visted=true;
ro1:while(times<4){
intdir=rnd.nextInt(4);
if(val[dir]==dir)
continue;
else
val[dir]=dir;
switch(dir){
case0://左边
if((x-1)>=0&&maze.get(x-1+y*width).visted==false){
maze.get(x+y*width).setLeft();
maze.get(x-1+y*width).setRight();
team.add(maze.get(x-1+y*width));
top++;
flag=true;
breakro1;
}
break;
case1://右边
if((x+1)<width&&maze.get(x+1+y*width).visted==false){
maze.get(x+y*width).setRight();
maze.get(x+1+y*width).setLeft();
team.add(maze.get(x+1+y*width));
top++;
flag=true;
breakro1;
}
break;
case2://上边
if((y-1)>=0&&maze.get(x+(y-1)*width).visted==false){
maze.get(x+y*width).setUp();
maze.get(x+(y-1)*width).setDown();
team.add(maze.get(x+(y-1)*width));
top++;
flag=true;
breakro1;
}
break;
case3://下边
if((y+1)<height&&maze.get(x+(y+1)*width).visted==false){
maze.get(x+y*width).setDown();
maze.get(x+(y+1)*width).setUp();
team.add(maze.get(x+(y+1)*width));
top++;
flag=true;
breakro1;
}
break;
}
times+=1;
}
if(!flag){
team.remove(top);
top-=1;
}
}
returnmaze;
}
}
[java]view plain
//作者:zhongZw
//邮箱:[email protected]
packagecn.zhongZw.model;
importjava.util.*;
importjava.lang.*;
publicclassMazePoint{
privateintleft=0;
privateintright=0;
privateintup=0;
privateintdown=0;
privateintx;
privateinty;
publicbooleanvisted;
publicMazePoint(intx,inty){
this.x=x;
this.y=y;
}
publicintgetLeft(){
returnleft;
}
publicvoidsetLeft(){
this.left=1;
}
publicintgetRight(){
returnright;
}
publicvoidsetRight(){
this.right=1;
}
publicintgetUp(){
returnup;
}
publicvoidsetUp(){
this.up=1;
}
publicintgetDown(){
returndown;
}
publicvoidsetDown(){
this.down=1;
}
publicintgetX(){
returnx;
}
publicvoidsetX(intx){
this.x=x;
}
publicintgetY(){
returny;
}
publicvoidsetY(inty){
this.y=y;
}
}
④ 我的世界java版地图怎么下载
我的世界java版地图可以到我的世界游戏论坛下载。
《我的世界》是由Mojang Studios开发,在中国由网易代理的沙盒式建造游戏,游戏于2017年8月8日在中国大陆独家运营。
游戏着重于让玩家去探索、交互、并且改变一个由一立方米大小的方块动态生成的地图。除了方块以外,环境单体还包括植物、生物与物品。游戏里的各种活动包括采集矿石、与敌对生物战斗、合成新的方块与收集各种在游戏中找到的资源的工具。
游戏中的无限制模式让玩家在各种多人游戏服务器或他们的单人模式中进行创造建筑物、作品与艺术创作。其他功能包括逻辑运算与远程动作的红石电路、矿车及轨道,以及称之为“下界”的神秘世界。最终可以选择前往一个叫作“末路之地”的维度,并击败末影龙。
游戏内容:
玩家们可以自由选择游戏模式 [生存、创造、冒险、极限 (仅Java版) 和旁观模式(仅Java版) ]。在各种模式中体验不一样的有趣玩法,在生存模式中享受打怪、冒险等多种乐趣,在创造模式下享受当创世神的乐趣。该游戏以玩家在三维空间中自由地创造和破坏不同种类的方块为主题。
玩家在游戏中可以在单人或多人模式中通过摧毁或创造精妙绝伦的建筑物和艺术,或者收集物品探索地图以完成游戏的成就(进度)。玩家也可以尝试红石电路和指令等玩法。