Menú

Mostrar Mensajes

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.

Menú Mostrar Mensajes

Mensajes - Taki-A

#1
Preguntas y respuestas / Re: virtual keys
Septiembre 05, 2021, 07:53:57 PM
si no me equivoco las virtual Keys debes de crearlas en cada room, en el evento de iniciar habitación deberías volver a crear la key 
#2
Como el título lo indica.
Quisiera saber si existe una función para poder controlar el volumen de un grupo de sonidos para la opciones de mi juego.
El cual quiero separar en 2 categorías: Efectos y música de fondo. Y el jugador pueda modificar el sonido de estas categorías a gusto e independiente.
Intenté con audio_sound_gain pero no es lo que busco.
#3
Preguntas y respuestas / Fuentes Borrosas
Mayo 17, 2021, 02:11:04 PM
Hola a todos, tengo un inconveniente y es que cuando uso una fuente y la uso con draw_set_font, al correr el juego la font se ve borrosa, nose si es por la view.
Intente con varias fuentes y todas les sucede lo mismo, busque en el foro pero no encontré solución
En mi juego uso bastante diálogo y se ve re fatal xD   
#4
bien para poder dar un efecto que el objeto siga al personaje podrías probar en step poner, el código debes ir probando con el > <
[gml]if obj_player.x +3 < x
{
image_xscale = 1// estaría pues a la derecha
}
Else if obj_player.x-3 > x 
{
image_xscale = -1
}[/gml] 
Cita de: masalaja en Marzo 11, 2020, 11:45:32 AM
Saludos, como siempre cuando empiezo empiezo bien pero siempre vienen esos malditos imprevistos como en este caso. 1º Cuando cambio de room osea de nivel no quiero que la musica se pare, quiero que siga la misma. 2º  E creado un sprite que sigue a mi personaje pero cuando este lo sigue solo muestro un sprite caminando a la izquierda y cuando camino a la derecha el enemigo sigue mirando a la derecha caminando a lo Michael Jackson. Por cierto, en temas de programacion ando justo y estoy empezando con los botones lo digo porque los codigos los uso poco por no decir nada me es bastante complejo, por cierto mi version Game Maker es 8.

                                                                  Saludos y gracias
#5
.   Yo tengo mis dudas, estás usando un evento con el ratón o con alguna tecla en particular? En todo caso en ambas opciones deberías usar la variable que termina en check_pressed, ahora con tu variable que cuesta $10. Lo que supongo hiciste es poner digamos. Costo = 10. Y en el código al cobrar, costó+=15. Por lo que al siguiente costaría 25. Para mí que va a ser que has puedo el keyboard_check o el mouse_check solamente. Y por eso se salta de una 
Cita de: RyZeX en Febrero 24, 2020, 01:35:50 PM
Hola qué tal mirad es estado desarrollando una prueba de un clicker en Game maker studio 2 y es estado probando y a funcionado varias cosas pero el error que tengo y no encuentro como solucionarlo es:
Tengo un botón que me permite mejorar algo y eso hace que genere más o aumente el multiplicador de ingresos, todo bien pero el problema es que por ejemplo el costo es de 10$ y al comprar aumenta el precio osea el siguiente coste va a ser 15(ejemplo) por lo tanto si lo sumamos son 25 entonces si yo tengo 25 en total y tocó comprar no se compra el de 10 y listo se compran seguido, es decir que el código comprende que como tengo más o igual que lo que pide lo compra igual.

Entendéis??
Ya deciros que muchas gracias
#6
Si exactamente eso verifique, el objeto es hijo del obj_enemigo_general y tiene su sprite centrado.... habra una forma de contactarte para mostrar capturas de lo que pasa en el codigo?
   
Cita de: BssString en Febrero 05, 2020, 07:00:45 AM
Hola Taki-A

1 - Mencionaste que al crear la bala "arriba" del enemigo hace que la bala sólo lo persiga en el eje X y no alcanza a hacer colisión. Eso pasa porque la Bala se dirige hacia las coordenadas de origen del sprite, si tu sprite enemigo tiene el origen en la coordenada (x=0, y=0) obiamente la bala irá hacia ese punto.
Para ir al centro, lo que puedes hacer es cambiar la última línea que te calcula la nueva dirección de la Bala:
direction = point_direction(x,y,next_target.x,next_target.y)

Por esta nueva línea:
direction = point_direction(x,y,next_target.x+next_target.sprite_width/2,next_target.y+next_target.sprite_height/2)

No es la mejor solución, porque va a variar según el tamaño del sprite, pero si no quieres cambiar la coordenada de origen, puede ser una buena solución parche a ese problema.

2 - Lo otro que comentaste, es que sólo detecta un enemigo y no los demás.
Eso es porque la función "with (obj_enemigo_general)" no los está tomando en cuenta. Comprobaste que todos los objetos enemigos tengan asignado como parent al obj_enemigo_general???
Por alguna razón esa función no los está tomando en cuenta.

Saludos
#7
disculpa que te insista, pero me pasa lo mismo, que la bala al ser creada se dirige al enemigo mas cercano pero solo impacta en ese(ahora sale el mensaje) y luego sigue su camino al infinito, eso y a veces cuando la bala se crea muy arriba del enemigo mas cercano esta se dirige a su direccion pero solo en X mas no en y asi que le pasa por encima sin dañarlo, probe creando un nuevo proyecto solo el codigo de la bala y el enemigo con la variable, aun asi el problema persiste, quizas problema de version o algo asi  :'( 
#8
  Estos vienen a ser los cambios que hice al codigo [gml] //en el evento create de mi objeto obj_esfera_rebote
objetivos_golpeados = ds_list_create()
speed = 7
  [/gml] [gml] //en el evento game end y en destroy
if ds_exists(objetivos_golpeados,ds_type_list) ds_list_destroy(objetivos_golpeados) //Esto elimina la DS LIST de la memoria  [/gml]  [gml] //en el evento de colision de obj_esfera_rebote hacia obj_enemigo_general
//tengo que decir que el obj_enemigo_general es un objeto padre
//Sólo hace algo si el proyectil NO ha colisionado con ese enemigo.
if ds_list_find_index(objetivos_golpeados,other) = -1 { //La palabra "other" es el ID del objeto enemigo con el que el proyectil ha colisionado. Si NO lo encuentra en la DS LIST, la función regresa "-1".
other.vida -= (global.ataque_general * 1.25)//Aqui corres tu línea para causar daño al enemigo, yo usé esta de ejemplo con la variable "hp". Si tu enemigo no tiene la variable "hp" te dará bug.
ds_list_add(objetivos_golpeados,other) //Esto añade ese Enemigo a la Lista de enemigos golpeados.
var next_target = noone //Este será el ID del próximo enemigo a perseguir.
var min_distance = -1 //Esto es simplemente para determinar cuál es el enemigo más cercano.
var _list = objetivos_golpeados
with (obj_enemigo_general) if ds_list_find_index(other.objetivos_golpeados,id) = -1 {
if min_distance = -1 { min_distance = point_distance(x,y,other.x,other.y); next_target = id }
else {
var my_distance = point_distance(x,y,other.x,other.y)
if my_distance < min_distance { min_distance = my_distance; next_target = id }
}
}
//Después del With, la variable "next_target" tendrá el ID del enemigo más cercano o "noone" si no encontró ninguno
if next_target != noone {
direction = point_direction(x,y,next_target.x,next_target.y) //Esto le cambia la dirección al proyectil para dirigirse ahora hacia el nuevo enemigo
}
}


  [/gml]
Cita de: BssString en Febrero 04, 2020, 09:01:42 AM
Qué rato, yo lo testié y me funcionó perfecto.

Manda tu código para ver cómo lo has dejado y dime en qué objeto y en qué evento has puesto el código.
Con el código puedo ver también el nombre de las variables que usas
#9
Cita de: BssString en Febrero 03, 2020, 03:40:04 AM
Hola Taki-A

El código que coloqué era sólo para cambiar la trayectoria de la bala, no para moverla.

Intenta asignarle una variable "speed" en el create event para que la bala se mueva.

Saludos Eso había pensando en su momento. Ahora al hacerlo golpea a un enemigo, pasa de largo y se pierde en la room. Y si le doy un else para que se destruya. Golpea al primero y se destruye o golpea al primero va por el 2do y pasa de largo sin dañarlo solo lo atraviesa.
#10
  ante todo muchas gracias por tomarte el tiempo de evaluar mi problemilla, veras provee el codigo y le cambie los valores que me dijiste pero ocurre un problema y es que la bala no se mueve, hasta donde entendi en direction deberia ver la direccion del proximo enemigo no es asi? al crear la bala esta se queda quieta solo genera el daño escrito 
#11
  Hola buenas gente, quisiera implementar el que una bala pueda rebotar de un enemigo a otro y este pueda hacerlo un máximo de veces digamos 3 y que sólo pueda atacar a un enemigo que no haya atacado antes.

Intente esto. Añadi a la bala el instance nearest  y al enemigo una variable golpeado.

Hice que la bala busque al enemigo que no esté golpeado. Pero la bala solo se queda fija en el primer enemigo a demás vuelve a golpear al enemigo que ya golpeó

Para tener una idea de lo que deseo hacer. Me baso en las mecánicas de Jessie de Brawl Star
Cualquier ayuda es bien merecida.

#12
la virtual key las creo en un objeto y las dibujo con un sprites en la misma posición. Pero como haría para que esa key solo funcione cuando cierta variable este activa. Quisiera poner varias keys una encima de otra y que estas funcionen con cierta condicion. Asi la que esta mas abajo no funcionara y la de mas arriba si. Y viceversa
#13
Gracias amigo me has ayudado bastante con la lógica
Cita de: Black_Cat en Marzo 27, 2019, 12:16:22 PM
Hola amigo, podrías combinar la respuesta de este post:
https://www.comunidadgm.org/preguntas-y-respuestas/comprobar-una-variable-de-todas-las-instancias-resuelto/msg136770/#msg136770

Que a grandes rasgos, lo que hace es almacenar en un vector todas las instancias creadas de un objeto determinado.
La parte que te tocaría programar sería la de elegir aleatoriamente y luego hacer que el objeto A, siguiera al objeto tomado aleatoriamente.

[gml]
randomize();
var cant = instance_number(obj_B);
var insta = irandom(cant);

move_towards_point(insta.x, insta.y, 5);
[/gml]
Ese codigo lo que hace, es escoger aleatoriamente uno de los tantos objetos B que haya y lo sigue.

Esta un poco tosco y tal, pero creo que la idea se entiende.
#14
Hola buenas tengo una duda que no puedo resolver.
Como podria hacer que un objeto "A" siga a objeto "B" pero si hubiera muchos del "B" el obj A siga a cualquiera. Ya sea el mas cercano o el mas lejos. Pensé en Instance_nearest pero este solo perseguirá al mas cerca y no es lo que me gustaría plasmar en mi prototipo.
#15
Es como tú dices el error era eso, ahora se ve mejor muchas gracias :D
Cita de: Jucarave en Diciembre 29, 2018, 11:08:08 AM
Si tuviera que adivinar tiene que ver con tus condiciones en el if/else:

Supongamos que la posición del enemigo es enemigo.x+7.
por lo tanto la condición if enemigo.x+5 < x se cumple.
así que el enemigo se mueve x -= 2.5; y su nueva posición es enemigo.x+4.5

ahora en el próximo frame, se prueba de nuevo la condición:

if enemigo.x+5 < x? no, en este caso x  = enemigo.x+4.5
por lo tanto entra en la condición del else
así que el enemigo se mueve x += 2.5; y su nueva posición es enemigo.x+7 nuevamente,

En el próximo frame vuelve a moverse a 4.5, luego a 7 y así, ese es el efecto que te esta sucediendo.

Este es tu problema, para solucionarlo de forma rápida podrías probar:

[gml]
if distance_to_object(enemigo) < 400  and enemigo.image_alpha = 1
{
if enemigo.x+5 < x
{
    sprite_index = spr_enemigo_craneo_camin_izq
    x -= 2.5
    image_speed = 0.16
}
else if enemigo.x-5 > x // Esta linea de código es el cambio
{
    sprite_index = spr_enemigo_craneo_camin_der
    x += 2.5
    image_speed = 0.16
}
}
[/gml]

Saludos