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.

Mensajes - Goganpis

121
Preguntas y respuestas / Friccion direccional
Junio 02, 2018, 02:28:55 PM
Hola comunidad tengo un problemita y es que tengo un juego de carreras 2D en donde su velocidad es direccional pero lo que quiero es que tenga friccion lo que no puedo hacer es que baje lentamente hasta llegar a 0 alguien me puede decir como se hace tipo uso de las propiedades predeterminadas que traen los objetos porque uso diferentes variables para hacer el juego mas fluido e intuitivo no se si lo entienden

PD: Uso el cos e sin para aumentar la velocidad  XD
123
Use la velocidad de la room en 30 asi que la mayoria del codigo lo adapte a esa velocidad ya que hiba muy rapido y en 30 se ve bien bueno modifique la mayor parte el mismo proyecto esta adjunto intenta leerlo y adaptarlo a tu proyecto ya que te liara mucho porque no configure el salto gradual se me olvido y casi no tengo tiempo ademas de que borre otros codigos que no sirven para ello
124
 Esta bien la idea de cristopher2545 porque es simple te ahorraria casi un millon de codigo ( hablo de mas claro ) pero no tienes que colocar de si colisionas abajo y arriba porque si los bloques estan ordenados en una grilla de 32x32 y el jugador cambia de mask a una de 32x48 como crees que va a ser el jugador cuando tenga un bloque arriba ( que aun no tocado solo lo tiene arriba ) y uno abajo que claro es lo que pisa para ello solo coloca

if place_meeting(x,y+1,obj_block) && collision_line(x,y-63,obj_block) && bbox_bottom-bbox_top > 32
{ // utilizo el bbox por que son los muros de la mask y restados devuelven su longitud
pathfinding(x,y,32)
pathfinding(x,y,-32)

}

// puedes cambiar el numero 63 de la colision lineal depende el alclaje que tengas en tu sprite alli es como si lo tubieras abajo
// el 32 es la grilla de los bloques puede colocarla en un numero menor por ejemplo en 16,15,12,4,1
// pero jamas en cero o crearas un bucle infinito sin necesidad entre mas menor sera mas lento y entre mas
//mayor sera mas rapido pero menos preciso asi que te recomiendo colocarlo en su grilla de la room


Crea este script para que funcione pathfinding()

var arg0,arg1,arg2;
arg0 = argument0
arg1 = argument1
arg2 = argument2
if !place_meeting(arg0,arg1,obj_block)
{
return sign(arg2)
exit;
}

pathfinding(arg0+arg2,arg1,arg2) // aqui hago es recursion como si fuera un ciclo for busca mas del tema si quieres saber


es algo sencillo no tengo mas tiempo si no te ayudara mas bien a explicarte el script pero te enrolaria todo
125
Primero no se que es un engine comparado con un juego es extraño decir eso pero que sepa yo engine es (motor) para hacer videojuegos en este caso o algo parecido, bueno volviendo al caso viendo que despues de que le heche un buen vistazo a ese codigo no entiendo cual es el problema la unica manera de que tengas problemas es que estas direccionando mal la variable dir, te explico al final de tu codigo cumples una condicion en la cual en este no veo cual cambia tienes algun movimiento en donde cambies con las keys de movimiento ( teclas ) la variable dir ejemplo: if key_left then dir = 0; if key_right then dir = 1 el key_left y key_right es solo un comprobador tipo variable temporal no es una funcion que quede claro

bueno tendria que checar todo tu codigo pero ya eso es tu decision por cierto la variable walljump no la uses ya que al tocar suelo a que pared vas a ir, pero si la quieres usar sincronizalo de esta forma antes de ese codigo que tienes

if !place_free(x,y+1)
{
if dir = 0 then walljump = 1
if dir = 1 then walljump = -1
// claro siempre y cuando el dir 0 sea a la derecha si no es mirando a la derecha solo invierte el 0 y el 1
}


para el salto gradual esta fallando porque tu estas comprobando si vspd > 0, queriendo decir que compruebas si la velocidad esta hacia abajo ya que ( -y ) es hacia arriba e ( y ) es hacia abajo solo invierte el mayor por un menor "<" ya me entiendes espero que te sirva suerte!

;)                      :P :P :P :P :P

126
Preguntas y respuestas / Re:tema algo complicado
Mayo 21, 2018, 08:22:57 PM
Tranquilo me dices como te fue  XD
127
Preguntas y respuestas / Re:tema algo complicado
Mayo 21, 2018, 06:37:56 PM
Ya entendi, para ello solo tienes que darle una variable en la que si xprevious y x no son iguales se haga tal cosa y si lo son pues que se quede en su lugar algo asi

event mouse_left
xPr = x // no los mueva de este lugar siempre tienen que ir en el lugar antes de alterar el codigo de x e y
yPr = y

x = mouse_x
y = mouse_y

if x == xPr
and y == yPr
{
speed = 0
}else
{
speed = 6 // elige la que quieras
direction = point_direction(xPr,yPr,x,y) // indica que la x e y anterior sean direccionadas con las actuales
}


Hay mejores formas de adaptar y hacerlo funcionar de una manera mejor pero esto es algo basico para que entiendas como funciona ese mecanismo  ;D
128
Preguntas y respuestas / Re:tema algo complicado
Mayo 21, 2018, 06:07:12 PM
Explicate mejor porque no entendi  :P
129
No se a que te podrias referir pero por lo que veo intentas hacer un tipo televisor dentro de la primera vista o algun tipo de minimapa bueno explicate y detalla mejor lo que quieres decir porque lo que estoy viendo es un codigo de

view_wview[0]-view_wview[1]
130
Preguntas y respuestas / Re:Bomba adesiva
Mayo 10, 2018, 08:57:29 PM
Puedes implementarlo de una forma en que se detenga su velocidad cuando colisione y solo siga los pasos del jugador, para la mecanica que hace el jugador para soltarla de su nave puede ser calculando una variable de conteo con otra calculando la x con la xprevious ejemplo

Nota: Esto es solo un basico mecanismo y va en el objecto bomba


create
co = 0 // el que llevara la cuenta de los movimientos validos
li = 3 // limite
dir = 1 // direccion es obligatoria para hacer este codigo (1=derecha,-1=izquierda)
dirP = 1


step
var mov;
mov = x-xprevious // ejemplo que se mueva horizontalmente solamente para quitarsela
dirP = dir
dir = sign(mov)

if dir != dirP
{
co += 1
}
if co >= li
{
instance_destroy() // Por si lo que piensas es destruirla
}
131
Gracias 3dgeminis no pense que el algoritmo de generacion es llamado perlin noise gracias
132
Disculpen trabajo con GM8, y quiero saber como puedo hacer un juego con divisiones de chunks ( partes de un mapa, trozos ) pues trabajado como en starbound, minecraft, terraria, etc. Se hacer un mundo infinito pero no se como guardo y vuelvo a cargar esos datos pequeños.

Por cierto es mejor hacer un Mapa con limites, o un Mapa infinito de generacion por procedimientos agradececeria su pronta respuesta. Thanks for helping
133
 Esa forma es imposible porque estas alterando una entrada del mando en donde lo que haces es que si tu agarras una taza con tu mano izquierda al mismo quieres mover la mano izquierda de tu mama sin tener el control de ella no tiene logica y simplemente eso lo que hace es devolver un true o un false si es presionado por eso no se puede alterar.

Pero lo mas cercano a esto es hacer una variable y solo verificas si hace alguna de esas dos funciones ejemplo:

key = (gamepad_button_check_pressed(0, gp_padu)==1 or keyboard_check_pressed(vk_anykey)==1)

if (key == 1) // 1 o el mismo true utilizo el 1 porque me da flojera escribir true o false xD
{
x += 4
}
134
Preguntas y respuestas / Re:salto en plataforma 3d
Abril 22, 2018, 10:55:50 PM
Gracias no lo habia entendido xD.
135
Puedes mas profesional para aplicarle mejores cosas pero esto es lo mas sencillo que se me ocurre para que haga una animacion de calidad algo a los 8 bit de antes.  XD

create event
variante = 0

step event
if variante == 1 then image_angle += 45

if variante == 1 then variante = !variante // por decirlo alterna a su antonimo o a su contrario ( 0 y 1 ) por cada paso en que sea llamado.

if keyboard_check_pressed(vk_alt)
{
variante = 0 // aqui se llamo la variable que alterna
image_angle += 45
}