Cita de: Ares074 en Septiembre 23, 2018, 12:12:27 AMLa verdad yo no le entiendo muy bien a las variables ni scripts, pero probandolo quizas lo termine entendiendo
Hola gracias por la ayuda
Este el código que tengo echoCódigo [Seleccionar]///Ataques
if global.room_atack=true{ // si el juego esta en modo combate
if global.tipe1.fth=1{ // es la variable que verifica que sea el turno de atacar del jugador
if keyboard_check_pressed(vk_space) {
//atk=1
if point_distance(x, y, obj_selec_eni.x, obj_selec_eni.y) > 12 // si la distancia al enemigo seleccionado es mayor que
{
move_towards_point(obj_selec_eni.x, obj_selec_eni.y, 3); // se mueve hasta el enemigo
tx=tx1 // cambio de sprite
} // tx es para hacer cambio de sprite
}
if point_distance(x, y, obj_selec_eni.x, obj_selec_eni.y)< 12 { //si la distancia al enemigo es menor que
tx=tx6
speed=0
if image_index > spr_number - 1 {image_speed=0 }
if instance_exists(obj_adv){ go=1}
else
{go=0}
a+=1
if a>50 and a<70 audio_play_sound(sound0, 10, false); //play sound
if a>100 a=0
if a>50 and a<70 { // si a esta entre los valores se puede atacar
if go=1 {
if keyboard_check_pressed(vk_space) n+=1 //n en un contador aumenta en 1 dependiendo del valor el ataque es diferente
}
instance_create(x,y,obj_adv) // el odjeto creaa un aviso en pantalla para indicar que se puede atacar mientras el sonido se reproduce
}
else
with (obj_adv)
{
instance_destroy();
}
// dependiendo del valor de n cambia de sprites para hacer un ataque diferente
if n=1 tx=tx7
if n=2{ tx=tx8 }
if n=2 and image_speed=0 {atk=0 }
if n=3 {atk=0 } //Cuanta n sea igual a 3 se terminan los ataques
if keyboard_check_pressed(vk_space) and go=0 atk=0 // se presionas space antes de tiempo
//cuando el sonido no se esta reproduciendo
//se termina la oportunidad de atacar
}
}
// cuando atk es igual a 0 el personaje vuelve a su pocision original
if atk=0 {
if point_distance(x, y, object33.x, object33.y) > 12 {
tx=tx2
move_towards_point(object33.x, object33.y, 3);
}
else
{
speed=0 //cuando llega a su pocision original
tx=tx6 //las variables toman su valor inicial
n=0
a=0
atk=1
global.place=1
}
}
No se si se le entienda bien lo que ase, el código funciona bien pero quiero mejorar la forma de hacerlo por ejemplo quiero que calcule que tan rápido presione la tecla cuando se
reproduce el sonido y dependiendo de eso aumenta o disminuya la cantidad de daño echo al enemigo
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
46
Preguntas y respuestas / Re:Rpg estilo South Park
Septiembre 23, 2018, 01:44:48 AM47
Preguntas y respuestas / Re:Rpg estilo South Park
Septiembre 22, 2018, 11:25:22 PM
:'v Checalo y me dices que tal
48
Preguntas y respuestas / Re:Rpg estilo South Park
Septiembre 22, 2018, 11:15:37 PM
Acabo de intentar el codigo que te di y si me funciono con las variables lo arme de la siguiente manera "No se si te sirva de esta forma"
Object0 o Player
Create
Bengin Step
"object1" sera el evento con el sonido.
object1
Create
Ya con esto controlo parte de las variables luego coloque una "alarm" que me dirige a la acción del sonido y una variable que coloca durante ese tiempo en "true" al acabar el tiempo pasa a "false" y se dirige al siguiente evento mas cercano que esta en true.
Object0 o Player
Create
Código [Seleccionar]
globalvar my_id;
my = id;
Bengin Step
Código [Seleccionar]
if sonido = true{
//Código1 - El obj2 elige al obj1 más cercano para comenzar a seguirlo
id_seguir = noone //Declaramos una variable de instance (debes llamar el Id del objeto para leerla)
var distancia;
distancia = -1; //Declaramos una variable local (Existe en el código y cualquier objeto la puede leer, es casi como una variable global, pero se destruye al terminar de ejecutar este código)
with (object1) if (my_id = 0 || my_id = 1) {
if (other.id_seguir = noone) { other.id_seguir = id; distancia = point_distance(other.x,other.y,x,y) }
else {
var new_distancia;
new_distancia = point_distance(other.x,other.y,x,y)
if new_distancia < distancia { other.id_seguir = id; }
}
}
//Código2 - El obj2 se desplaza hacia el objetivo que quiere seguir
if id_seguir != noone {
var velocidad;
velocidad = 4;
if point_distance(x,y,id_seguir.x,id_seguir.y) > velocidad {
var direccion;
direccion = point_direction(x,y,id_seguir.x,id_seguir.y);
x += lengthdir_x(velocidad,direccion)
y += lengthdir_y(velocidad,direccion)
}
}
}
"object1" sera el evento con el sonido.
object1
Create
Código [Seleccionar]
globalvar seguir;
seguir = id;
globalvar sonido;
sonido = false;
Ya con esto controlo parte de las variables luego coloque una "alarm" que me dirige a la acción del sonido y una variable que coloca durante ese tiempo en "true" al acabar el tiempo pasa a "false" y se dirige al siguiente evento mas cercano que esta en true.
49
Preguntas y respuestas / Re:Rpg estilo South Park
Septiembre 22, 2018, 11:02:48 PMCita de: Ares074 en Septiembre 22, 2018, 10:43:57 PMYo no estoy del muy seguro del como hacerlo ya que no lo he intentado jamas y tampoco soy un genio del GM, pero creo que si juegas con las variables podrias y algunas ID de direccion podria funcionar. Yo intentaria hacerlo de la siguiente manera:
Si, seria algo como la caja no mas que para poder agarrar la caja tendría que a ver una señal ya sea un sonido o una imagen y solo la puede recoger mientras exista la señal si lo ase cuando no esta la señal pierde la oportunidad de recoger la caja
CREATE
Código [Seleccionar]
globalvar sonidos;
sonidos=false;
Entonces ya con esto tengo la variable que se podria activar cada vez que pase el tiempo del sonido.... digamos un ejemplo si el sonido dura 90Seg entonces la variable se activa a true; durante ese tiempo y al pasar vuelve a caer en false; si tomamos encuenta una variable como la que me dio un amigo para seguir por la ID ayudaria mucho
Código [Seleccionar]
//Código1 - El obj2 elige al obj1 más cercano para comenzar a seguirlo
if sonidos=true{
id_seguir = noone //Declaramos una variable de instance (debes llamar el Id del objeto para leerla)
var distancia;
distancia = -1; //Declaramos una variable local (Existe en el código y cualquier objeto la puede leer, es casi como una variable global, pero se destruye al terminar de ejecutar este código)
with (Objeto que genera el sonido) if (my_id = 0 || my_id = 1) {
if (other.id_seguir = noone) { other.id_seguir = id; distancia = point_distance(other.x,other.y,x,y) }
else {
var new_distancia;
new_distancia = point_distance(other.x,other.y,x,y)
if new_distancia < distancia { other.id_seguir = id; }
}
}
//Código2 - El obj2 se desplaza hacia el objetivo que quiere seguir
if id_seguir != noone {
var velocidad;
velocidad = 4;
if point_distance(x,y,id_seguir.x,id_seguir.y) > velocidad {
var direccion;
direccion = point_direction(x,y,id_seguir.x,id_seguir.y);
x += lengthdir_x(velocidad,direccion)
y += lengthdir_y(velocidad,direccion)
}
}
}
Creo que esto pueda funcionar no lo sé debo revisar... "Espero al menos haberte dado una idea"
50
Preguntas y respuestas / Como se generan las peleas por turnos?
Septiembre 22, 2018, 09:13:34 PM
Hola amigos ;D
Ultimadamente intente hacer un mecanismos de peleas al estilo DBZ, pero no surgio nada bien XD asi que retome la idea principal y es hacerlo por turnos y mi duda es si se debe crear un mapa distinto para cada enemigo o se crea algun tipo de varible que genere los enemigos en el mismo mapa? Seria algo asi como los combates al estilo Pkmn donde pueden aparecer entre 1 a 5 enemigo y los boss cuando se les necesite...
Ultimadamente intente hacer un mecanismos de peleas al estilo DBZ, pero no surgio nada bien XD asi que retome la idea principal y es hacerlo por turnos y mi duda es si se debe crear un mapa distinto para cada enemigo o se crea algun tipo de varible que genere los enemigos en el mismo mapa? Seria algo asi como los combates al estilo Pkmn donde pueden aparecer entre 1 a 5 enemigo y los boss cuando se les necesite...
51
Preguntas y respuestas / Presionar dos veces una tecla para realizar una acción
Septiembre 22, 2018, 01:58:52 PM
Hola amigos ;D como se encuentran el dia de hoy?
Tengo una duda y es como hacer para que mi personaje corra al presionar dos veces "RIGHT" ejemplo: camina hacia la derecha con el arrow "RIGHT" y quiero correr solo suelto y presiono rapidamente la misma tecla para empezar a correr. Es una función muy primitiva diria yo ya que muchos juegos como los de Pkmn se actualizaron corriendo con el solo presionar una tecla extra, pero a mi la verdad me gusta esta función del presionar dos veces la misma y permanecer corriendo
Tengo una duda y es como hacer para que mi personaje corra al presionar dos veces "RIGHT" ejemplo: camina hacia la derecha con el arrow "RIGHT" y quiero correr solo suelto y presiono rapidamente la misma tecla para empezar a correr. Es una función muy primitiva diria yo ya que muchos juegos como los de Pkmn se actualizaron corriendo con el solo presionar una tecla extra, pero a mi la verdad me gusta esta función del presionar dos veces la misma y permanecer corriendo
52
Preguntas y respuestas / Re:Rpg estilo South Park
Septiembre 22, 2018, 01:46:27 PM
Yo no entiendo a la perfeccion del como lo harias...? Seria algo como ejemplo: Se cae una caja a tu derecha el personaje se mueve hacia ella a recogerla por asi decirlo?
53
Preguntas y respuestas / Re:Duda sobre los sprites y movimiento
Septiembre 21, 2018, 10:03:07 PMCita de: WMKILLER en Septiembre 21, 2018, 07:36:03 PMBueno tienes la opciones de "sprite_index" y image_index digamos un ejemplo precionas la tecla Space entonces seria lo sigiente
Hola tengo una duda, que es que no se si se podra, en game maker, seleccionar ciertas sub imagenes de sprites para mover un personaje, por ejemplo, un robot que vuela, cuando se apreta la tecla para andar, lo necesario seria que el robot se eleve por ir por aire y no que repita la animacion, no se si me explico bien, espero que puedan ayudarme D:
Código [Seleccionar]
if keyboard_check(vk_space){
sprite_index = Spr_volar
image_index = 0.2;
}
if image_index = 9{ //Digamos que este es la ultima imagen a mostrar
y-=5
sprit_index = Spr_volando
}
Creo que con eso bastaria
54
Preguntas y respuestas / Re:Que tan complicado es crear peleas al estilo DBZ?
Septiembre 21, 2018, 09:46:00 PMCita de: shadowmanuel en Septiembre 21, 2018, 07:39:19 PMLo tomare en cuenta, pero se me hace complicado el como configurarlo
si estas a la derecha, tu enemigo a la izquierda, corres y pasas al otro lado, entonces ahora estas a la izquierda y tu enemigo a la derecha, tanto como tu y el enemigo deben voltear y mirarse de frente ?,
Cuando hay una distancia digamos de 2 metros entre tu y tu enemigo, tu a la derecha y el a la izquierda, te acercas esta distancia
se va acortando hasta llegar a 0, si avanzas no se si la distancia se vuelve negativa o aumenta PERO hay tendrias una forma
si distancia < 0 y presionas correr (ya pasastes al otro lado), suponiendo que te salga valor negativo
cambias a sprite mirar al otro lado y tu lado a izquierda
si al pasarlo te sale valor positivo, osea primero estas a una distancia de 2 metros, pasas al enemigo y ahora estas a una distancia de 1 o 2 o 5 metros.
cuando estas pegado la distancia es 1 o 0 , si te alejas aumenta pero sigues del lado derecho, pero si corres la distancia aumentara pero estarás del lado izquierdo, como controlas eso ?.
si estas al angulo 180% del enemigo estas a la derecha, si estas en el angulo 270 estas abajo, si estas en el angulo 90, estas a arriba, si estas entre 90 y 180, estas arriba a la derecha, yo jugaria con esas variables.
55
Preguntas y respuestas / Que tan complicado es crear peleas al estilo DBZ?
Septiembre 20, 2018, 11:13:03 PM
Hola amigos :D tengo la duda de como se crean los juegos de plataforma al estilo DBZ, unos ejemplos basicos serian DBZ-Devolution, DBZ-SuperSonics hasta los juegos de SMSmash contarian en esta parte, no se como realizar la funcion que el personaje o personajes se voltean al pasar a la parte izquierda o derecha del enemigo... alguna idea de como se hace? o es mas sencillo armar peleas al estilo DBZ-Buu's Fury o Pkmn Reloaded?
56
Preguntas y respuestas / Re:Duda con los View
Septiembre 20, 2018, 11:09:31 PMCita de: 3dgeminis en Septiembre 20, 2018, 07:38:34 PMY como se lograria eso? xD?
No lo he probado pero es lo que se me ocurre y como lo haria:
Tendrias que controlar manualmente cada una de las views. Por ejemplo si la distancia en x entre ambos Players es menor que que el ancho de una view, mover ambas views en el eje x, hacercarlas, para que queden superpuestas, y hacer lo mismo en el eje y.
Mientras que la distancia entre ambos sea mayor a cierto valor, el centro de la view es el centro de cada Player, y si es menor el centro de las view es el centro entre ambos Players.
57
Preguntas y respuestas / Re:Duda con los View
Septiembre 20, 2018, 04:24:52 PMCita de: n0k en Septiembre 20, 2018, 04:17:29 PMEl problema no es hacer las dos View, osea ya tengo ambas View donde los Playes se ven en distintas por separado y luego se ven en ambas al estar cerca, pero lo que quiero es que se unan al estar cerca...
Saludos, no puedo serte de ayuda, pero puedo darte alguna idea, porque yo no se como hacerlo, pero prueba creando dos views cada una que persiga a un jugador diferente y mete esos jugadores en el juego y separarlos a ver que hace, y quizás ahí se te ocurra la forma de hacer la pantalla dividida.
Saludos y disculpa por no poder aportar más que una vaga bandera para llegar a donde quieres.
58
Preguntas y respuestas / Duda con los View ("Solucionado")
Septiembre 20, 2018, 02:59:29 PM
Hola amigos :D tengo una duda con las View ya que me gustaria crear dos view distintas una que vea al jugador 1 y otra al jugador 2, pero que estas se unan al estar cerca eso es posible?
59
Preguntas y respuestas / Re:Duda con los Stast y niveles
Septiembre 20, 2018, 03:11:08 AMCita de: BssString en Septiembre 20, 2018, 02:58:10 AMBssString Muchas gracias por su explicación y tiempo, pero me preguntaba si me puede dar una explicación sobre los "write y "red" y todo eso que me decir, es que generalmente yo no sabria realmente como armalos "Si no es tanta molestia claro"
Hola HKaichim
Si estás declarando las variables como globales, entonces ya estás conservándolos por el resto del juego, cualquier objeto en cualquier room podrá acceder a esa información y modificarla, así que puedes leer el mismo stat tanto dentro como fuera de combate.
Para crear stats pienso que una mejor alternativa es utilizar Arrays (que también se pueden crear de forma global).
Un array puede contener datos de texto como numéricos.
ejemplo:Código [Seleccionar]globalvar stats;
stats[0] = "HKaichim" //El nombre del personaje
stats[1] = 100 //El hp
stats[2] = 15 //El ataque
stats[3] = 10 //La defensa
stats[4] = "rayo magico" //alguna habilidad que posea el personaje
stats[5] = "nada" //Una segunda habilidad (en este caso no la ha aprendido xD)
etc.
Puedes crear un array de 2 dimensiones para crear (en la misma variable) los stats de todos tus personajes.
Si pretendes guardar tus stats en algún archivo del dispositivo para que estén disponibles cuando el jugador inicie nuevamente el juego (lo que ocurre típicamente en los RPG, que no son juegos que te acabas en un día), entonces lo más fácil es utilizar DS LIST o DS GRID por sus funciones "write" y "read" con las que fácilmente puedes convertirlas a texto, guardarlas y leerlas.
Saludos
60
Preguntas y respuestas / Duda con los Stast y niveles ("SOLUCIONADO")
Septiembre 20, 2018, 02:31:03 AM
Hola amigos :D como estan el dia de hoy?
Bueno a lo que he venido, como lo dice el titulo necesito una ayudita con los Stats ya que soy muy noob en esto de la programación, he estado creando Stats basicos:
Pero debo crear distintos para cada PJ y no se como se hace para que dos personajes continuen con el mismo STATS, Ejemplo "Personaje RPG" Stats fuera del combate "Personaje Combate" Los mismo Stats que conserva el RPG y diseversa y si hay alguna mejor forma de crear Stats mejor :v
Bueno a lo que he venido, como lo dice el titulo necesito una ayudita con los Stats ya que soy muy noob en esto de la programación, he estado creando Stats basicos:
Código [Seleccionar]
//Controles de nivel
globalvar Lv;
Lv = 1;
globalvar MaxLv;
MaxLv = 100;
globalvar Exp;
Exp = 0;
globalvar MaxExp;
MaxExp = 120;
//Controles de Stats
globalvar Ps;
Ps = 100;
globalvar Atq;
Atq = 83;
globalvar Def;
Def = 30;
globalvar Energ;
Energ = 80;
globalvar DefMag;
DefMag = 32;
globalvar Vel;
Vel = 90
Pero debo crear distintos para cada PJ y no se como se hace para que dos personajes continuen con el mismo STATS, Ejemplo "Personaje RPG" Stats fuera del combate "Personaje Combate" Los mismo Stats que conserva el RPG y diseversa y si hay alguna mejor forma de crear Stats mejor :v