① 求教貼,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版) ]。在各種模式中體驗不一樣的有趣玩法,在生存模式中享受打怪、冒險等多種樂趣,在創造模式下享受當創世神的樂趣。該游戲以玩家在三維空間中自由地創造和破壞不同種類的方塊為主題。
玩家在游戲中可以在單人或多人模式中通過摧毀或創造精妙絕倫的建築物和藝術,或者收集物品探索地圖以完成游戲的成就(進度)。玩家也可以嘗試紅石電路和指令等玩法。