Buscar este blog

lunes, 17 de enero de 2011

Primer monstruo. La araña

call_order(,)
Es la llamada que le hace , digamos que Arañota le da la orden a araña de atacar a traves de call_order(self.id,"ataque") , todos escucharan pero solo araña respondera. Los efectos que puede tener son: a) seguir la orden, b) sugestionarse por ella (no muy seguro de esta), c) ignorarla. Al menos debe poder saber si debe llevar la orden de él, en ciertos momentos debe saber reconocer a su jefe asi que tambien debe estar la siguiente funcion.

if(name=jefe){orden=orden_var}


call_imleader()
Esta funcion llama a todos y les pregunta ¿name es tu lider?, quien responda debe tener los datos de un jefe que ya haya reclamado por él y los comparará, así decidirá quien es jefe entre ellos dos. El jefe que tienen inicialmente debe ser noone. Si recibes call_order("escorpion","ataque") y al final "escoprion"!=jefe, ignorarás la orden.

//cont_1 es el valor de contador con jefe actual
contador=0
if (name.nombre=self.nombre) {contador-=1}
if (name.nombre!=self.nombre){contador+=1}
contador+=name.nivel-self.nivel
contador=contador/2
if(contador>cont_1){jefe=name cont_1=contador}

//este proceso solo disimula un poco... no agrupa por rangos y
//los de mismo nombre no se agruparán, no se si es bueno o malo.
//igual y puedo estar haciendo que causen call_imleader seguido y los de menor nivel
//hagan cosas segun cuantos monos hay

step()
Supongo asi se debe ver asi misma en un codigo enteramente, un objeto maestro llamado "room" debe estar iterando su operación y ejecutando step(all). En este paso hará el calculo de la nueva posicion segun los valores de velocidad y dirección ademas de checar calculo de colisiones (cuadradas por favor). También es quien está comprobando vida y otros estados.

think()
Debe ser un proceso llamado por step cada cierto tiempo. El proceso step() debe solo hacerlo funcionar como si fuera un objeto inerte, si choca se detiene... si le pegan rebota, cosas así. Si tiene una velocidad, moverse... el paso think() hara la acción de cambiar esos valores, cambiar su dirección, velocidad, llamar a otra función para hacer algo especial, igual y puede estar incluida dentro de step pero me agrada la idea de que un monstruo mas inteligente llame mas seguidamente a la función. También seguún las ordenes será el movimiento.

destroy()
Suena a copia, pero puede ser muy útil. Si tiene identificado al jefe y la unidad es destruida, puede llamar una función especial del jefe tal vez. Además servirá para ese efecto de cuando matas al boss que todos los minions se destruyen automaticamente, destroy(all)... claro esto no lo debe tener el objeto del jugador.

No hay comentarios:

Publicar un comentario