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 - dixon

151
Hola, gusto en saludarles.

Código a analizar:


if (place_meeting(x,y+vsp,oWall))
{   while (!place_meeting(x,y+sign(vsp),oWall))
{    y = y + sign(vsp);  }
vsp = 0;
}



if(place_meeting(x,y+vsp,owall))
{
De existir un obejto llamado "owall" a una distancia de vsp entonces:



while (!place_meeting(x,y+sign(vsp),owall))
mientras no exista el objeto "owall" a una distancia de un pixel



{
y=y+sign(vsp)
}
Sumarle a su posición Y un pixel



vsp=0
La velocidad debe volverse cero


}



En otras palabras:
Si el player se encuentra verticalmente cerca de un objeto "owall" acércalo a él y vuelve su velocidad cero.

Otras palabras
Si el player tiene un objeto cerca de sus pies, acércalo a él hasta encontrar el objeto.

En otras palabras:
Si el player está a punto de tocar el suelo, que se pegue al suelo y se vuelva la velocidad cero.

Este código al parecer funciona también con las colisiones con el techo, porque está tomando el signo de la vspeed. Por lo tanto está diciendo
Si el objeto player está saltando y sobre su cabeza se encuentra un techo entonces pégalo al techo pero detén la velocidad.

Este código se esta usando para corregir las colisiones verticales y evitar dos cosas:
1. Evitar que el player traspase los objetos "owall"
2. Evitar que la colisión vertical con los objetos "owall" se vea mal.

El código está correcto y funciona como un imán magnético. Donde el objeto owall atrae con su magnetismo al player, pero esto no quiere decir que se va a quedar pegado sino que antes que el player colisione con el objeto owall se va a pegar a el y su velocidad será cero.

1. El código no hace nada si la distancia es superior a la vsp: Si dos objetos de distinta polaridad están muy separados no se percibirá a simple vista su atracción magnética.
2. El código funciona solo cuando el player está cerca del objeto owall: Si dos objetos magnéticos con carga distinta están cerca entonces existirá atracción magnética.

¿Por qué el código es así?
Cuando colisionamos con un objeto solo necesitamos decirle al player que su velocidad sea cero pero esto no se ve bien porque queda una distancia entre el suelo y el player, entonces surge este código para corregir la distancia.

Código sin corrección de distancia: El player queda en el aire o traspasa la owall




if (place_meeting(x,y+vsp,oWall))
{   
vsp = 0;
}

Código corregido: el player no traspasa la owall


if (place_meeting(x,y+vsp,oWall))
{   while (!place_meeting(x,y+sign(vsp),oWall))
{    y = y + sign(vsp);  }
vsp = 0;
}

¿Porqué vsp y sign(vsp)?
Porque vsp normalmente es mayor que sign(vsp).  La vsp es la velocidad de movimiento y también es la distancia que se recorrerá en el próximo paso. Si el objeto player está saltando la vsp será negativa y el sign(vsp) será -1. Si el player está cayendo entonces la vsp será positiva y el sign(vsp) será 1.

¿Podría presentar fallas este código?
Sí, pero solo cuando la vsp es muy alta. En ese caso el objeto player puede que  no detecte el objeto owall y lo traspase. Para evitar eso se usa otro código.

Todavía hay mucho que explicar de este código pero por ahora solo dejo las imágenes:












152
Hola,

Verifica dos cosas:

1. Que el tamaño de la imagen sea 32x32 o 64x64
2. Que la imagen la hayas echo mediante un programa de dibujo que permita guardar como .ico

Si la imagen la hicistes con paint, entonces intenta convertirla a .ico mediante la siguiente web.
https://imagen.online-convert.com/es/convertir-a-ico

153
Juegos completos / Wikipedia JavaScript 2020
Abril 12, 2020, 03:23:29 PM


Wikipedia JavaScript 2020


Otro


GM4

Juego de preguntas y respuestas sobre JavaScript basado en la informacion que nos presenta Wikipedia en este 2020.






Solo para windows
DESCARGA de MEGA.nz 584 KB

154
Hola

Experimenta con esto: Crea un proyecto nuevo, creale un objeto y en un evento draw o dibujo colocale este código.

//simulando el evento create con la variable score
repeat(!score)
{
cuadricula_ancho=32
cuadricula_alto=32
columnas_totales=floor(room_width/cuadricula_ancho)
filas_totales=floor(room_height/cuadricula_alto)
x2=0
y2=0
score=1
}

//botones
if(keyboard_check(113)){game_restart()}
b1=keyboard_check(vk_left)
b2=keyboard_check(vk_up)
b3=keyboard_check(vk_right)
b4=keyboard_check(vk_down)

x2+=(b3-b1)*5
y2+=(b4-b2)*5

if(x2<0){x2=0}
if(x2>room_width-cuadricula_ancho*6){x2=room_width-cuadricula_ancho*6}
if(y2<0){y2=0}
if(y2>room_height-cuadricula_alto*9){y2=room_height-cuadricula_alto*9}

x=floor(x2/columnas_totales)*cuadricula_ancho
y=floor(y2/filas_totales)*cuadricula_alto

//dibujo
draw_rectangle(x,y,x+cuadricula_ancho,y+cuadricula_alto)
dy=0

texto=x2
draw_text(0,dy,texto)
dy+=12



Puedes modificar las variables cuadricula_ancho y cuadricula_alto.
155
General / Videos que me suben el autoestima
Abril 01, 2020, 12:42:51 PM
Vídeos que me suben el autoestima  :)

El corazón alegre es buena medicina, pero el espíritu quebrantado seca los huesos.

Valerian y la ciudad de los mil planetas - Trailer 2 español (HD)


Major Lazer & DJ Snake - Lean On (feat. MØ) (Official Music Video)


Cami - Pa Callar Tus Penas


Camila Gallardo - Abrázame


Clean Bandit - Rather Be ft. Jess Glynne [Official Video]


Aurora - Animal (Live at the Current)


Aurora | Quendom | Loustic Session


AURORA - Warrior


Aurora - Forgotten Love (Live on KEXP)


AURORA - Forgotten Love (Live on Lindmo 2018)

LLegó la hora de crear video juegos y de subir la autoestima de todos.
156
Hola,

Si lo que quieres es hacer un pause.

El pause puede ser una variable que vale uno o cero. Si vale uno entonces estamos en pause y no se puede usar el teclado y no existe la gravedad. Pero si vale cero (no hay pause, entonces puedes usar el teclado, y vuelve la gravedad del personaje. Aqui tienes un ejemplo básico:

En el evento create creamos las variables de movimiento y la del pause

[gml]//En evento create
pause=0
Caminar_derecha=0
Caminar_izquierda=0[/gml]

Luego en el evento stepo o draw, creamos la función que nos permite que el pause se active o desactive( que valga uno o cero)
[gml]///presionando la tecla Enter para el pause (La tecla 13 es la tecla Enter)
if keyboard_check(13)
{
// si el pause es cero se volverá uno y si es uno se volverá cero
pause=(pause=0)
}[/gml]

Luego le decimos al programa que solo podrán presionarse las teclas si el pause es cero
[gml]if pause=0
{
///Todas las variables para el teclado, si el pause es cero podrás usar el teclado
Caminar_derecha=keyboar_check(vk_right)
Camianr_izquierda=keyboard_check(vk_lefth)
}[/gml]

Luego le decimos que el personaje se moverá solo el pause es cero
[gml]//ejemplo de movimiento x, si el pause es cero entonces puedes mover al personaje
x+=(Caminar_derecha-Caminar_izquierda)*5[/gml]

//luego decimos que la gravedad tendrá efecto solo si el pause es cero
[gml]if pause=0
{
//EJEMPLO DE GRAVEDAD SIMPLE
y=5
while(!place_empty(x,y+2))y-=1
}[/gml]
157
Hola.

En el siguiente post encontrarás el manual de Game maker studio 2 en español OFFLINE. para estudiarlo y analizarlo sin conexión a internet.
https://www.comunidadgm.org/general/game-maker-tools/msg138626/#msg138626
158
Hi.

1. Reemplazar todo y+1 por y+2
2. Reemplazar código de colicion con bloques por:

[gml]///move_contact_solid fué removido, ya no se usará.
vspeed=0;
while (!place_free(x,y+1))
{
y-=1
}[/gml]

ANEXOS:

1. Remmplazando todo y+1 por y+2


2. Cambiando el código de colición con bloques.


Ahora bien, aqui unas mejoras extra que se pueden hacer en tu código.

1. No se requiere que hagas un evento colision por cada objeto, solo debes hacer uno del primer bloque y los demás objetos debes hacerlos parientes del primer bloque.
*Eliminando eventos colision y dejando uno solo del primer bloque


*Haciendo pariente a un bloque. Esto hay que hacerlo a todos los objetos, solidos.


2. Sprite adaptable: No se requiere que tengas un objeto para la esquina derecha del suelo otro para el centro y otro para la esquina izquierda. Solo debes crear un solo objeto que adapte sus sprites dependiendo de la posicion donde se encuentre. El código es el siguiente:

[gml]
//evento create del primer bloque
left=place_meeting(x-5,y,obj_Block1)
right=place_meeting(x+5,y,obj_Block1)

if left and right sprite_index=spr_Block
if left and (not right) sprite_index=spr_Block_der
if (not left) and right sprite_index=spr_Block_izq

*Colocando código en evento create del objeto block1
[/gml]

*...

159
Hola.

Te recomiendo que leas el siguiente post sobre "Esquivar muros y sigas las recomendaciones".

https://www.comunidadgm.org/preguntas-y-respuestas/como-esquivar-muros/msg137791/#msg137791

Una cosa es implementarlo y otra cosa es comprenderlo, yo ni lo he implementado ni comprendido. Desde hace más de 10 años he querido comprender el código para esquivar muros y no lo he logrado, he ralizado muchas  preguntas para resolver el misterio pero no he logrado nada.  Creo que ha llegado la hora de comprenderlo. Si Dios quiere Voy  implementarlo en mi proximo juego.


160
Juegos completos / Re:Angel Of Good
Marzo 13, 2020, 11:00:58 PM
Hola.

Sobrevivir es dificil. Las imágenes en blanco y negro transmiten un sentimiento terrorifico y sobrenatural. Me gustó la idea de hacer una pequeña presentación del player volando al fondo antes de comenzar la partida, es como para que nos preparemos porque el juego ha comenzado. Me gustó la portada. Este juego tiene fragmentos que hay que imitar, voy a agarrar tus ideas. Buen trabajo.

Me has inspirado a crear una herramienta de dibujo.

161
Juegos completos / Plataforma traspasable
Marzo 13, 2020, 10:46:45 PM


Plataforma traspasable


Plataformas


GM: HTML5

Dos jugadores tendrán que competir por obtener el mayor puntaje






No se descarga, se juega directamente en la siguiente web. Solo para PC.
https://www.kongregate.com/games/reyesdavila1987/plataforma-traspasable?acomplete=plataforma


Fué ceado para, explicar el código que utiliza una plataforma traspasable. Este tema surgió hace algunos días en esta comunidad pero nunca quise publicar el juego por lo simple que era.

Tema \"Bajar atravezando plataformas\"
https://www.comunidadgm.org/preguntas-y-respuestas/bajar-atravesando-plataformas/

Lo que me más gusta de este aburrido juego es ver como las pelotitas controladas por los jugadores no genera errores cuando se suben a la plataforma giratoria.

162
 XD jajaja, Kostra me partistes el corazón, pero eres agradable. Dios te bendiga y te de prosperidad. Saludos.   :D
163
Hola,

Acepta tus juegos tal y como son, si tienen errores no los borres, si son aburrido no los jusgues, si ya no quieres continuar con ellos colocale una final brusco y muestralos al mundo. Pero no los dejes ni los olvides.

Nuestros propios juegos son como la chica de acné y anteojos que nos declaró su amor y que rechazamos porque no era perfecta, son como aquel empleo que no queremos aceptar porque no es perfecto, son como nuestros dientes que nunca terminamos de aceptarlos. Son como nuestro cuerpo que no nos agrada porque no se parece al de los actores de cine, son como aquel dibujo que arrojamos a la basura porque dejó de ser agradable.

No esperes a que tu juego quede perfecto. ¡Publicarlo!

Uso game maker desde el 2006 aproximadamente, ya no recuerdo. Y hoy he publicado un juego imperfecto, con muchos errores, bastante corto y básico, sin duda es aburrido, pero significa mucho para mí porque intenté explicar que no necesitamos ser perfectos para disfrutar esta vida. Puedes verlo en el siguiente enlace:

https://www.comunidadgm.org/juegos-completos/ya-no-quiero-ser-perfeto/

Creo que lo que yo debí hacer al principio fue aceptarme a mi mismo con mis errores e imperfecciones. Si hubiera echo eso no fuera borrado tantos juegos incompletos que intenté crear.

164
Juegos completos / Ya no quiero ser perfeto
Marzo 13, 2020, 04:41:36 AM


Ya no quiero ser perfeto


Plataformas


GM: Html5

Un garabato se siente frustrado porque no tiene forma circular pero luego se da cuenta que no necesita ser perfecto.







No se descarga, se juega directamente. Los que usan dispositivos móviles deben cambiar a "vista de escritorio".
https://www.kongregate.com/games/reyesdavila1987/ya-no-quiero-ser-perfeto

165
Hola.

Verifica que la presición del sprite no esté activada y tambien verifica que la image_speed sea adecuada. Si todo sigue igual agrega este código en un evento step.

[gml]while(!place_empty(x,y+2)){y-=1}[/gml]