发新话题
打印

RPG游戏(源文件)(情节,战斗系统,对话系统,生级系统,商店系统)

虽然还没有看怎么样,但是下了就要顶:)

TOP

一个新手见此游戏真实万分景仰,请作者为新手们提些建议吧!

TOP

小时候常玩rpg游戏,现在就学习制作,哈哈,支持。

TOP

下了

TOP

强顶``````

TOP

好,就是地图太小了

TOP

声音出不来

TOP

顶!!!!!

TOP

过来支持下

TOP

支持楼猪!!

TOP

TOP

ding ding

TOP

为了积分顶个

我也正在做游戏
www.anyi1000.cn

TOP

aa

大家好本人初来咋道!!!!!!

TOP

支持

TOP

很不错 谢谢楼主

TOP

该顶就要顶

TOP

顶,用力往里顶.

TOP

顶你的

TOP

怎么看不了啊?

TOP

先顶后下载。楼主真厉害。我的flash都没学好呢。还没想做flash游戏呢。呵呵。很复杂把

TOP

今天看到帧子以顶上来了.心里很高兴.

今天就写个教程吧.

先说下结构.分为主文件.地图信息.关于此地图的资源信息,还有就是要用到的资源了.
为了结构再清析分别建立单独的文件夹.主文件放在外边.
文件里放代码.
地图信息里放数组和地图的描述.还以事件状态什么的这个以后再添加.
地图资源里写着要用到的资源的一些信息.我这里只写了用到哪个文件.并放到了数组里
资源里现在就放着地图的元素.全是放到库里的.

这里用到了共享库.可以在网上查资料.这里不做介绍了.

主文件:
var FPS = 16;
//
var stageW = Stage.width;
var stageH = Stage.height;
//
var path = "";
//路径
var clipW = 16;
var clipH = 16;
//元素的大小
var titleW = int(stageW/clipW);
var titleH = int(stageH/clipH);
//横竖可以放的元素个数

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
我从执行先后顺序写代码.这样可以一步步说明
function loadmap(link) {
//加载地图信息
stage_mc = _root.createEmptyMovieClip("stage_mc", 0);
//stgae_mc是主场景了.以后都不用_root.因为这里共享库有点关系.....

map_mc = stage_mc.createEmptyMovieClip("map_mc", 0);
//这个加载有地图数组的影片
traces("第一个加载对像:map_mc");
var _mcl = new MovieClipLoader();
var _lin = new Object();
_mcl.addListener(_lin);
_mcl.loadClip(path+"map/"+link, map_mc);
_lin.onLoadInit = function(map_mc) {


//加载完数组后加载有资源描述的文件.这个文件的地址是写到map里的.
  loadPackage(map_mc.package);
};
}
////////////////////////////////////////////////////

function loadPackage(link) {
//加载资源包
traces("第二个加载对像");
var _mcl = new MovieClipLoader();
var _lin = new Object();
_mcl.addListener(_lin);
_mcl.loadClip(path+"package/"+link, stage_mc);
_lin.onLoadInit = function(stage_mc) {
  traces("包加载完");
//map_info里有关于这个地图用到了哪个资源文件,然后加载这些文件.如果是在电脑上这一步可以省去.要是手机上这一步有必要做一下.
  loadsrc(stage_mc.map_info);
  trace(map_mc);
};
}



///////////////////////////////////////

function loadsrc(_array) {
//加载那些资源文件.这里应该相当于递归吧......................
//加载的时候是先从数组里pop一个值出来.然后加载这个值.加载完后接着执行些功能.
var temp_mc = _root.createEmptyMovieClip("temp_mc", 1);
var _mcl = new MovieClipLoader();
var _lin = new Object();
_mcl.addListener(_lin);
var link = _array.pop();
traces("正在加载"+link);
_mcl.loadClip(path+"src/"+link, temp_mc);
_lin.onLoadInit = function(temp_mc) {
  var len = _array.length;
  if (len<=0) {
   traces("素材加载完");
//////当加载完后就可以把这个东西移除去了.
/////加载map的那个别移除去.因为里边有关于地图的信息.可能以后要更改和用到里边的东西.
   removeMovieClip(temp_mc);
   newmap();
////这里只是用来测试的.所以没有根据场景扑满播放器.
  } else {
   loadsrc(_array);
  }
};
}

///////////////////////////
function newmap() {
k = 0;
for (var i = 0; i<8; i++) {
  for (var j = 0; j<15; j++) {
   k++;
   var _mc = newclip("b"+(random(21)+1), "b"+k, k);//这里只是简单的写了个小功能.到时候为了方便要把添加一行地图和一列地图分别写个函数.还有块的层级也是很重要的.名称可以根据当前坐标命名.
   //trace(_mc);
   _mc._x = j*clipW;
   _mc._y = i*clipH;
  }
}
var _mc = newclip("n1", "dea", 300);
}
////////////////////////////////////////////////////
function newclip(link, name, depth) {
var _mc = stage_mc.attachMovie(link, name, depth);
//这里所有的库元件能只加到stage_mc里,因为是用stage_mc加载的那个包.网上查共享库的资料...
return _mc;
}



////////////////////////////////////主文件里就没有东西了.

地图信息里数组也是模拟的.

map_array = new Array();
for (var i = 0; i<8; i++) {
map_array = new Array();
var h_array = map_array;
for (var j = 0; j<15; j++) {
  h_array[j] = "b"+(random(27)+1);
}
}
package = "new.swf";

////////////////////////////////////////////////
//资源包里写的是这个
map_info = ["G.swf", "B.swf", "N.swf"];

//资源里没有代码.只是一些地图的方块..



///////////////////////////////
好了.功能现在只是实现了大体的结构和地图的创建立.改天接着写

附件

test.rar (118.17 KB)

2008-5-24 18:35, 下载次数: 22

这是源文件.

TOP

在做这样的游戏的时候我是先把地图的结构做好.

比如说用二维数组来放地图的元素联接.

如果二维数组不能存放太多信息就要用到3维数组了.

可以参考这样的结构.
[元素的联接,第一层的联接,顶层的联接,NPC,事件,.......]
这样.定好了后就先做地图编辑器.

然后再做别的.

因为手机里可能有帧数的限制.(测试出只能加到536帧.再多了显示不出来.)所以改进了.用共享库来做.目前还没有发现问题.这样做的另一个好处是方便管理和修改.

TOP

顶一下~~~~~~~~~~~

TOP

在顶一下~~~~~~~~~~~

TOP

TOP

好想要的东西

下了,顶呀

TOP

好想学学,什么时候自己也可以出个游戏,垃圾点都好

TOP

顶`

TOP

???

TOP

发新话题