Noticias

¡Ayuda a la Comunidad GM, haz una donación!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - dixon

Páginas: 1 2 3 ... 9
1
General / Re:Motivacion con Videojuegos
« en: Agosto 04, 2020, 02:31:30 am »
Hola, gusto en saludarlos.

Un niño juega y dibuja garabatos de colores luego presenta su obra de arte a su padre; el mira aquel desordenado dibujo y lo considera hermoso porque lo hiso su hijo, y el niño luego al ver la alegría del padre, vuelve a hacer otro dibujo y se lo muestra  a su madre. Tanto su padre como su madre al ver su obra de arte, tratan de evaluarla con sinceridad y con mucho entusiasmo y le dicen a su hijo "Que bella obra de arte has hecho", el niño al ver la sonrisa se siente motivado a seguir dibujando garabatos.

Motiva y serás motivado, eso quiere decir que para ser motivados necesitamos motivar a alguien. Cuando perdemos la motivación es hora de buscar a alguien para motivarlo. La motivación es como una siembra, hay que sembrar y luego cosechar, y la desmotivación es como la carencia de alimentos por falta de trabajo. Por tanto hay que motivar para ser motivado, hay que sembrar para luego cosechar, hay que ayudar para ser ayudado, hay que dar ánimo para recibir ánimo.

Agradecimientos a algunos maqueros:

TU PADRE: tu programa es bueno y sinceramente me ha gustado, es bastante sencillo porque me gustan las ideas nuevas que son diferentes, además me ha dado muchas ideas nuevas, felicidades de verdad.

DARKKRULER: coloque en google la imagen que tienes de perfil, y he notado que se trata sobre una serie gráfica. Vi algunas escenas y sin duda es bastante profunda, misteriosa, me gustó mucho lo que hicieron los autores de esa serie, crearon una especie de serie anime bastante profunda que engancha a cualquiera.

Marth: Todavía estoy tratando de copiar la motivación que tienes, es bastante grande,  sabes sacarle provecho a los juegos y tu motivación es constante.

SHAORAN: increíble los juegos que has realizado, ¿Cómo fue posible que lograras trabajar con tantas variables en el juego de la ciudad?, armasteis tu propia web y sabes dibujar muy bien.

Clamud: es notorio tu esfuerzo por darle respuesta a todo aquel que tiene una duda sobre game maker, tu empeño por ayudar es grande, inclusive a mí me has motivado y alentado a seguir adelante con mis metas,

T789: sigue buscando respuestas y las tendrás, siempre con la ayuda de Dios por supuesto, tienes mucha motivación.

Black_cat: Sorprendentes los dibujos manga que realizas, y los conocimientos que tienes... que puedo decir, todavía no he leído la guía de conexiones online, se ve que le has puesto mucho empeño.

Kostra: Gracias por guiarme a conseguir el significado de la vida, no sé si mi interpretación es la correcta pero “uno” es el significado de la vida, por tanto la humanidad es lo más importante, y lo más importante de un video juego son los autores de los mismos.

Cher3: la música es bastante motivadora y alegue, no he dejado de escucharla, con ella reflejas también que eres una persona alegre.

Me falto hablar de mis otros amigos, usuarios y administradores, espero que me disculpen.

Imagen de un juego que intente realizar pero perdí la motivación, en esta imagen se ven a algunos makeros de esta comunidad


Imagen de una historia que intente crear pero perdí la motivación.


 :-[

2
Preguntas y respuestas / Re:Modelo 3D con color y alpha variables
« en: Julio 22, 2020, 07:46:27 pm »
Hola gusto en saludarlo.

Cuando las cosas se ponen dificiles en game maker, entonces hay que crear editores.

La tecnica que mencionas como locura es bastante genial si se mira desde un punto de vista distinto.

Dejame alardear un rato: "cuando el programador no puede programar del mismo modo porque la cantidad de codigos es exagerada entonces debe crear editores de codigo que hagan el trabajo pesado, entonces el programador ya no escribe codigos sino que contruye estructuras complejas presionando un par de botones".

Mi recomendacion es que sigas usando los 10 modelos, pero crea un editor de modelos 3D a tu medida, que facilite la creacion de estructuras arquitectonicas complejas y que devuelva el codigo necesario, el cual estaria compuesto por draw_set_color y draw_set_alpha.

Ahora bien, no estoy queriendo decir que contruyas un autocad 2020, solo un pequeño programa que ubique los 10 modelos en algun punto en el espacio 3D empleando el mouse y las teclas del cursor, donde se pueda definir sus colores y su alpha, inclusive su textura, presionando algunos botones de la interface. Luego que exista un boton llamado "generar codigo gmk" y que al presionarlo cree un archivo de texto con el codigo usado.




3
General / Game Maker Fronteras
« en: Junio 18, 2020, 09:13:40 pm »
Hola, gusto en saludarlos.

Hay una propiedad en paper mario de wii  que siempre me llamó bastante la atención, es la propiedad de transformar mundos 3D en 2D y viceversa, tráiler .
Game maker puede hacer eso y mucho más, pero es necesario traspasar algunas fronteras de programación. No vengo a decirles cómo se crea ese efecto, vengo a hablarles de las nuevas fronteras, de esos nuevos retos que he encontrado al programar en Game Maker.





Mark Overmars declaró en su manual de Game Maker:
Citar
Entonces, ¿esto significa que es imposible crear tus propios juegos de computadora? Afortunadamente no. Por supuesto que no deberías Espere crear su propio Quake o Age of Empires en unas pocas semanas.
Designing Games with Game Maker Version 6.1 Written by Mark Overmars.

Refurtando, diré que con game maker y herramientas especiales, se puede crear un Age of the empire o Quake en menos de un més. Las herramientas que se requerirían para lograr eso, no existen aún o no las conozco, pero sé que se pueden desarrollar con game maker al igual que con otros lenguajes de programación. Estas herramientas imaginarias, también pudiesen ser utilizadas para crear cosas sorprendentes las cuales enlistaré:




4
Preguntas y respuestas / Re:Añadir mods a mi juego
« en: Junio 15, 2020, 04:43:08 pm »
Hola, gusto en saludarlo.

No sé si será buena respuesta, pero se puede lograr conociendo las siguientes funciones y otras más:

file_exists()//para determnar si un archivo x existe.
file_open_read()//para leer el contenido
excute_file()//para ejecutar el código que se encuentre en un archivo externo.(gm8)
get_file()//para buscar manualmente el archivo.
Faltaría un script que permita al programa reconocer todos los archivos de la carpeta mods.


Pasos

1. se crea un archivo de texto que contendrá los códigos necesarios que reportarán la velocidad del personaje y otras de sus características. Ejemplo:
Código: [Seleccionar]
Velocidad=6
Salto=14
Fuerza=50
Golpe=8
Nivel=3

también pudiese ser un archivo ini

Código: [Seleccionar]
[características]
velocidad=6
salto=14
fuerza=50
golpe=8
nivel=3
[imagen]
archivo="mods/imgx.png"
   
El archivo que tiene los códigos debe indicar en donde se encuentran las imágenes, es decir se necesitarán dos archivos, uno para la imagen y otro para los códigos. Pero si aun así quieres encapsular todo en un solo archivo, tienes que experimentar con un archivo comprimido a ver si se puede, pero si no se consigue, puedes lograrlo con estas dos técnicas:

1. Un archivo de imagen: en una sola imagen que contenga todos los sprites del personaje agregar una especie de código ORG el cual deberá ser escaneado y traducido por game maker. Suena difícil pero no. Solo se deberán analizar la existencia de puntos negros y contarlos para determinar el valor de alguna variable, y las variables se identifican por la posición de puntos negros.

2. Un solo archivo de texto: Encapsular todo, inclusive las imágenes en un solo archivo de texto. Se debe crear previamente un pequeño programa scaner que transforme los píxeles de la imagen en código hexadecimal:


str="[12300ff][0001234e][1233460]......"

Luego agregar el código en la capeta mod, el programa deberá interpretar la imagen, traducirla, dibujarla y luego hacer una captura de pantalla para obtener la imagen, luego debe indicarse a qué código pertenece la imagen y la carga de los códigos adicionales.

También pudiese hacerse con un archivo ini, ejemplo:

[imagen]
str="[12300ff][0001234e][1233460]......"


El proceso de interpretación de imagen no debe hacerse cada ves que se ejecute el juego, debe crearse una base de datos que indique que el archivo ya fue escaneado y la imagen ya fue obtenida. Por tanto se requiere saber un poco de base de datos o aplicar otra técnica.

Por último se establece la relación imagen código para crear al personaje, recuerda que estamos hablando de una sola imagen que contenga todos los sprites del personaje, pero también se puede hacer con imágenes individuales.

Falto mencionar el sprite_add

Imagen propuesta para ser usada como mod, donde el código org debe ser escaneado para determiar el valor de las variables del personaje:


Quizás exista una función en game maker studio que haga todo esto, esta es la forma de hacerlo de manera manual.

5
Hola gusto en saludarlos de nuevo. Dios los cuide.

Si Dios me lo permite implementaré en mis posteriores juegos, pequeñas entrevistas, test, en cuentas y diversas técnicas de recolección de datos. Con el objetivo de  conocer los distintos gustos y preferencias que tienen los usuarios en cuanto a video juegos, De esta forma podré tomar buenas decisiones en la creación juegos.

La dificultad que presento es que no sé nada sobre conexiones online y deseo pasar la respuesta de cada jugador a un solo archivo de texto que pudiese estar alojado google drive, en alguna nube o un hosting.

Déjenme explicar un poco mejor la cosa, con unas imágenes.



Solicito todo tipo de ideas, métodos, códigos, algo que me dé algo de luz.

6
Hola, gusto en saludarlo.

Estas devuelven la resolución de pantalla.

Código: [Seleccionar]
display_get_width();
display_get_height();

7
General / Tips para crear juego de preguntas y respuestas
« en: Mayo 26, 2020, 07:42:02 am »
Hola, saludos cordiales.

Me dedico a crear juegos de preguntas y estos son algunos de ellos:
1. Queremos ser abogados
2. Fundamentos básicos de Godot
3. ¿Cómo preparar vitel toné?
4. Wikipedia JavaScript


Actualmente me encuentro creando otro.

Para facilitar la creación de un juego de preguntas y respuestas, he desarrollado un programa gratuito, que mediante la ayuda de Microsoft Exel se logra estructurar y organizar las preguntas de manera rápida, este programa se llama: Preguntas exel a GMK.

¿Qué puedo lograr con la ayuda de este programa?
*.   Redactar preguntas de manera rápida con sus respectivas alternativas mediante Microsoft Exel.

¿Qué obtengo con este programa?
*.   Un código para Game maker que contiene una lista de preguntas organizadas con sus respectivas alternativas.

¿Cómo se utiliza este programa?

1.   Creamos las preguntas organizadas en exel.


2.   Seleccionamos todas las casillas y la pegamos en un archivo de texto.


3.   Ejecutamos el programa seleccionamos el archivo de texto y creamos el código.


4.   Integramos este código a game maker.


Puedes descargar este programa por mega.
 

También se ha adjuntado el archivo para los usuarios registrados.

A futuro si Dios me lo permite, lograré mejorar el programa para generar juegos completos. Donde se pueda elegir entre distintos estilos y tomando como base los juegos de preguntas más populares.

Anexos:
Juego de preguntas y respuestas, los cuales serán tomados como referencia para mejorar el programa:

Juego de cultura general, tambien llamado maratón de preguntas.


Quien quiere ser millonario para gba


Hacer preguntas o en otras palabras hacer reactivos:

Elaborar preguntas puede ser una tarea fácil para algunas personas, pero para otros puede ser complicado y confuso. La elaboración correcta de las preguntas facilitará su compresión, es por eso que es de vital importancia estudiar lo que se conoce como la elaboración de reactivos que no es más que la elaboración de preguntas, y para eso se presentará a continuación un enlace a una web que nos permitirá comprender lo que son y cómo se denominan cada una de las partes que componen a las preguntas de selección simple, las cuales aplicaremos en nuestros video juegos.

Elaboración de reactivos
https://es.coursera.org/lecture/evaluacion-aprendizaje-enfoque-cuantitativo/elaboracion-de-reactivos-gqqZq

8
Preguntas y respuestas / Re:reconocer los argumentos de los scripts
« en: Mayo 22, 2020, 06:25:44 pm »
Hola,
! Funcionó ¡👍, Gracias NiuWeb.

Imagen 1: Primero creé el script y le agregué tres barras en un comentario donde se explican los argumentos. Como lo indicó NiuWeb.


imagen2: Luego comprobé que aparecía en el script.


Imagen 3: También me di cuenta que se pueden ver los argumentos bajo.

Sólo funciona en game maker studio y supongo que en GMS 2. En versiones anteriores no funciona.

9
Hola, gusto en saludarlos.

Imagen 1: Game maker reconoce los argumentos de la función draw text.


Imagen 2: Game maker no reconoce los argumentos de un script original.


Explicación: Cuando redactamos una función como "draw_text", game maker nos ayuda a autocompletar y nos muestra el nombre de los argumentos (x,y,str). Pero cuando creamos un script, game maker solo reconoce el script pero no el nombre de sus argumentos. ¿Existirá alguna forma de indicarle a game maker cuál es el nombre de los argumentos para que los reconozca y luego nos los muestre?

Entradas:
Reconocer argumentos, Reconocer mi script, reconocer los argumentos de mi script, identificar los argumentos, identificar mis argumentos, ¿por qué game maker no ve los argumentos?, ¿cómo se editan los scripts? ¿Cómo lograr que game maker reconozca mis scripts?, ¿qué es un argumento, por qué no veo mis argumentos?, reconocer los argumentos de un script original, distingir argumentos, distinguir los argumentos de un script, declarar los agumentos, declarar el nombre de los argumentos, nombre de los argumentos.


10
General / Sueños y esperanzas sobre video juegos.
« en: Mayo 13, 2020, 06:44:41 pm »
Hola, gusto en saludarlos.
Si Dios me lo permite, en el futuro podré crear un salón de video juegos educativos. Ese es uno de mis sueños.

Imagen de un salón de video juegos educativos, solo se ven pantallas, no se necesitarán dispositivos de entrada como ratón, teclado, mouse o joystick, etc… Se pretende implementar el reconocimiento de movimientos corporales.


Bien, para lograr eso tengo que adquirir los siguientes conocimientos y otros más:
1.   Interacción por movimientos: El usuario no tendrá que usar ninguna interface para jugar los juegos (Teclado, mouse, Joytick, etc…). Debe existir un dispositivo que reconozca el movimiento de la mano o el cuerpo. Si no existiese trataría de inventarlo usando una cámara web.
2.   Conexiones online: Bueno tengo que aprender de las guías de Black_kat, y los conocimientos que Kostra nos ofrece en sus scripts. Sé que hay más usuarios dedicados a las conexiones online, discúlpenme por no mencionarlos. Los videos juegos deben permitir comunicación online con otros jugadores en diversas partes del mundo. Nada difícil para los que ya saben eso.

Características de los juegos:
1.   El usuario debe escoger un juego luego debe escoger el tema educativo.
2.   Multijugador en la misma pantalla, lan y online.
3.   El usuario no usará dispositivos de entrada comunes (mouse, teclado, ratón, joystick, etc…), Se usará un dispositivo que reconozca el movimiento corporal.

En cuanto a la diversión: Para hacer divertidos los juegos tengo que agarrar consejos, y escuchar las recomendaciones de ustedes.
Creo que para alcanzar los sueños tengo que tener la esperanza de que se cumplirán y para tener la esperanza tendría que imaginar que ya he alcanzado ese sueño.


11
General / Re:Scripts en desarrollo
« en: Mayo 02, 2020, 07:23:59 pm »
Hola, saludos cordiales.Gracia spor comentar.

No es un bug, es la modalidad de engancharse para crear barras de desplazamiento como las de Medroid.

Imagen de metroid fusion de game boy advance (izquierda) comparado con el proyecto para Game Maker studio (derecha).


Puedes activar y desactivar eso modificando el sexto argumento del script pp_movimientos
pp_movimientos (pp_velocidad ,pp_aceleración , pp_friccion, pp_gravedad, pp_fuerza_salto, pp_techo , pp_tipo_objeto):

El uso de ese script está especificado en la documentación, donde se indica:
pp_techo: Interacción con el techo; puede tener cuatro valores:
0 para que tarde un poco en bajar.
1 para colisionar normalmente.
2 para rebotar.
3 para pegarse al techo dejando presionada la tecla de salto.

Tambien puedes utilizar estas combinaciones para crear los siguientes movimientos:
Para movimiento normal: pp_movimientos(5,1,0.5,1,5.5,1,-2)
Para moverse sobre Hielo: pp_movimientos(5,0.4,0.1,1,5.5,1,-2)
Para Gravedad de luna: pp_movimientos(3,0.4,0.08,0.29,2.2,1,-2)

12
General / Re:Scripts en desarrollo
« en: Abril 27, 2020, 07:46:59 pm »
Hola, saludos.
Si dios quiere, se logrará la creación el siguiente script:
Plataformas precisas
Etapa 15-17

Nombre del script:  pp_movimientos (movimientos para plataformas precisas).
Breve descripción de su función: Facilitar la creación de juegos de plataforma, garantizar movimientos precisos sin errores y garantizar diversas funcionalidades.
Game maker utilizado: Compatible con todas las versiones desde Game Maker 5.3A hasta studio.

¿Qué se puede hacer con este script?
Mediante este paquete de scripts se puede mover a un objeto con precisión en juegos de plataforma.
 El objeto podrá:
1.   Subir y bajar colinas cuidando los detalles del movimiento.
2.   La máscara del objeto podrá ser tan pequeña como un pixel, sin generar errores
3.   El movimiento cuenta con aceleración y fricción para garantizar  la creación de suelos resbaladizos de hielo.
4.   Interactuar con los techos de la plataforma.

 También se podrá:
1.   Configurar las teclas rápidamente.
2.   Graduar el movimiento del objeto de manera fácil.
3.   Asignar fácilmente los múltples sprites del personaje.

Modo de uso: Copiar los scripts uno por uno y crear una lista de scripts en game maker con su nombre exacto. Luego colocar los siguientes códigos en un objeto:

para el evento create
Código: [Seleccionar]
pp_create()
para el evento step
Código: [Seleccionar]
pp_inicio()
pp_mando(vk_left,vk_up,vk_right,vk_down,ord("Z"))
pp_movimientos(5,0.75,0.25,1,5.5,1,-2)

Lista de scripts
Spoiler
pp_creacion
Código: [Seleccionar]
//Nombre del script: pp_creacion
//Este script es para el evento create o creación

//Variables para script pp_movimientos
//pp_movimientos(velocidad,aceleracion,friccion,gravedad,salto,techo,object_type)
pp_velocidad=0 //Velocidad horizontal máxima a alcanzar.
pp_aceleracion=0 //Aceleración o incremento de la pp_velocidad horizontal.
pp_friccion=0 //Fricción o rose que disminuye la pp_velocidad horizontal.
pp_gravedad=0 //Gravedad con la que los objetos son atraídos hacia abajo.
pp_salto=0 //Fuerza de salto o pp_velocidad inicial ascendente.
pp_techo=0 //Interacción con el techo; puede tener cuatro valores: 0 para que tarde un poco en bajar, 1 para colisionar normalmente, 2 para rebotar, 3 para pegarse al techo dejando presionada la tecla de salto.
pp_tipo_objeto=0//Tipo de objeto con el cual se puede colisionar. se puede colocar lo siguiente: -1 para objetos solidos, -2 para todos los objetos y tambien se pueden colocar el nombre o numero de objeto para especificar al objeto.

//variables de dirección y salto
pp_d=1 //dirección inicial que tendrá el objeto: 1 derecha y -1 izquierda.
pp_vxpre=0// pp_velocidad x previa, o movimiento horizontal sin analizar.
pp_vs=0//pp_velocidad vertical
control=0 //para controlar el movimiento del personaje

//INDISPENSABLE PARA script pp_movimientos
pp_movimientos_numero=0 //Contador de scripts movimiento
pp_boton_izquierda=0
pp_boton_arriba=0
pp_boton_derecha=0
pp_boton_abajo=0
pp_boton_salto_pressed=0
pp_boton_salto=0

//INDISPENSABLES PARA script pp_mando
pp_mando_numero=0//Contador de scripts pp_mando

//INDISPENSABLES PARA pp_sprites
pp_sprite_diry=1
pp_sprite_movimientox=0
pp_sprite_movimientoy=0

//INDISPENSABLE PARA pp_sprite y pp_movimiento
pp_estado="suelo"
pp_estado2="parado"
pp_colina=0//para las colinas

//resbalarse en colinas
pp_aceleracion_colina=0
pre_colina=0
v_colina=0


pp_libre
Código: [Seleccionar]
//Nombre del script: pp_libre
//Este script lo requiere el script pp_movimientos.
//pp_libre(x,y,tipo_objeto): para determinar si un tipo de objeto se encuenta en un lugar, En tipo_objeto puedes usar -1 para solidos, -2 para todos y el nombre de un objeto.

//Este script cumple la función de detectar objetos al igual que las funciones meeting, free y empty. Es indispensable para controlar el tipo de objeto a detectar.
{
libre_object=argument2 //Detectando tipo de objeto
pre_return=0 //Preparando la salida del script
if(libre_object>=0){pre_return+=(place_meeting(argument0,argument1,libre_object)=0)}//Verificando si se ha indicado objeto
pre_return+=place_free(argument0,argument1)*(libre_object=-1)//Verificando si el objeto es solido
pre_return+=place_empty(argument0,argument1)*(libre_object<=-2)//Verificando a cualquier objeto
return pre_return //Devolviendo resultado.
}

//Este código presentaba errores en Html5 pero se remplazó la siguiente función
//pre_return+=(place_meeting(argument0,argument1,argument2)=0)*(libre_object>=0)
//se reemplazó por esta:
//if(libre_object>=0){pre_return+=(place_meeting(argument0,argument1,libre_object)=0)}




pp_inicio
Código: [Seleccionar]
//Nombre del script: pp_inicio
//Este script debe ser el primero en el evento step.
//Es indispensable para contar a los diferentes scripts.

//para los scripts input
pp_mando_numero=0 //numero de scripts input que se van ejecutando por step.
pp_movimientos_numero=0 //numero de scripts movements que se van ejecutando por step.




pp_mando
Código: [Seleccionar]
//Nombre del script: pp_mando
//Este script se coloca en el evento step debajo del script pp_inicio
//Se emplea para definir las teclas a usar.

//Estructura
//pp_mando(pp_boton_izquierda,pp_boton_arriba,pp_boton_derecha,pp_boton_abajo,boton_salto)

//Ejemplo de uso:
//pp_mando(ord("A"),ord("W"),ord("D"),ord("S"),ord("M"))
//pp_mando(vk_left,vk_up,vk_right,vk_down,ord("X"))
//pp_mando(100,104,102,98,ord("X"))

pp_mando_numero+=1; //contando los scripts pp_mando.
if(pp_mando_numero=1){//Para evitar errores por muchos scrpts pp_mando
//botones a usar
pp_boton_izquierda=keyboard_check(argument0)
pp_boton_arriba=keyboard_check(argument1)
pp_boton_derecha=keyboard_check(argument2)
pp_boton_abajo=keyboard_check(argument3)
pp_boton_salto_pressed=(pp_boton_salto=0)*keyboard_check(argument4)
pp_boton_salto=keyboard_check(argument4)
}

pp_movimientos
Código: [Seleccionar]
//Nombre del script: pp_movimientos
//Se coloca en el evento step o paso, debajo de pp_mando.

//Estructura:
//pp_movimientos(velocidad,aceleracion,friccion,gravedad,salto,techo,tipo_objeto)

//Ejemplo de uso:
//Normal: pp_movimientos(5,1,0.5,1,5.5,1,-2)
//Hielo: pp_movimientos(5,0.4,0.1,1,5.5,1,-2)
//Gravedad de luna: pp_movimientos(3,0.4,0.08,0.29,2.2,1,-2)

pp_movimientos_numero+=1 ;//sumando cada script movements.
if(pp_movimientos_numero=1) //garantizando el uso de un solo script movement para evitar errores.
{

/////////////////////////ADMINISTRADOR DE ARGUMENTOS
pp_velocidad=argument0; //Velocidad X máxima, o velocidad horizontal máxima.
pp_aceleracion=argument1; //Aceleracion del movimiento x, o movimiento horizontal.
pp_friccion=argument2; //Fricción del movimiento horizontal
pp_gravedad=argument3 //Gravedad, o velocidad vertical positiva.
pp_fuerza_salto=argument4 //Fuerza de salto o velocidad inicial ascendente
pp_techo=argument5 //Techo: tipo de choque con techo
pp_tipo_objeto=argument6 //detectando el tipo de objeto con el cual colisionar

//condiciones para estar agachado según mario world 1 snes
if((pp_estado="suelo")&&(pp_boton_abajo)){pp_estado2="agachado"}
if((pp_estado2="agachado")&&(pp_estado="suelo")&&(pp_boton_abajo=0)){pp_estado2="parado"}
if(pp_colina!=0){pp_estado2="parado"}

//condiciones para permitir el caminar segun mario bros world 1 snes
condicion1=(pp_estado="no_suelo")
condicion2=(pp_estado="suelo" && pp_estado2="parado")

//condiciones para resbalarse en colina
condicion4=(pp_estado="suelo")*pp_libre(x-3,y+1,pp_tipo_objeto)*(pp_libre(x,y+2,pp_tipo_objeto)=0)
condicion3=(pp_estado="suelo")*pp_libre(x+3,y+1,pp_tipo_objeto)*(pp_libre(x,y+2,pp_tipo_objeto)=0)
pp_colina=0
if(condicion4){pp_colina=-1}
if(condicion3){pp_colina=1}
pp_aceleracion_colina=abs(pp_colina)

////////////////////////MOVIMIENTO X O MOVIMIENTO HORIZONTAL
//pp_velocidad=argument0; //Velocidad X máxima, o pp_velocidad horizontal máxima.
//pp_aceleracion=argument1; //Aceleracion del movimiento x, o movimiento horizontal.
//pp_friccion=argument2; //Fricción del movimiento horizontal
control=(pp_boton_izquierda+pp_boton_derecha=1) //Permite el movimiento horizontal solo cuando una sola de las teclas son presionadas.
if(control){pp_d=1-2*pp_boton_izquierda} //Permite el cambio de la dirección. 1 para derecha y -1 para izquierda.
if(control && (condicion1||condicion2)){pp_vxpre+=pp_aceleracion*pp_d} //relacionando la velocidad con la direccion.
if((control=0)&&(condicion3 || condicion4)){pp_vxpre+=((pp_colina=1)-(pp_colina=-1))*((pp_aceleracion_colina)+(pp_aceleracion_colina*2*pp_boton_abajo))} //Mover a estar en una colina
if(pp_vxpre>pp_velocidad){pp_vxpre=pp_velocidad}//limitando la velocidad
if(pp_vxpre<-pp_velocidad){pp_vxpre=-pp_velocidad}//limitando la velocidad negativa
if(abs(pp_vxpre)){pp_vxpre-=sign(pp_vxpre)*pp_friccion}//reduciendo la velocidad con la fricción
if((pp_vxpre<pp_friccion) && (pp_vxpre>-pp_friccion)){pp_vxpre=0}//Evitando errores: Haciendo la velocidad cero cuando esté proxima a cero.
///CALCULANDO EL MOVIMIENTO X DEFINITIVO.
xdef=0 //movimiento X, definitivo sin colisiones. Por calcularse.
for(i=1;i<=abs(pp_vxpre) && pp_libre(x+i*sign(pp_vxpre),y,pp_tipo_objeto);i+=1){xdef+=sign(pp_vxpre)}//Calculando y comprobando que el movimiento x no presentará colisiones. Si resentare colisiones entonces será reducido hasta llegar a cero.
x+=xdef //Movimiento X, final.






///////////////////////////////MOVIMIENTO Y O MOVIMIENTO VERTICAL
//Determinar si hay un suelo
pp_estado="no_suelo" //permitir salto cuando exista suelo a los pies.
for(i=1;i<=1+floor(abs(pp_vxpre)*2) && (pp_estado="no_suelo") && (pp_vs>=0);i+=1){if(pp_libre(x,y+i,pp_tipo_objeto)=0){pp_estado="suelo";pp_vs=0;y+=i-1}}

//pp_gravedad=argument3 //pp_gravedad, o velocidad vertical positiva.
//para permitir el salto cuando las condiciones estén dadas
if(pp_boton_salto_pressed && (pp_estado="suelo") && (pp_vs>=0)){pp_salto=pp_fuerza_salto} //Condiciones para generar la acción de salto.
pp_salto=pp_salto-pp_gravedad //disminuyendo impulso de salto con la gravedad.
if(pp_salto<=0)pp_salto=0 //para evitar que el salto produzca errores.
pp_vs+=pp_gravedad-pp_salto //relacionando salto y gravedad.

//CHOQUE CON EL TECHO
//pp_techo=argument5
//al chocar con el techo
cx=0
cx=(pp_libre(x,y-1,pp_tipo_objeto)=0)
if(cx){//cuando hayga un techo a la cabeza
if((pp_techo=1) && (pp_vs<0)){pp_vs=0} //para colisionar normalmente
if((pp_techo=2) && (pp_vs<0)){pp_vs=pp_vs*-1} //para rebotar
if((pp_techo=3) && pp_boton_salto){pp_vs=0} //para pegarse al techo
}

//MOVIMIENTO Y DEFINITIVO
ydef=0 //movimiento Y, definitivo sin colisiones. Por calcularse.
for(i=1;i<=abs(pp_vs) && pp_libre(x,y+i*sign(pp_vs),pp_tipo_objeto);i+=1){ydef+=sign(pp_vs)}//CORRECTOR DE MOVIMIENTO VERTICAL. Este sistema verifica que el movimiento a dar esté libre de colisión, de lo contrario lo vá reduciendo hasta que no exista colisión.
y+=ydef //movimiento Y, final.







/////////////////////////////////SUBIR COLINAS
repeat(floor(abs(pp_vxpre))*(abs(pp_vxpre)>1)){ //se repite el siguiente código para acelerar la subida de una colina
libre_y=0// El espacio libre a la cabeza del personaje
for(i=1;i<=2 && pp_libre(x,y-i,pp_tipo_objeto);i+=1){libre_y+=1}
libre_y2=0// El espacio libre delante del personaje
for(i=0;i<=libre_y && pp_libre(x+sign(pp_vxpre),y-libre_y+i,pp_tipo_objeto);i+=1){libre_y2+=1}
libre_y+=(libre_y>0) //salto minimo
libre_y-=libre_y2 //Al salto total le restamos el espacio libre que tenemos adelante para poder hacer un salto exacto
c3=pp_libre(x+sign(pp_vxpre),y-libre_y,pp_tipo_objeto)
c4=pp_libre(x+sign(pp_vxpre),y-1,pp_tipo_objeto)
c5=(pp_libre(x+sign(pp_vxpre),y,pp_tipo_objeto)=0)
c6=pp_libre(x,y-1,pp_tipo_objeto)
if((c3 || c4) && c5 && abs(pp_vxpre) && c6){y-=pp_libre(x,y-1,pp_tipo_objeto)+pp_libre(x,y-2,pp_tipo_objeto)*(libre_y=2);if(abs(pp_vxpre)>1.5){x+=sign(pp_vxpre)*pp_libre(x+sign(pp_vxpre),y,pp_tipo_objeto)}}
}

}//fin if(pp_movimientos_numero=1)



pp_sprites
Código: [Seleccionar]
//Nombre del script: pp_sprite_
//pp_sprite_(parado,caminando,saltando,cayendo,agachado,mirando_arriba,resbalandose,frenando)

pp_sprite_direccion=argument0
pp_sprite_parado=argument1
pp_sprite_caminando=argument2
pp_sprite_saltando=argument3
pp_sprite_cayendo=argument4
pp_sprite_agachado=argument5
pp_sprite_mirando_arriba=argument6
pp_sprite_resbalandose=argument7
pp_sprite_frenando=argument8

pp_sprite_return=0
if(x=xprevious){pp_sprite_movimientox=0}else{pp_sprite_movimientox=1}
if(y=yprevious){pp_estadoy=0}else{pp_estadoy=1}
if(y>yprevious){pp_sprite_diry=1}
if(y<yprevious){pp_sprite_diry=-1}

//CUANDO ESTÁ EN EL SUELO
if(pp_estado="suelo"){
//Cuando está estático en el suelo
if(pp_sprite_movimientox=0){pp_sprite_return=pp_sprite_parado}
//si esta en el suelo y se está moviento
if(pp_sprite_movimientox=1){
pp_sprite_return=pp_sprite_caminando;//si esta caminando
if((sign(pp_vxpre)!=pp_d)*(pp_colina=0)){pp_sprite_return=pp_sprite_frenando}//si esta frenandose
}
//CUANDO MIRA HACIA ARRIBA
if((pp_sprite_movimientox=0)&& pp_boton_arriba){pp_sprite_return=pp_sprite_mirando_arriba}
//RESBALANDOSE
if((pp_colina!=0)&&(control=0)&&(pp_boton_abajo)){pp_sprite_return=pp_sprite_resbalandose}
}

//CUANDO NO TIENE NADA BAJO LOS PIES
if(pp_estado="no_suelo"){
//Cuando saltando y subiendo
if(pp_sprite_diry=-1){pp_sprite_return=pp_sprite_saltando}
//si esta en el suelo y se está moviento
if(pp_sprite_diry=1){pp_sprite_return=pp_sprite_cayendo}
}

//CUANDO ESTÁ AGACHADO
if(pp_estado2="agachado")
{
pp_sprite_return=pp_sprite_agachado
}

if(pp_sprite_direccion!=0)
{
if(pp_sprite_direccion=pp_d){sprite_index=pp_sprite_return}
}
else
{sprite_index=pp_sprite_return;image_xscale=pp_d}//para usar image_xscale

image_speed=0.4









13
Juegos completos / ABC
« en: Abril 26, 2020, 06:20:43 am »


ABC


Serious Game


Game Maker 4.3c (2001)



Este es un juego creado para ayudar a los niños a aprenderse las letras del abecedario.




Solo para windows
Descarga de Mega
Descarga de esta comunidad


Más detalles:

Este juego, forma parte de un conjunto llamado "Pre-juegos educativos" el cual se inició con EL RESCATE DE LA TABLA DE MULTIPLCAR.

Los pre-juegos educativos trabajan así:

1.   Se inician automáticamente antes de cualquier video juego.
2.   Proponen una práctica educativa. (sumar, restar, abecedario, multiplicación, inglés, etc…)
3.   Verifican que la práctica se ha realizado correctamente.
4.   Al finalizar la práctica permite la ejecución del juego.

Uso de la herramienta ABC.exe:
1.   Encontrarás los siguiente archivos: ABC.exe e IniciarPrograma.txt
2.   Determina el juego que será restringido.
3.   Ubica la dirección del juego presionando botón derecho del mouse en el acceso directo del juego y luego en Abrir ubicación.
4.   Antes de copiar los archivos: ABC.exe e IniciarPrograma.txt en la carpeta del juego: Abre el archivo IniciarPrograma.txt
5.   Escribe el nombre del juego con su respectiva extensión, ejemplo: Minecraft.exe
6.   Guarda los dos archivos en la carpeta del juego.
7.   Dirígete al escritorio donde se encuentra el acceso directo del juego.
8.   Presiona el ícono del juego con el botón derecho del mouse y ve a propiedades.
9.   En la pestaña “acceso directo” ubica la dirección que aparece en “Destino:”, y al final de esta reemplaza el nombre del juego por ABC.exe en mayúscula. Debe quedarte algo como esto: "C:\Program Files\Internet Explorer\ABC.exe" pero con otra dirección. Presiona aplicar y aceptar.

Listo, cuando el niño ejecute el juego se ejecutará el ABC.exe el cual lo motivará a practicar las palabras antes de ponerse a jugar.


14
General / Scripts en desarrollo
« en: Abril 25, 2020, 07:53:06 pm »
Buen día, saludos cordiales.

Si dios quiere se desarrollará el siguiente script

draw_hipertext
Nombre del script:  Nombres propuestos: draw_hipertext, draw_rtf (Rich Text Format), draw_forotext, draw_htmltext…
Breve descripción de su función: Devolver string o texto con hiperenlaces y otras funciones aún no definidas.
Game Maker utilizado: Game Maker 4.1c (2001), se pretende compatibilidad con otras versions.
Importancia del script: Para agilizar la interacción de los usuarios de programas Gmk, se propone el presente script con el cual se pretende enriquecer los distintos textos o string mediante el reconocimiento de diversas marcas o etiquetas tales como: url e img.



Script en etapa 1:
Código: [Seleccionar]
repeat(score=0)
{
texto="Para visitar la comunidad Game Maker, presiona [url=https://www.comunidadgm.org]Aquí[/url]"


//lector
argument1=texto

code=0
str_code=""
et_ap=0
et_cp=0
url_p=0
url_length=0
contenido_p=0
contenido_length=0
length=string_length(argument1)
for(i=1;i<=length;i+=1)
{
str_ram=string_copy(argument1,i,1)
if(str_ram="[" && code=0){code=1;et_ap=i}


if(code=3){
if(str_ram="["){code=4;str_code="";et_cp=i}else{contenido_length+=1}}

if(code=2){
if(str_ram="]"){code=3;str_code="";contenido_p=i+1}else{url_length+=1}}

if(code=1){
str_code+=str_ram
if(str_code="[url="){code=2;url_p=i+1;str_code=""}}


}

etiqueta_a=string_copy(texto,et_ap,5)
etiqueta_c=string_copy(texto,et_cp,6)
url_x=string_copy(texto,url_p,url_length)
contenido_x=string_copy(texto,contenido_p,contenido_length)



score=1
}

//botones
if(keyboard_check(113)){game_restart()}

//dibujo
dy=0
dx=0

txt=texto
txt="Texto: "+string(txt)
draw_text(dx,dy,txt)
dy+=40;if(dy>room_height-20){dy=0;dx+=100}

txt=etiqueta_a
txt="Etiqueta de apertura: "+string(etiqueta_a)
draw_text(dx,dy,txt)
dy+=20;if(dy>room_height-20){dy=0;dx+=100}

txt=etiqueta_c
txt="Etiqueta de cierre: "+string(txt)
draw_text(dx,dy,txt)
dy+=20;if(dy>room_height-20){dy=0;dx+=100}


txt=url_x
txt="Dirección web: "+string(url_x)
draw_text(dx,dy,txt)
dy+=20;if(dy>room_height-20){dy=0;dx+=100}

txt=contenido_x
txt="Contenido o texto a mostrar: "+string(txt)
draw_text(dx,dy,txt)
dy+=20;if(dy>room_height-20){dy=0;dx+=100}


Resultado de etapa 1

15
Preguntas y respuestas / Re:multijugador CO-OP
« en: Abril 24, 2020, 09:25:41 am »
Hola, gusto en saludarlo.

Realmente no sé mucho de conexiones online y no puedo demostrar mediante código que se puede programar ese servidor master. Pero estoy tratando de comprender eso.

Recomiendo que leas este Gran tutorial creado por Black_cat llamado: Cómo conectar jugadores multiplayer TCP GMStudio (Para descargarlo hay que loguearse).

Aqui tienes otra entrada a la versión anterior de ese tutorial:
https://www.comunidadgm.org/articulos/(programacion)hacer-un-juego-multijugador-online-con-game-maker-studio-ver2/

Aquí también encontrarás otros tutoriales sobre conexiones online de otros usuarios bastante apasionados por Game Maker y la informática en general:
Artículos

Páginas: 1 2 3 ... 9