Diciembre 11, 2010, 09:23:00 PM Ultima modificación: Diciembre 19, 2010, 09:58:04 PM por unbleached
hola a todos....ando loco  :'(  mirando tutoriales y videos (en ingles todos y yo el ingles ufffffff)y necesitaria crear un sistema de turnos para 24 objetos(mu?ecos vamos)12 movidos por mi y 12 por IA.He visto unos cuantos tutos pero ninguno para 24 y no sabria como hacerlo.Agradeceria un poco de ayuda.Un saludo a todos y buen trabajo en esta web.Saludossssssss

Una forma es la siguiente:
1. Almacenar a los 24 objetos en una lista.
2. Elegir un objeto de la lista (al azar, por ejemplo) y ejecutar su turno.
3. Una vez terminado el turno, eliminarlo de la lista y elegir otro.
4. Cuando ya no quede nadie en la lista, comenzar de nuevo por el paso 1.

Nos leemos.
Vota nuestro proyecto en Steam Greenlight:

Estudios Naicura Ltda

bua no me entero lo he intentado pero no me sale....bueno y empezando solo con dos turnos como seria?  luego seria cuestion de ir a?adiendo...pero si empiezo con 24 de golpe no saco nada en claro....estoy hecho un lio.....mil gracias y salud

Te paso un ejemplo, la idea es simple, ten?s que posibilitarle el movimiento s?lo al jugador que tiene el turno correcto. Est? algo r?gido el ejemplo pero no ten?a mucho tiempo, pasas el turno con el enter y la cpu pasa el turno sola luego de 3 segundos. El orden de turnos en ej ejemplo es asi:

2 4 6 8 10 12 14 16 18 20 22 24

1 3 5 7 9  11 13 15 17 19 21 23




pido disculpas de antemano pero....he intentado hacerlo desde cero (basicamente para que me quede claro cada codigo y cada accion que hago) y no logro hacerlo....se que el camino facil seria cojer cualquier ejemplo de los que hay por ahi o este mismo que me habeis pasado, y cambiarle los sprites por los mios y ya esta,pero quiero y necesito saber como se hace y porque.

Entonces, ya no con la intencion de avanzar en mi proyecto,sino para aprender realmente como se hace, he simplificado un nuevo archivo de gm8 y he puesto solamente dos soldados.A cada soldado
en su step le he puesto este codigo
[gml]keyW=keyboard_check(ord("W"))
keyS=keyboard_check(ord("S"))
keyA=keyboard_check(ord("A"))
keyD=keyboard_check(ord("D"))
keyQ=keyboard_check(ord("Q"))
keyE=keyboard_check(ord("E"))
keyShift=keyboard_check(vk_shift)
keySpace=keyboard_check(vk_space)
keyEnter=keyboard_check(vk_enter)

if(keyW)     //avanzar
{
speed=1;}

else

if(keyS)     //retroceder
{
speed=-1;}

else

speed =0

if(keyA){   //rotar izquierda
direction+=2
image_angle=direction
}

if(keyD){   //rotar derecha
direction-=2
image_angle=direction
}
[/gml]

con lo cual con las teclas w,s,a,d  los dos soldados se mueven.
quisiera saber (si no es mucho pedir) por donde empezar para que solo se mueva el primero(cuando apreto las teclas) y cuando aprete al enter sea el otro el que se mueva y asi succesivamente.......seguramente esto sea lo mas facil del mundo pero a mi, parece que no me queda claro si no se me explica paso a paso  :'( .Un saludo

Met? todo ese c?digo dentro de una condicional que diga
[gml]if global.turno=miturno {
//el codigo ese
}
if keyboard_check(vk_enter) {global.turno+=1}
if global.turno>maxturno {global.turno=1}  //Maxturno ser?a en este caso 2, en el de 24 ser?a 24, es el ?ltimo turno de todos[/gml]
Y en el create declar?s la variable miturno como el turno que va a agarr?r el objeto, en este caso s?lo est?n el 1 y 2




me dice esto
ERROR in
action number 1
of  Step Event
for object lider_1a1:

Error in code at line 2:
   if global.turno=miturno {
             ^
at position 12: Unknown variable turno

adjunto lo que hice a ver que estoy haciendo mal.Igualmente mil gracias

Esas variables hay q declararlas en alg?n lado, en este caso te las declar? en el c?digo de creaci?n del room




tremendo Texic mil gracias ahora lo entiendo...enserio mil gracias.saludos y toma karma ;)