Si ese es el caso has un sprite cuadrado o rectangular para que sea la mascara de colision.
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.
91
Preguntas y respuestas / Re:El Personaje se atora en la paredes al Saltar
Agosto 19, 2019, 02:12:30 AM92
Preguntas y respuestas / Re:Empujar bloques como en Zelda
Agosto 19, 2019, 02:09:15 AM
Supongo que quieres "patear" el bloque. Lo que puedes hacer es guardar la posicion actual del bloque y la posicion final, a donde tendria que estar.
Si movemos el bloque hacia la derecha y la posicion inicial es 0, la posicion final seria 32. Si la posicion inicial es diferente a la final, lo movemos, si es igual lo detenemos(la velocidad tiene que ser multiplo de la distancia a recorrer)
Ejemplo empujar a la derecha:
[gml]
///CREATE////////////////////////////////////////////////////////////
mover=false
x1=x
x2=x
///STEP//////////////////////////////////////////////////////////////
if (keyboard_check_pressed(vk_enter) and mover=false)
{
x2=x1+32
mover=true
}
if mover=true
{
if x1!=x2
{
x1+=4
x=x1
}
else {mover=false}
}
[/gml]
Si movemos el bloque hacia la derecha y la posicion inicial es 0, la posicion final seria 32. Si la posicion inicial es diferente a la final, lo movemos, si es igual lo detenemos(la velocidad tiene que ser multiplo de la distancia a recorrer)
Ejemplo empujar a la derecha:
[gml]
///CREATE////////////////////////////////////////////////////////////
mover=false
x1=x
x2=x
///STEP//////////////////////////////////////////////////////////////
if (keyboard_check_pressed(vk_enter) and mover=false)
{
x2=x1+32
mover=true
}
if mover=true
{
if x1!=x2
{
x1+=4
x=x1
}
else {mover=false}
}
[/gml]
93
Preguntas y respuestas / Re:Hola me podrian ayudar
Agosto 16, 2019, 11:45:12 PM
Asi lo haria sin hspeed:
[gml]
///CREATE
vel=0
vel_max=4
acel=0.2
///STEP
if keyboard_check(vk_right) {if vel<vel_max {vel+=acel}}
if keyboard_check(vk_left) {if vel>-vel_max {vel-=acel}}
if (!keyboard_check(vk_right) and !keyboard_check(vk_left))
{
if vel>0 {vel-=acel}
if vel<0 {vel+=acel}
}
x+=vel
[/gml]
[gml]
///CREATE
vel=0
vel_max=4
acel=0.2
///STEP
if keyboard_check(vk_right) {if vel<vel_max {vel+=acel}}
if keyboard_check(vk_left) {if vel>-vel_max {vel-=acel}}
if (!keyboard_check(vk_right) and !keyboard_check(vk_left))
{
if vel>0 {vel-=acel}
if vel<0 {vel+=acel}
}
x+=vel
[/gml]
94
Preguntas y respuestas / Re:Lista de elección aleatoria
Agosto 03, 2019, 05:58:16 AM
Yo lo haria usando un 2Darray que contenga los nombres y su cantidad, y una lista para elegir 3 valores al azar.
[gml]
item[0,0]="peine"
item[0,1]=0
item[1,0]="cepillo"
item[1,1]=0
item[2,0]="jabon"
item[2,1]=0
item[3,0]="corta"
item[3,1]=0
item[4,0]="papel"
item[4,1]=0
item[5,0]="pasta"
item[5,1]=0
item[6,0]="desodorante"
item[6,1]=0
item[7,0]="toalla"
item[7,1]=0
item[8,0]="crema"
item[8,1]=0
item[9,0]="esponja"
item[9,1]=0
randomize()
lista=ds_list_create()
for(i=0;i<10;i+=1) {ds_list_add(lista,i)}
ds_list_shuffle(lista)
for(i=0;i<3;i+=1) {item[ds_list_find_value(lista,i),1]=1}
[/gml]
[gml]
item[0,0]="peine"
item[0,1]=0
item[1,0]="cepillo"
item[1,1]=0
item[2,0]="jabon"
item[2,1]=0
item[3,0]="corta"
item[3,1]=0
item[4,0]="papel"
item[4,1]=0
item[5,0]="pasta"
item[5,1]=0
item[6,0]="desodorante"
item[6,1]=0
item[7,0]="toalla"
item[7,1]=0
item[8,0]="crema"
item[8,1]=0
item[9,0]="esponja"
item[9,1]=0
randomize()
lista=ds_list_create()
for(i=0;i<10;i+=1) {ds_list_add(lista,i)}
ds_list_shuffle(lista)
for(i=0;i<3;i+=1) {item[ds_list_find_value(lista,i),1]=1}
[/gml]
95
Preguntas y respuestas / Re:Como cambiar el ángulo de una imagen sin cambiar su caja de colisión
Julio 14, 2019, 03:59:15 PM
Simplemente crea una variable propia
[gml]
///CREATE
apuntar=0
///STEP
apuntar=point_direction(x,y,mouse_x,mouse_y)
[/gml]
[gml]
///CREATE
apuntar=0
///STEP
apuntar=point_direction(x,y,mouse_x,mouse_y)
[/gml]
96
Preguntas y respuestas / Re:Como Crear un Bloque Atravesable por una sola Direccion
Julio 12, 2019, 03:12:48 PM
Ejemplo:

[gml]
if keyboard_check(vk_left)
{
if ( place_meeting(x-vel,y,pared) and !place_meeting(x,y,pared) ) {colision=true} else {colision=false}
if colision=false {x-=4}
}
[/gml]

[gml]
if keyboard_check(vk_left)
{
if ( place_meeting(x-vel,y,pared) and !place_meeting(x,y,pared) ) {colision=true} else {colision=false}
if colision=false {x-=4}
}
[/gml]
97
Preguntas y respuestas / Re:Error en movimiento por orientación (else if)
Julio 11, 2019, 08:27:39 PM98
Preguntas y respuestas / Re:Cómo crear efecto de sombra degradado?
Julio 11, 2019, 04:27:23 AM
Podrias crear una imagen con un gradiente transparente y dibujarla por encima.

99
Preguntas y respuestas / Re:Tengo un problema con la colisión con objetos
Julio 04, 2019, 12:01:22 AM
Es necesario que tenga friccion y aceleracion?
100
Preguntas y respuestas / Re:No me detecta las colisiones horizontales
Junio 25, 2019, 09:02:03 PM
Es el mismo codigo que uso para las colisiones y me funciona, deberias subir el codigo completo, talves el problema este en otra parte.
101
Preguntas y respuestas / Re:Mover toda la room en vez del player
Junio 19, 2019, 03:15:21 AM
Mover los objetos es facil como dijo NiuWeb, lo dificil es crear los objetos.
How to Make Flappy Bird | Game Maker Tutorial HD [WITH DOWNLOAD] - YouTube
https://www.youtube.com/watch?v=iG7X2JkWM-Y
How to Make Flappy Bird | Game Maker Tutorial HD [WITH DOWNLOAD] - YouTube
https://www.youtube.com/watch?v=iG7X2JkWM-Y
102
Preguntas y respuestas / Re:Crear Efecto KameHameHa!
Junio 14, 2019, 08:16:13 PM
Tal como dijo somnus, ademas,tienes que tener cuidado en el origen de los sprites y usar image_xscale en el sprite que une los extremos:

103
Preguntas y respuestas / Re:Objeto salta en EJE Z, sin draw_sprite_ext
Junio 11, 2019, 08:20:45 PM
https://www.comunidadgm.org/preguntas-y-respuestas/(solucionado)-colision-de-ataque-con-enemigo/msg135328/#msg135328
Para el eje Z tienes que crear la gravedad, velocidad y aceleracion solamente para ese eje, independiente de los otros.
Para el eje Z tienes que crear la gravedad, velocidad y aceleracion solamente para ese eje, independiente de los otros.
104
Preguntas y respuestas / Re:Como picar solo una roca
Junio 04, 2019, 08:13:36 PM
El error es que estas cambiando las variables del objeto roca, en lugar de la instancia que estas picando.
Para picar una piedra en particular necesitas saber su id.
Puedes usar instance_position
[gml]
roca_id=instance_position(mouse_x, mouse_y, ob_roca) ///guardamos la id en la variable roca_id
roca_id.vida_roca-- ///y le quitamos vida a esa instancia
[/gml]
En el siguiente codigo tienes varios if que puedes simplificar poniendo solo
[gml]
image_index = destruccion_roca
[/gml]
Para picar una piedra en particular necesitas saber su id.
Puedes usar instance_position
[gml]
roca_id=instance_position(mouse_x, mouse_y, ob_roca) ///guardamos la id en la variable roca_id
roca_id.vida_roca-- ///y le quitamos vida a esa instancia
[/gml]
En el siguiente codigo tienes varios if que puedes simplificar poniendo solo
[gml]
image_index = destruccion_roca
[/gml]
105
Preguntas y respuestas / Re:Código para instancias
Junio 03, 2019, 07:49:18 AM
Prueba a hacer doble clic sobre la instancia