Diciembre 20, 2010, 03:29:09 PM Ultima modificación: Diciembre 27, 2010, 07:00:08 PM por unbleached
avanzando en mi proyecto (agradecer a la comunidad por su ayuda) me preguntaba ?como hago para que cada objeto solo pueda moverse a una determinada distancia? o de otra manera como hago para que se muevan en un circulo imaginario de radio determinado y no puedan sobepasar ese circulo imaginario?

Avanzando y gracias

En el evento CREATE:
direction=random(360)
speed=4

En el evento STEP pone:
if distance_to_point(xstart,ystart)>=100 {direction=round(random(360))}

Es solo un ejemplo, podes ir cambiando numeros o codigos por ejemplo si queres que se detenga cuando llegue a 100 pone speed=0

3dgeminis no creas que no lo estoy intentando pero no acabo de dar con la solucion correcta a la que yo quiero....de la forma en que me dices y ajustandolo un poco lo que me pasa es que cuando el objeto llega al limite del radio se me queda parado y ya no puedo moverlo nisiquiera dentro de ese radio.En mi juego,todo va por turnos,y se pasa el turno apretando enter.Lo que necesito es que mientras no se aprete enter el objeto tenga total libertad de movimientos deentro de ese radio, y que no pueda sobrepasar ese radio pero que si toca con el limite no pueda salir de el pero si seguir moviendose dentro del "circulo".Estoy en ello....mil gracias

Yo creo que te has metido en un embolao sin saber siquiera programar basicamente en GML. Leete el manual, la parte de programaci?n, y empieza con ejemplos y proyectitos peque?os y simples que aspiren simplemente al aprendizaje, no ha hacer un juego de turnos de guerra mientras me solventan todos y cada uno de los problemas que me surjen que de haberme molestado en instruirme un poquito podria haber solucionado una gran parte de ellos por no decir todos.

Sin animo de ofender, en serio!

:-[
???NO SE ESTANQUEN, DEN EL PASO A FLASH (AS3.0)!!!

Cita de: Zeneke en Diciembre 22, 2010, 12:36:59 AM
Yo creo que te has metido en un embolao sin saber siquiera programar basicamente en GML. Leete el manual, la parte de programaci?n, y empieza con ejemplos y proyectitos peque?os y simples que aspiren simplemente al aprendizaje, no ha hacer un juego de turnos de guerra mientras me solventan todos y cada uno de los problemas que me surjen que de haberme molestado en instruirme un poquito podria haber solucionado una gran parte de ellos por no decir todos.

Sin animo de ofender, en serio!

:-[

Es un buen consejo el tuyo...y no creas que no lo hago (lo de leer el manual y todo eso)...pero solo pido ayuda a quien quiera darmela...y si mis posts ademas de ayudarme a mi ayudan a otros pues realmente no veo ningun inconveniente....es mas...creo que es la base de una comunidad...si puedes me ayudas,a mi y a todo aquel que lea tu ayuda,y cuando yo pueda ayudarte ten claro que lo har?.....este foro (preguntas y respuestas) tiene 96 paginas actualmente justo de eso..de preguntas y respuestas...creeme....cuantas mas mejor...para ti no,que parece ser que sabes de programacion...pero para gente como yo (que no somos pocos) es toda una suerte contar con gente que no le importa ayudar a ense?ar...yo no he pedido a nadie que me haga un video juego...y si tienes toda la razon...me he metido en un embolao...pero no se porque eso deberia importarte.Si tengo mil dudas....intentare buscar soluciones...si no las encuentro...pregunto...y quien quiera responder que lo haga.La cosa va asi.Que sentido tiene un foro de preguntas donde no se puede preguntar?Un saludo

 :'( te apoyo amigo... No est? bien preguntar como loco, pero no hay nada de malo preguntar s? no se encuentra una respuesta, en fin suerte a los dos.

#6 Diciembre 22, 2010, 02:14:16 PM Ultima modificación: Diciembre 22, 2010, 02:19:25 PM por Zeneke
No pongas palabras en mi boca.No he dicho que no puedas preguntar, simplemente te veo bastante verde con GML y te he sugerido que te instruyas un poquito m?s con esto de picar codigo antes de ponerte a hacer un proyecto de tal magnitud. Pero bueno, que tu veas pero a mi en su dia este tipo de consejo me ayudo bastante.

Es como si yo pregunto:
-?Que es un sprite?
-?Como hago un sprite?
-?Como importo un dibujo a un sprite?
-?Como uso el sprite?
-?Que es un objeto?
-?Como uso un objeto?
Y asi sucesivamente...
Es un ejemplo pero esta muy relacionado con lo que te pasa.Como veras todas estas preguntas se responden mirando un poco el manual, poniendo un poco de tu parte, poniendo interes y no queriendo que te solucionen el problema a la primera de cambio sino investigando un poco, asumiendo conceptos y aplicandolos poquito a poco con ejemplos, pruebas,etc .Y por supuesto preguntando, pero que el resto de la gente que usa el poquito tiempo que tiene a responderte sepa que por lo menos te lo estas currando.

Sino para nosotros se nos hace muy pesado.

En este problema que tienes en concreto, con la solucion que te han dado, con solo mirarte como funciona cada tipo de evento y mas en concreto el evento Step, y mirando tambien algunas propiedades del objeto como pueden ser direction, speed,etc, hayas la solucion por ti mismo SEGURO. Te lo digo por experiencia porque yo tambien he estado en tu situaci?n, pero antes de preguntar a lo loco me he molestado en ser un poquito autodidacta, complementandolo obviamente con ayuda externa.

Lo mas simple seria darte la solucion a tu problema ahora mismo, pero prefiero que te estrujas los sesos e investiges a dartelo echo. Prefiero dar la ca?a en lugar del pez. De echo, la mayoria de usuarios que te van a responder, desconoceran en parte tu codigo, asi que preferiran darte pseudocodigo o la manera de hacerlo que no codigo CONCRETO. O al menos eso quiero pensar...

Saludos y lo siento por la chapa!


;D
???NO SE ESTANQUEN, DEN EL PASO A FLASH (AS3.0)!!!

#7 Diciembre 22, 2010, 02:33:39 PM Ultima modificación: Diciembre 22, 2010, 02:36:05 PM por unbleached
ok tio acepto tu consejo pero ahora te voy a dar otro yo a ti.....la proxima vez que quieras dar una opinion personal sobre alguien es preferible que lo hagas via "mensaje privado" que para eso estan...basicamente por que paso de tener que mantener una conversacion sobre un tema que no tiene nada que ver con el tema en cuestion del hilo de este foro.Si te apetece seguimos y creamos 4 paginas en este hilo debatiendo a ver donde esta la linea que separa "lo que se puede preguntar" y lo "que segun tu no".Pero tambien te dir? que no te molestes en responder a temas que ni te van ni te vienen.Yo tambien veo cosas en los foros (de todos los que miro) que no me gustan...pero no voy por ahi de director de orquesta cuando la batuta no esta en mi mano.Yo soy admin y moderador de un foro(que no este claro)desde hace tiempo y la verdad...es que no se realmente que hago yo....debatiendo esto contigo aqui.

[gml]if se_la_respuesta = true and me_apetece_contestar=true {instance_create(x,y,respuesta)} amabilidad+=1
else
{global.turno+=1} //y no pasa na[/gml]

#8 Diciembre 22, 2010, 03:30:02 PM Ultima modificación: Diciembre 22, 2010, 03:42:48 PM por Zeneke
Vamos que no te has enterado de nada o simplemente haces caso omiso porque lo unico que te importa es que te pegen codigo y hacer despues un copia y pega en tu editable...
Perfecto, no pienso molestarme m?s, yo ya he cumplido. En su dia lo tom? como un buen consejo y supe aplicarlo pero bueno tu te lo has tomado como una ofensa. Perdona entonces.


Y lo pongo aqui porque no tengo el don del "post-it" pero muchos usuarios desgraciadamente deberian aplicarse el cuento.



do{
if (sabe_respuesta ==true) and (le_apetece_contestar==true) {respuesta=instance_create(mi_editable.x,mi_editable.y,objRespuesta);
sensacion_de_haber_aprendido_algo=false;
}
else
{global.turno_de_otro_usuario_que_no_me_hace_ningun_favor+=1;}
}while(proyecto_terminado==true);

//Puedes cambiar el do while por un while(1), asi el bucle seria infinito, tu mismo...



De echo, este codigo no funcionara nunca (lee entre lineas) asi que yo buscaria otro modo de encarar el problema, aunque bueno si para ti no resulta un problema no se para que me molesto...


Suerte con tu proyecto y que te "ayuden" aprendas  mucho!


:D
???NO SE ESTANQUEN, DEN EL PASO A FLASH (AS3.0)!!!

realmente no se si lo que esperabas cuando escribiste el primer post se parece en algo con lo que acaba de suceder...deduzco que no...con lo cual te recuerdo que tu iniciaste el tema y asi estan las cosas.Intento ser constructivo(en todo en la vida).Con lo cual,te repito,acepto(sinceramente) tu consejo.Y muy posiblemente la aptitud de los dos...haya llebado el tema a una discusion de patio de colegio(no era mi intencion) y constructivamente te pido disculpas a ti y a toda la comunidad que se haya  podido sentir molesta leyendo esto.En serio con todo respeto,quiero decir que has deducido muchas cosas sobre mi, y sobre mi manera de enfrentarme a los problemas que me encuentro en Gm8 sin base ni fundamento alguno.Y tio,acepto tu opinion....pero tu opinion es un pececillo nadando en el mar de las opiniones.
gracias por el consejo y eso....que paso de tener que discutir con nadie cuando mi unica intencion es,jugar y hacer un videojuego(o llamalo como quieras).los problemas reales estan por aqui fuera...solo faltaba tener que discutir tambien aqui dentro.Un saludo

#10 Diciembre 22, 2010, 05:20:44 PM Ultima modificación: Diciembre 22, 2010, 05:23:09 PM por Zeneke
No esperaba crear polemica ni mucho menos. Solo que he leido todas tus dudas y la sensaci?n que me ha dado ha sido la de un novato "poco currante". Perdona si no es asi pero es la sensacion que me has dado y la sensacion general que me da de aqui a un tiempo los nuevos usuarios. De ahi esa especie de posicion de director de orquesta que me has otorgado. Quiza haya colmado mi paciencia o haya perdido la comprension en la perspectiva con la que se ve envuelto un usuario precoz en GML.

Realmente no me lo he tomado como discusion, en principio solo queria aconsejarte y quiza haya subido el tono por mutua culpa. Asi que yo tambien te pido disculpas.

He deducido que mueves al soldado con el rat?n. De no ser asi, puedes cambiar el motor. Te he creado un editable que tambien he dejado adjunto, eso si , en gm7 aunque es totalmente compatible con gm8. Para que luego digan que soy mala persona...

Te lo explico a continuaci?n:

-ObjProta CREATE EVENT:
[gml]
velocidad=3;
distancia=100;

xx=x;
yy=y;

[/gml]
-EVENTO DRAW:
[gml]
draw_sprite(sprite_index,image_index,x,y);
draw_circle(xstart,ystart,distancia,1);//Dibujamos el circulo con el radio de alcance
//del personaje[/gml]
-EVENTO GLOBAL LEFT PRESSED:
[gml]
/*Si la distancia entre las coordenadas iniciales de la instancia
y las coordenadas del raton en el momento en que presiono el boton izq. del raton
son menores al radio de movimiento del personaje(distancia), entonces, guardamos
en xx e yy las coordenadas del raton. Ademas, solo las guardamos si hemos cliqueado
en una posicion libre.*/

if point_distance(xstart,ystart,mouse_x,mouse_y)<distancia
{
   if position_empty(mouse_x,mouse_y)
       {
       xx=mouse_x;
       yy=mouse_y;
       }
}

[/gml]
-EVENTO STEP
[gml]
mp_potential_step(xx,yy,velocidad,1);//Movemos hacia xx e yy  y chequeando
//si nos cruzamos con algo. Si es asi, esquiva el obstaculo.
[/gml]
Tenemos al personaje. Si clickamos dentro del radio de alcance se mueve y esquiva los obstaculos que se encuentre pero siempre sin salirse del circulo. Si clikamos fuera del circulo, simplemente no se mueve. Puedes modificar esta parte si quieres. Con lo que te he dado es facilmente modificable.

Espero que sea esto lo que pides.


Saludos!
???NO SE ESTANQUEN, DEN EL PASO A FLASH (AS3.0)!!!

Es complicado tener una perspectiva global de todo usuario...por eso has de entender que (no me pongo ni a mi ni a ti en el ejemplo) hay gente que controla mucho de un tema y otros que no.Y cuando estas en los que si controlan del tema (me pasa en mi profesion) no entiendes como puede ser que haya gente que no tenga esa facilidad para enlazar conceptos hasta llegar a una posible solucion que has adquirido con el tiempo.
Con la experiencia no solo se aprende mas sino tambien mas rapido.Me explico: si a uno que controla mucho de GM le aparece un nuevo problema o duda,dispone de muchos recursos para llegar a tal solucion.
Pero en cambio,es normal que uno que acaba de llegar (yo mismo  ;) ) cuando se le presenta un problema o duda no disponga de esos conocimientos y aunque este leyendo claramente la solucion a su problema no sepa verla o nisiquiera sepa como cogerla....y en ese punto te doy la razon...hay que tirar muchisimo mas de manual...pero la diferencia es que cuando uno que controla lee el manual...entiende basicamente todo lo que lee...no se tio....no ta pasao?...abrir un manual de algo que desconoces totalmente y no entender ni una sola palabra...aun estando en tu idioma natal....pues ahi voy...hay que entender que la gente que no sabe(de lo que sea) tiene dos factores en contra 1-no saber y 2- no saber interpretar muchas veces lo que se tiene delante.Y esos dos factores van creciendo progresivamente...cada vez se mas y cada vez aprendo mas rapido.Jejeje que chapa....ten paciencia con los que no saben.Y quiero recalcar que en ninguno de mis posts he puesto que quiero que alguien me copie y pegue un codigo en concreto.Mi intencion no es hacer un juego de guerra por turnos.Mi intencion es aprender gm haciendo un juego de guerra por turnos.El juego ?te soy sincero? es lo de menos.No hago un video juego con ansias para luego dedicarle horas a jugar.Madre mia.Con los juegacos que hay en el mercado seria absurdo pensar que hago un videojuego con el fin de jugarlo.Es mas bien con el fin de terminarlo y pasar a otra cosa.Te hare caso y,(aunque no se juega con raton) no tirare de tu codigo.Seguire buscando y leyendo cosas que aunque cada vez entiendo mas,muchas me suenan a chino jejejeje.Basicamente por que no tengo prisa.Creeme te diria q casi me he leido las 96 paginas de foros que hay aqui...pero metete tu en un foro de fisica astronuclear (por poner un ejemplo raro ;) ) leetelo y a ver si te queda algo claro ;) en el fondo me alegra que pudieramos enderezar  el lio este de discusion absurda ;) salud a todos

Totalmente de acuerdo.Me reitero y te pido disculpas. :-[

?Qu? es exactamente lo que quieres que haga el personaje? ?Que se mueva automaticamente sin salirse de su radio de alcance? ?Y de ser asi que direccion debe tomar?

Procura hacer una buena explicaci?n de tu duda al principio aunque sea extensa pero completa para pr?ximas dudas.

Saludos y lo dicho!


;)
???NO SE ESTANQUEN, DEN EL PASO A FLASH (AS3.0)!!!

a ver...mi juego...basicamente ahora es como un puzzle en la que estan todas las fichas desperdigadas y poco a poco voy juntandolas.Mi intencion es que en cada uno de los turnos aprezca un sprite(que ya tengo hecho) que es un circulo de 100pxls y que el jugador pueda moverse por ese circulo con las teclas wasd libremente hasta que pulses enter y pases turno.con la intencion,imaginate,de ,es vista topdown,y la intencion es que en tu turno puedas por ejemplo asomarte por una esquina,disparar y volver a esconderte y terminar turno.Yo en la room solo he puesto dos soldados(la intencion es 12 vs 12)los cuales los dos son aliados,porque no quiero liarme con la IA hasta que no tenga todo hecho.Les puesto vidas,municion,medicinas(para 4 futuros medicos q habran en el 12 vs 12 final)he puesto cajas donde recargar municion y otras donde recargar medicinas.Y mas o menos todo esto ya tiene forma.Basicamente juraria que es lo ultimo antes de colocar el resto de soldados y empezar con la IA.Basicamente ahora tengo que irme y tal osea que me niego en rotundo que me pegues aqui  un codigo de la hostia con la solucion.me he mirado tu ejemplo y aunque no es lo que busco puedo ver cosas en el que me seran de ayuda.Un saludo