Que codigos estas usando ?
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.
257
Preguntas y respuestas / Re:Al usar image_xscale el sprite se mueve de su posición
Agosto 18, 2018, 03:24:29 PM
Cada sprite tiene un origen, un centro el cual puedes colocar donde quieras, y esto lo puedes cambiar en el editor de sprites
258
Preguntas y respuestas / Re:AYUDA: Mi personaje se queda pegado al suelo.
Agosto 10, 2018, 07:48:09 PM
Eso es debido a que en la colision no detenes la velocidad vertical si no que la igualas a 12 cuando deberia ser 0
[gml]
move_contact_solid(direction, 12)
vspeed= 0;
[/gml]
Algo que note, es que usas keyboard_check_pressed siendo una funcion que se ejecuta una vez para mover al personaje, lo mejor seria usar keyboard_check.
[gml]
move_contact_solid(direction, 12)
vspeed= 0;
[/gml]
Algo que note, es que usas keyboard_check_pressed siendo una funcion que se ejecuta una vez para mover al personaje, lo mejor seria usar keyboard_check.
259
Preguntas y respuestas / Re:girar un objeto
Agosto 05, 2018, 07:47:58 PM
La velocidad=distancia/tiempo y en base a esa formula hice un ejemplo, donde la distancia es igual a la distancia entre el punto donde se presiona con el dedo y el punto donde se deja de presionar, el tiempo es el numero de steps entre esos dos momentos.
[gml]
//CREATE
mx=0
my=0
velocidad=0
distancia=0
tiempo=0
[/gml]
[gml]
//STEP
if velocidad=0
{
if mouse_check_button_pressed(mb_left)
{
tiempo=0
distancia=0
velocidad=0
mx=mouse_x
my=mouse_y
}
if mouse_check_button(mb_left) { if (mx!=mouse_x and my!=mouse_y) {tiempo+=1} }
if mouse_check_button_released(mb_left)
{
distancia=round(point_distance(mx, my, mouse_x, mouse_y))
if tiempo>0 {velocidad=round(distancia/tiempo)*sign(mx-mouse_x)}
}
}
velocidad=velocidad*0.98
if abs(velocidad)<0.1 {velocidad=0}
image_angle+=velocidad
[/gml]
No es perfecto pero funciona.
[gml]
//CREATE
mx=0
my=0
velocidad=0
distancia=0
tiempo=0
[/gml]
[gml]
//STEP
if velocidad=0
{
if mouse_check_button_pressed(mb_left)
{
tiempo=0
distancia=0
velocidad=0
mx=mouse_x
my=mouse_y
}
if mouse_check_button(mb_left) { if (mx!=mouse_x and my!=mouse_y) {tiempo+=1} }
if mouse_check_button_released(mb_left)
{
distancia=round(point_distance(mx, my, mouse_x, mouse_y))
if tiempo>0 {velocidad=round(distancia/tiempo)*sign(mx-mouse_x)}
}
}
velocidad=velocidad*0.98
if abs(velocidad)<0.1 {velocidad=0}
image_angle+=velocidad
[/gml]
No es perfecto pero funciona.
260
Preguntas y respuestas / Re:Hacer aparecer un enemigo en un area random
Agosto 03, 2018, 04:35:03 PM
Prueba de esta manera:
[gml]
instance_create(irandom_range(0, room_width), irandom_range(0,room_height), obj_enemy)
[/gml]
Revisa en el manual la funcion irandom_range para saber mas
[gml]
instance_create(irandom_range(0, room_width), irandom_range(0,room_height), obj_enemy)
[/gml]
Revisa en el manual la funcion irandom_range para saber mas
261
Preguntas y respuestas / Re:AYUDA: Mi personaje avanza de espaldas después de presionar dos teclas a la vez!
Agosto 03, 2018, 07:53:59 AM
En el momento se me ocurren estas 2
https://www.aprendegamemaker.com/gml/page/6/
https://www.escueladevideojuegos.net/category/tutoriales-game-maker/page/2/
En esta misma pagina hay mucha informacion para aprender http://www.comunidadgm.org/articulos/
Un recurso muy importante y que a veces se deja de lado EL MANUAL, trata de leerlo seguido e ir aprendiendo de a poco la funciones que tiene el programa (si usas el GM8 trata de conseguir el manual del GMS, esta mucho mas completo y exlica mejor, y por ahi hay una traduccion al español
https://www.aprendegamemaker.com/gml/page/6/
https://www.escueladevideojuegos.net/category/tutoriales-game-maker/page/2/
En esta misma pagina hay mucha informacion para aprender http://www.comunidadgm.org/articulos/
Un recurso muy importante y que a veces se deja de lado EL MANUAL, trata de leerlo seguido e ir aprendiendo de a poco la funciones que tiene el programa (si usas el GM8 trata de conseguir el manual del GMS, esta mucho mas completo y exlica mejor, y por ahi hay una traduccion al español
262
Preguntas y respuestas / Re:AYUDA: Mi personaje avanza de espaldas después de presionar dos teclas a la vez!
Agosto 03, 2018, 03:54:21 AM
Larga D&D y empeza a usar gml, el mejor consejo que cualquiera te pude dar 8), en poquito tiempo le agarras la mano.
Hay 3 articulos para empezar a programar:
http://www.comunidadgm.org/articulos/(tutorial)-gml-para-tontos-comprender-a-programar-d/
http://www.comunidadgm.org/articulos/(tutorial)-gml-para-tontos-2-pereza-y-mi-programa-con-flou/
http://www.comunidadgm.org/articulos/(tutorial)-gml-para-tontos-3-desvariando-con-variables/
Pues para tu pedido un poco de gml:
EVENTO CREATE
[gml]
sprite_caminar=0 ///0=sprite quieto, 1=sprite caminar derecha, 2=sprite caminar izquierda
[/gml]
EVENTO STEP
[gml]
if keyboard_check(vk_right) ///si se aprieta derecha
{
x+=4 ///se mueve 4 pixels
sprite_caminar=1 ///la variable se pone a 1
}
if keyboard_check(vk_left)
{
x-=4
sprite_caminar=2
}
if ( !keyboard_check(vk_right) and !keyboard_check(vk_left) ) {sprite_caminar=0} ///si no se apretan ni derecha ni izquierda
///cambio de sprite segun el valor de la variable sprite_caminar
switch(sprite_caminar)
{
case 0: sprite_index=spr_quieto break ///si sprite_caminar=0 se cambia el sprite a spr_quieto
case 1: sprite_index=spr_derecha break
case 2: sprite_index=spr_izquierda break
}
[/gml]
Hay 3 articulos para empezar a programar:
http://www.comunidadgm.org/articulos/(tutorial)-gml-para-tontos-comprender-a-programar-d/
http://www.comunidadgm.org/articulos/(tutorial)-gml-para-tontos-2-pereza-y-mi-programa-con-flou/
http://www.comunidadgm.org/articulos/(tutorial)-gml-para-tontos-3-desvariando-con-variables/
Pues para tu pedido un poco de gml:
EVENTO CREATE
[gml]
sprite_caminar=0 ///0=sprite quieto, 1=sprite caminar derecha, 2=sprite caminar izquierda
[/gml]
EVENTO STEP
[gml]
if keyboard_check(vk_right) ///si se aprieta derecha
{
x+=4 ///se mueve 4 pixels
sprite_caminar=1 ///la variable se pone a 1
}
if keyboard_check(vk_left)
{
x-=4
sprite_caminar=2
}
if ( !keyboard_check(vk_right) and !keyboard_check(vk_left) ) {sprite_caminar=0} ///si no se apretan ni derecha ni izquierda
///cambio de sprite segun el valor de la variable sprite_caminar
switch(sprite_caminar)
{
case 0: sprite_index=spr_quieto break ///si sprite_caminar=0 se cambia el sprite a spr_quieto
case 1: sprite_index=spr_derecha break
case 2: sprite_index=spr_izquierda break
}
[/gml]
263
Preguntas y respuestas / Re:AYUDA: Mi personaje avanza de espaldas después de presionar dos teclas a la vez!
Agosto 01, 2018, 03:59:22 PM
Para el primer error, lo que hago es usar variables para saber en que estado esta el personaje y uso esas variables para controlar que sprite elegir a cada momento. Supongo que debes estar cambiando los sprites cuando presionas una tecla ?.
El segundo error como tu dices debe ser un problema en el codigo de colisiones o/y en la mascara de colision.
Como guia primero has que funcione bien el movimiento y colisiones usando solo un sprite simple(un rectangulo o circulo)
y luego que todo funcione bien avanza a el cambio de sprites.
Pon el codigo que usas en el objeto para ayudarte mejor
El segundo error como tu dices debe ser un problema en el codigo de colisiones o/y en la mascara de colision.
Como guia primero has que funcione bien el movimiento y colisiones usando solo un sprite simple(un rectangulo o circulo)
y luego que todo funcione bien avanza a el cambio de sprites.
Pon el codigo que usas en el objeto para ayudarte mejor
264
Preguntas y respuestas / Re:Como hacer que un objeto se mueva con el mouse?
Julio 30, 2018, 07:34:17 PM
La solucion es simple, tenes 2 puntos, la posicion del jugador y la posicion en donde se cliquea con el raton, si la distancia entre ellos no es igual se mueve al jugador a la posicion del raton.
La posicion del raton se guarda en 2 variables cuando se presiona con el raton en cualquier parte.
Luego se comparan ambas posiciones y dependiendo del resultado se mueve o no.
[gml]
// CREATE EVENT ////////////////////////////////////////////////////////////////////////////////////////////////////////
destino_x=x
destino_y=y
velocidad=4
// STEP EVENT ///////////////////////////////////////////////////////////////////////////////////////////////////////////
if mouse_check_button_pressed(mb_left)
{
destino_x=mouse_x
destino_y=mouse_y
}
if point_distance(x, y, destino_x, destino_y)>velocidad {move_towards_point(destino_x, destino_y, velocidad)}
else {speed=0}
[/gml]
La posicion del raton se guarda en 2 variables cuando se presiona con el raton en cualquier parte.
Luego se comparan ambas posiciones y dependiendo del resultado se mueve o no.
[gml]
// CREATE EVENT ////////////////////////////////////////////////////////////////////////////////////////////////////////
destino_x=x
destino_y=y
velocidad=4
// STEP EVENT ///////////////////////////////////////////////////////////////////////////////////////////////////////////
if mouse_check_button_pressed(mb_left)
{
destino_x=mouse_x
destino_y=mouse_y
}
if point_distance(x, y, destino_x, destino_y)>velocidad {move_towards_point(destino_x, destino_y, velocidad)}
else {speed=0}
[/gml]
265
Desarrollo de Scripts / Re:Diferencia de angulos
Julio 22, 2018, 12:50:04 AM
Aun lo sigo usando 8), y no soy el unico. Me siento mas comodo al usarlo que las nuevas versiones(todavia no me acostumbro al GMS)
266
Desarrollo de Scripts / Diferencia de angulos
Julio 20, 2018, 04:05:59 AM
Autor: 3dgeminis
Versión de GM utilizada: :GM8:
Descripción: Devuelve la diferencia entre 2 angulos.
Hace lo mismo que la funcion angle_difference de Game Maker Studio y sirve para GM8 y versiones anteriores.
Para que el script funcione correctamente, el valor de los angulos debe estar entre 0 y 360 grados.
Código del Script:
[gml]
angulo1=argument0 ///primer angulo
angulo2=argument1 ///segundo angulo
dif_ang=(angulo2 - angulo1) ///se restan los angulos
///el valor de dif_ang se fija entre los angulos 180 y -180
if dif_ang<-180 {dif_ang+=360}
if dif_ang>180 {dif_ang-=360}
return dif_ang ///devuelve la diferencia entre los angulos
[/gml]
Ejemplo de utilizacion:
[gml]
///Girar un sprite hacia donde apunta el raton
///STEP EVENT
ang=point_direction(x,y,mouse_x,mouse_y)
if image_angle>360 {image_angle-=360}
if image_angle<0 {image_angle+=360}
dif=diferencia_angulos(image_angle,ang)
image_angle+=min(abs(dif), 5)*sign(dif)
[/gml]
Versión de GM utilizada: :GM8:
Descripción: Devuelve la diferencia entre 2 angulos.
Hace lo mismo que la funcion angle_difference de Game Maker Studio y sirve para GM8 y versiones anteriores.
Para que el script funcione correctamente, el valor de los angulos debe estar entre 0 y 360 grados.
Código del Script:
[gml]
angulo1=argument0 ///primer angulo
angulo2=argument1 ///segundo angulo
dif_ang=(angulo2 - angulo1) ///se restan los angulos
///el valor de dif_ang se fija entre los angulos 180 y -180
if dif_ang<-180 {dif_ang+=360}
if dif_ang>180 {dif_ang-=360}
return dif_ang ///devuelve la diferencia entre los angulos
[/gml]
Ejemplo de utilizacion:
[gml]
///Girar un sprite hacia donde apunta el raton
///STEP EVENT
ang=point_direction(x,y,mouse_x,mouse_y)
if image_angle>360 {image_angle-=360}
if image_angle<0 {image_angle+=360}
dif=diferencia_angulos(image_angle,ang)
image_angle+=min(abs(dif), 5)*sign(dif)
[/gml]
267
Preguntas y respuestas / Re:animacion arrojar bombas tipo metal slug
Julio 19, 2018, 09:36:18 PM
Por lo que se esta heho de varios sprites y se juntan para formar al personaje, se puede ver como por ejemplo dispara con el arma en el brazo derecho mientras con el izquierdo se lanzana granadas. Otro ejemplo son las piernasque estan separadas del resto del cuerpo.
268
Preguntas y respuestas / Re:balas y disparo
Julio 15, 2018, 07:32:41 PM
Todos empezamos asi, no te desanimes y continua practicando 8)
Empeiza por no poner parentesis en todos lados, solo cuando una funcion te lo diga, te vas a ahorrar dolores de caveza cuando te salte un error y tengas que revisar en donde te falto uno.
Prueba a escribir de la forma que puse en mi anterior respuesta.
Empeiza por no poner parentesis en todos lados, solo cuando una funcion te lo diga, te vas a ahorrar dolores de caveza cuando te salte un error y tengas que revisar en donde te falto uno.
Prueba a escribir de la forma que puse en mi anterior respuesta.
269
Preguntas y respuestas / Re:Colisionar con casillas grid
Julio 15, 2018, 07:19:55 PM
No pude hacerlo funcionar usando un script, pero si coloco el codigo directamente en el objeto funciona
[gml]
if mp_grid_get_cell(global.mapa, x div casilla, y div casilla)==-1 {instance_destroy()}
[/gml]
[gml]
if mp_grid_get_cell(global.mapa, x div casilla, y div casilla)==-1 {instance_destroy()}
[/gml]
270
Preguntas y respuestas / Re:Colisionar con casillas grid
Julio 14, 2018, 11:47:46 PM
Busca en la AYUDA la funcion mp_grid_get_cell, viene con un ejemplo que es lo que necesitas.