Не отпускает идея все таки разобраться с шаговыми играми.
В качестве тестика, накарябал - 3 действия, на 3 хода (без проверок на остаток од, просто шарик погонять, посмотреть как оно). Получилась вот такая стремная штука:
На кнопках управления
Синтаксис:
Используется javascript
function OnMouseDown () {
od_control.curOD +=1;
if(name=="N1") {
if (od_control.curOD == 1){od_control.funct1 = od_control.f1;}
if (od_control.curOD == 2){od_control.funct2 = od_control.f1;}
if (od_control.curOD == 3){od_control.funct3 = od_control.f1;}
}
if(name=="N2") {
if (od_control.curOD == 1){od_control.funct1 = od_control.f2;}
if (od_control.curOD == 2){od_control.funct2 = od_control.f2;}
if (od_control.curOD == 3){od_control.funct3 = od_control.f2;}
}
if(name=="N3") {
if (od_control.curOD == 1){od_control.funct1 = od_control.f3;}
if (od_control.curOD == 2){od_control.funct2 = od_control.f3;}
if (od_control.curOD == 3){od_control.funct3 = od_control.f3;}
}
}
od_control.curOD +=1;
if(name=="N1") {
if (od_control.curOD == 1){od_control.funct1 = od_control.f1;}
if (od_control.curOD == 2){od_control.funct2 = od_control.f1;}
if (od_control.curOD == 3){od_control.funct3 = od_control.f1;}
}
if(name=="N2") {
if (od_control.curOD == 1){od_control.funct1 = od_control.f2;}
if (od_control.curOD == 2){od_control.funct2 = od_control.f2;}
if (od_control.curOD == 3){od_control.funct3 = od_control.f2;}
}
if(name=="N3") {
if (od_control.curOD == 1){od_control.funct1 = od_control.f3;}
if (od_control.curOD == 2){od_control.funct2 = od_control.f3;}
if (od_control.curOD == 3){od_control.funct3 = od_control.f3;}
}
}
И сам контроллер:
Синтаксис:
Используется javascript
static var od : int;
static var curOD : int;
function Start () {
curOD = 0;
}
static function dummy (){
GameObject.Find("PLAYER").transform.position.z +=0;
}
static function f1 (){
GameObject.Find("PLAYER").transform.position.y +=2;
}
static function f2 (){
GameObject.Find("PLAYER").transform.position.x +=2;
}
static function f3 (){
GameObject.Find("PLAYER").transform.position.x -=2;
}
static var funct1 = dummy;
static var funct2 = dummy;
static var funct3 = dummy;
function go_od (){
yield WaitForSeconds (1);
funct1();
yield WaitForSeconds (1);
funct2();
yield WaitForSeconds (1);
funct3();
}
function OnMouseDown () {
go_od ();
curOD = 0;
}
static var curOD : int;
function Start () {
curOD = 0;
}
static function dummy (){
GameObject.Find("PLAYER").transform.position.z +=0;
}
static function f1 (){
GameObject.Find("PLAYER").transform.position.y +=2;
}
static function f2 (){
GameObject.Find("PLAYER").transform.position.x +=2;
}
static function f3 (){
GameObject.Find("PLAYER").transform.position.x -=2;
}
static var funct1 = dummy;
static var funct2 = dummy;
static var funct3 = dummy;
function go_od (){
yield WaitForSeconds (1);
funct1();
yield WaitForSeconds (1);
funct2();
yield WaitForSeconds (1);
funct3();
}
function OnMouseDown () {
go_od ();
curOD = 0;
}
Собственно в чем вопрос... я понимаю что, то что я сделал, мягко говоря не актуально, стоит только представить, что ОД может быть 30 а действий за сотню Прописывать их все таким макаром, можно устать случайно ) Не подскажете, куда копнуть и что скурить (согласен даже на мухоморы), чтобы узнать, как это правильно делается ))))))))
Спасибо!