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

Páginas: 1 2 3 4 5
46
Son bastante malos los tutoriales de hektor profe, para principiantes.
Usa notacion super acoplada y poco intuitivas para los aprendices.

Yo te recomiendo que desaglomerés el programa en algo que sea cómodo, sino pasan cosas como esta: copio todo lo que veo sin entenderlo y ahí esta el problema.

No soy partidario de solucionar problemas de un tuto o de un engine.
Y seguramente suene mala onda pero... mirate el video de nuevo en todo caso.
Los siguientes usuarios dieron las gracias a este tema: bygdle, Fashion_Trozos

47
Preguntas y respuestas / Re:VARIABLE PYTHON3.6
« en: Febrero 21, 2019, 11:55:02 pm »
Bueno en el mismo manual está indicado como se usan los bufffers:

https://docs.yoyogames.com/source/dadiospice/002_reference/buffers/index.html

Ahí indica el tamaño que tendrá el buffer en bytes y el "alineamiento" que es decir cada cuantos bytes está separado.
Si yo pongo el alineamiento a 4 bytes, entonces las variables que guarde tendrían que tener ese tamaño o menos.
Acá está la lista de tipos que hay, y cuanto ocupan:
https://docs.yoyogames.com/source/dadiospice/002_reference/buffers/buffer_write.html
Hay que tener en cuenta la conversion de bits a bytes.
Los siguientes usuarios dieron las gracias a este tema: nonoroman

48
Preguntas y respuestas / Re:VARIABLE PYTHON3.6
« en: Febrero 21, 2019, 02:11:26 pm »
Yo sé de python pero nunca lo usé para enviar datos a un server.
De todas maneras no parece ser algo realmente complicado, según el manual de Game Maker, dice que al enviar los datos con raw, se envia un solo coso de bytes.

Solo tendrías que seguir la estructura del buffer que definiste, es decir el orden en que pusiste los datos.

Mi pseudocodigo sería:

1- obtener el paquete de datos con el servidor2- saber el tamaño del paquete
3- ir dividiendolo en partecitas para rescatar los datos
Eso creo que ya tiene que ver qué funciones dispone Python para manejar buffers.
Los siguientes usuarios dieron las gracias a este tema: nonoroman

49
Preguntas y respuestas / Re:cancelar colision ?
« en: Febrero 13, 2019, 06:26:55 pm »
Se puede, usando una condicion if:

if (sprite_index <> spr_verde){ //si el sprite es diferente de verde, colisionar
     //efectuar comandos de colision
}

// en otro caso, no sucede nada.


Aunque claro, depende de cómo estés haciendo las cosas, si con los eventos predefinidos o a través de un metodo de colision como collision_rectangle(...).
Los siguientes usuarios dieron las gracias a este tema: florgm

50
Preguntas y respuestas / Re:GAME MAKER 1.4 Y ARQUITECTURA 64 BITS
« en: Febrero 03, 2019, 01:14:53 am »
Joder!!! Realmente esto es asi?? Alguien mas lo puede confirmar??
Y con GMStudio 2 supongo que si sera posible continuar haciendo juegos para android. No??
Saludos y Abrazos!!!
Si, pero cuesta bastante dinero la version para export mobile de GMStudio 2, teniendo en cuenta claro, de que a dia de mañana puede ser una inversion, pero... es tan costoso que no vale siquiera la pena comprar el modulo a menos que tengás un hitazo entre manos.
Es creo, sino la razon principal por la que la gente está migrando a otros motores de juegos gratuitos
Los siguientes usuarios dieron las gracias a este tema: nonoroman

51
Preguntas y respuestas / Re:GAME MAKER 1.4 Y ARQUITECTURA 64 BITS
« en: Febrero 02, 2019, 08:09:37 pm »
En teoria, GMS1.4 solo hace builds para 32 bits. :-\
Segun leí, recien en las version armv8 de procesadores se incorpora la aqruitectura de 64bits
Game Maker studio 1.4 hasta donde veo, en la configuracion puede exportar para armv5 y armv7. De ahi la lista sigue para consolas y bla bla.

[...] sigue funcionando para hacer juegos sin problemas???Si, todavia funciona el export para android, todavia anda bien, de momento.
El problema es subirlo a Google Play y que no te lo reboten por tal o cual motivo.

De todas maneras GMS1.4 no es la mejor solucion a dia de hoy para seguir haciendo juegos para Android, justamente porque ya no va a haber soporte y en el eventual caso de que pudieses poner tus apps en la store, mas temprano que tarde va a quedar obsoleto por alguna actualizacion de API.

 GMStudio seguira funcionando para estas nuevas arquitecturas??
La 1.4, no, claramente.


Pero bueno, sigue funcionando para hacer juegos para pc(?



Los siguientes usuarios dieron las gracias a este tema: nonoroman

52
Juegos completos / [CGMGameJam] La Bruja de los colores
« en: Enero 20, 2019, 07:32:30 pm »


La Bruja de los colores


Shooter


GM: Studio2

Personificas a la gata Black_cat para salvar a tu pueblo que se quedó en blanco y negro por culpa de la bruja Carolina Colorina, que pasea por los asentamientos robandose la vida y los colores.
Tu deber es darle una cucharada de su propia medicina combatiendo color con color.









Adjunto


COMO SE JUEGA:
1) se mueve con las flechas
2) agarra/suelta un cubo de pintura con la Z
3) se dispara con la  X, el disparo es igual al color del balde que sostengas en este momento

OBJETIVO:
1) Tienes que absorber los colores, para ello agarra el balde del color quieres recoger
2) Si te pega un color diferente al que estás sosteniendo, pierdes pintura.
3) Para ganar tienes que: llenar 1 balde de cada color y matar a todos los fantasmas
4) para matar un enemigo tienes que descubrir el color que le hace daño, prueba diferentes pinturas (y escucha el sonido cuando golpea)
5) para recolectar un balde lleno, ve a las plataformas blancas, es necesario que este tu balde al 100% para que cuente


Agradecimientos aparte:
- A los amigos de ComunidadGM que participan en este Jam, espero que la hayan pasado bien, gracias por ser parte de esta comunidad y aportar vida al concurso. :D
- A los organizadores, que se tomaron el tiempo de armar el concurso y de poner un premio!  8)
- A mi amiga Silver_light por ser mi mentora e incansable psicologa XD 48horas telceando, estresan a cualquiera :'( XD
- A Lalo que se copó refactorizando el foro, gracias, capo 8)
- A vos por bajarte esta basura y jugarla!!!  :)

Notas finales:
 El juego tiene muchisimo potencial, a lo mejor lo termino en algun momento, pero va a tomar su tiempo.
Tiene una historia completa de fondo, que tristemente no se refleja en esta especie de demo?, al igual que la jugabilidad, esta escrita pero implementada a medias xD




Los siguientes usuarios dieron las gracias a este tema: Johann

53
Preguntas y respuestas / Re:Error en ejecutable android(solucionado)
« en: Enero 05, 2019, 12:55:48 am »
Generalmente el java que aparece en la primera busqueda de Google es el JRE, que es Java para ejecutar cosas hechas en java.
Mientras que GMS trabaja con el JDK que es el kit de desarrollo para crear aplicaciones Java.

El usuario comun digamos que necesita unicamente el JRE, la primera opcion les basta. Despues de todo, no todos somos programadores  XD
Los siguientes usuarios dieron las gracias a este tema: Ikaro3d

54
Preguntas y respuestas / Re:Crear objeto y asignarle una variable
« en: Enero 03, 2019, 12:38:16 am »
Hola amigo
inicialmente lo que deberias hacer es crear el objeto, almacenar su referencia y pasarle el valor.

Suponiendo que tienes un objeto al que llamaremos o_item_maderas, el cual será el item que al recogerlo te dará una cierta cantidad de madera, este deberia tener una variable.

o_item_maderas. EV_CREATE
cant_madera = 0;
la variable "cant_madera" seria la que almacena el valor, que al momento de colisionar con el jugador diera madera.
Es decir que si yo colocara:
cant_madera = 3;
Cada que el jugador recogiera uno de estos items, recibiria 3 de madera.

Ahora, al momento de soltar el item, debes crear un "o_item_maderas" y asignarle la cantidad de madera que tienes recogida.

Supongamos que tienes una variable global llamada "global.recursos_madera" la cual contiene las maderas recogidas hasta el momento.
Al momento de tirar las maderas el codigo debiera verse como:
var conjunto = instance_create(x+50, y, o_item_maderas); //creamos el item que representara al conjunto de maderas
conjunto.cant_madera = global.recursos_madera; // le asignamos a su variable interna la cantidad actual de madera recogida
global.recursos_madera = 0; //ponemos a 0 para indicar que tiramos la madera
Entonces ahora, el item, cuando vaya a recogerse deberia dar la cantidad que se tenìa y luego se tiro.

Decime si te funcionó, formatee la PC y todavia no tengo GMS para probar si va bien el codigo.

Los siguientes usuarios dieron las gracias a este tema: Alelouch

55
Juegos en desarrollo / Re:Preludio de Fanón
« en: Enero 01, 2019, 08:03:07 pm »
Interesante idea, imagino que es dificil de implementar dos estilos juntos.

Tengo que decirte lo mismo que Frida, se me hace cansador tener que espeara 2 segundos por un cartel, creo que le quita bastante flujo al juego que se espera que sea de accion. Porque encima que tenés un combate cada 2 pasos, esperar la animacion... ???

tambien cuidá la resolucion, se ve estirado verticalmente, lo que hace que se vea feo el texto y sea dificil de leer la historia de los personajes.

Luego, que sentido tiene colocar en el suelo del primer nivel tantos enemigos? Basicamente si te caes y logras sobrevivir 2 o 3 batallas, como lo llegué a hacer, a final de cuentas sabés que vas  a perder, eso contando que en vez de volver a empezar tenes que esperar a que te maten sin la posibilidad de "escapar" dentro del menu. Tenes que esperar los segundos de los carteles mas, que te ataquen y realices los ataques para saber que vas a perder de todas maneras.    En cualquier caso, creo que directamente para eso vuelva a punto de inicio  XD
Los siguientes usuarios dieron las gracias a este tema: Marth

56
Preguntas y respuestas / Re:vistas de camara ,aumentar reducir (solucionado)
« en: Diciembre 29, 2018, 12:17:09 am »
Las variables var son como una variable normal, se ejecutan cada vez que aparece en el script.
La diferencia es que las var solo pueden ser accedidas dentro de la hoja de script donde fueron definidas, fuera de eso no.

Por ejemplo desde un evento draw, no la reconocería y marcaría como que no existe.
Los siguientes usuarios dieron las gracias a este tema: Ikaro3d

57
Preguntas y respuestas / Re:vistas de camara ,aumentar reducir
« en: Diciembre 28, 2018, 03:32:46 pm »
Hola amigo, a lo mejor lo que estas buscando es esto:



me explayaría mas pero estoy desde un celular bastante malo para escribir,
Los siguientes usuarios dieron las gracias a este tema: Ikaro3d

58
Preguntas y respuestas / Re:Cómo puedo crear una tabla de highscore?
« en: Diciembre 21, 2018, 07:03:05 pm »
hola amigo, para eso podes usar listas:

gamemaker.info/en/manual/411_03_lists
ahi tenes varias funciones para añadir elementos e incluso ordenar de mayor a menos.
seria cuestion de agregar elementos, ordenarla y dibujar los scores.

Luego para remplazar un elemento tienes la funcion
ds_list_replace(...)Solo tendrias que ir verificando uno a uno los elementos para saber en que lugar remplazarlo.
Los siguientes usuarios dieron las gracias a este tema: Kiwi Chan

59
Preguntas y respuestas / Re:¿como automatizar código?
« en: Diciembre 14, 2018, 02:02:25 am »
Dado que no hay un equivalente en las nuevas versiones, tendrias que hacer la asignacion a mano con un script.

scr_asignar

argument0 = argument1;
luego deberías usar una variable diferente para cada cosa:

for(i=1;i<=2;i+=1)
{if (grupo[i] == "simbolos")
          scr_asignar(var_simbolos, x)
  if (grupo == "fracciones")
          scr_asignar(var_fracciones, x)
}
[/i]

O bien , crear un array, en el cual cada indice indique una variable:
ev_create
[i]
grupos[0]=0 //corresponde a conjunto
grupos[1]=0 //corresponde a simbolos
grupos[2]=0 //corresponde a fracciones
[/i]

luego
[i]
for(i=1;i<=2;i+=1)
{
          scr_asignar(grupos, x)
}
[/i]


esas son las ideas que se me ocurren de momento.
Los siguientes usuarios dieron las gracias a este tema: dixon2010

60
Preguntas y respuestas / Re:[Android] Duda para online 2 personas
« en: Diciembre 11, 2018, 11:44:50 pm »
Hola colega, pasate por mis tutoriales, ah no, asi no era XD

ya en serio, si vas a hacer un juego en tiempo real , te conviene de sobrada una conexion UPD, la TCP retrasa todo porque es un protocolo que verifica que se haya enviado el paquete completo sin romperse.
En cambio el udp envia datos todo el tiempo sin importar cual iba primero segundo, o si se perdió por ahí. Lo cual no importa mucho realmente ya que, una instancia al moverse tanto por el mapa es imperceptible o a lo sumo se genera eso que la gente llama "lag" que le dispara al enemigo pero este desaparece un segundo y re-aparece mas adelante.

No te recomiendo para nada usar mis tutoriales de TCP, jugar algo en tiempo real con eso va a ir super lento.


EDit: bueno, veo que publicaste como 5 segundos antes xD
Lo que deberías hacer es si, establecer un servidor que pueda alojar partidas. Un servidor que reenvie los datos del juego, porque muchas veces uno mismo como jugador no puede (o lo mas usual, que no sabe) abrir puertos, configurar el firewall. Es mas, los juegos triple A, usan varios puertos a la vez, no uno solo. Entonces deberías configurar el servidor para tener los puertos abiertos.
Sino sería hacer un Hole Punching para conectar sin mucho trabajo:
https://en.wikipedia.org/wiki/Hole_punching_(networking)


Con respecto a qué enviar al servidor.
Lo ideal sería mandar una señal cuando se ejecute cierta condicion. Por ejemplo, una vez que se haya atacado al hormiguero, el hormiguero del cliente debería enviar esa señal al servidor y entonces el servidor debería repartir la misma señal a los otros hormigueros.
Basicamente:
1-Cliente1 ataca hormiguero.
2-El hormiguero de cliente1 envia al servidor la señal.
3-El servidor retransmite a todos los demas clientes.
4-Los otros clientes reciben la señal.
5-Los hormigueros en los otros clientes, comienzan a generar hormigas.


Citar
deberia hacer que si el cliente pulsa el botón de atacar, esta señal se envie al servidor? Así no tendria que sincronizar la posicion de todas las hormigas, junto a su comportamiento y tal, que pueden ser cientas en el mapa.
En un principio debería funcionar, pero el problema es que si se pierde el paquete, por ejemplo desde el cliente al servidor. Solo el cliente que crea las hormigas va a verlas salir. Mientras que los demás nunca recibirían la señal que se perdio en el trayecto.
Lo mismo podría pasar si desde el servidor se pierde el paquete hacia algún cliente.
A mi, me parece que deberías reducir las coordenadas a un dato pequeño, quiza un shortInt, ya que la resolucion no pasaria de los 2000px entonces ocuparía menos bytes, no se cuanto ocupa eso, en C al menos sé que son 2 bytes, mas otros 2 para la coordenada y, serían 4 en total por cada instancia. Poniendole que sacas 500 hormigas, algo un poco inusual, 2000bytes que son a lo sumo 2kb? Solo enviando hormigas. Yo CREO que no debería representar un problema. CREO

De todas maneras sería cuestion de probar eso sino alguna optimizacion, por ejemplo enviar la mitad de las posiciones en un step, la mita en otro, si total, es practicamente irrelevante tener la posicion exacta de cada hormiga. No así su estado de vida/muerto.


Otra cosa que recomendaba siempre el makero Texic, al hacer este tipo de juegos, era, enviar la señal para que se creen las instancias en los demas clientes, y que cada uno haga el calculo por si mismo. Lo cual puede ser el camino mas largo, pero iría bastante fluido el trafico de red.
 
Los siguientes usuarios dieron las gracias a este tema: kostra, Seirlord_Games

Páginas: 1 2 3 4 5