バラバラになった?
縦や横が時々綺麗に並んでしまう。
そんで、
今回の作業はやはり簡単だった。
難しいのはここからだ…。
ちょっとTPSタイプの不思議のダンジョン作りたくなってきた。
そんなに見かけない気がする。
息抜きに、挑戦してみる。
不思議のダンジョンの作り方
を検索すると
大体こんなやり方が出てくる。
②は何となく分かる。各領域の左上から何個かずらして部屋を作ればいい。
③も何となく分かる。分割した位置まで1面ずつ道を配置していけばいい。
④は…。自分のスキルでは難解になりそう。
ただ、そんな事より①のやり方がわからない!w
でもやってみた。
field[n].x = x;
field[n].z = z;
みたいなのをやりたかったけど、どう宣言すればいいのかわからなかった。なので
var field : int[ , ];
field = new int[9,2];
field[n,0] = x;
field[n,1] = z;
って感じでやってみた。
次の段階「部屋作り」は簡単に出来るだろう。多分…!
気になるのは生成する時ちょっと重いこと。
無駄が多いだろうけど自分用バックアップ。縦を作ってから横に生成。
----------------------------------------------------
#pragma strict
var width : int;
var height : int;
var wint : int;
var hint : int;
var vPos : Vector3;
var rot : Quaternion;
var w : int;
var h : int;
var min : int;
var max : int;
var field : int[,];
var index : int;
var n : int;
var obj : GameObject;
function Start (){
w = Random.Range(2,4);
h = Random.Range(2,4);
width = width * w;
height = height * h;
}
function createEvent () {
vPos = Vector3(0,0,0);
rot = Quaternion.Euler(0,180,0);
var a:int;
var i : int;
field = new int[9,2];
//room create
for(i=0;i<w;i++){
hint = height;
vPos.z = 0;
index += 1;
a = Random.Range(min,max);//x
field[i,0] = a;
field[i+3,0] = a;
if(h == 3){
field[i+6,0] = a;
}
a = Random.Range(min,max);//z
field[i,1] = a;
hint -= a;//hint-z
n = i;
fieldEvent();
vPos.x -=field[n,0];
index += 1;
a = Random.Range(min,max);//zz
field[i+3,1] = a;
hint -= a;//hint-z-zz
if(h == 2){
field[i+3,1] += hint;
}
n = i + 3;
fieldEvent();
if(h == 3){
vPos.x -=field[n,0];
index += 1;
a = Random.Range(min,max);//zzz
field[i+6,1] = a;
n = i + 6;
hint -= a;
field[i+6,1] += hint;
fieldEvent();
}
vPos.x += 1;
}
}
function fieldEvent(){
var i : int;
var ii : int;
for(i=0;i<field[n,0];i++){
Instantiate(obj,vPos,rot);
for(ii=0;ii<field[n,1];ii++){
Instantiate(obj,vPos,rot);
vPos.z -=1;
}
vPos.z += field[n,1];
vPos.x += 1;
}
vPos.z -= field[n,1] +1;
}
function Update () {
if(Input.GetKeyDown("i")){
Application.LoadLevel("lab1-1");
}
if(Input.GetKeyDown("a")) createEvent();
}
------------------------------------------------
み、見辛い…。