Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

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

2
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

3
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

4
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

5
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:

https://www.youtube.com/watch?v=t8D5WAECKAI

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

6
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

7
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

8
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

9
General / Re:Hablemos de lenguajes
« en: Noviembre 24, 2018, 04:33:15 pm »
Yo probé muchisimos lenguajes de programacion fuera y dentro de la universidad, nombrarlos para qué, a final de cuentas siempre sale más económico trabajar con un motor de videojuegos, te ahorra tiempo y esfuerzo.
   Aunque siempre está el conocido problema de "optimizacion". Si vas a hacer muchisimos calculos C/C++, si no te importa el rendimiento pero sí la portabilidad, podes tirar con Java, y Python. De ahí tenes otros lenguajes pero no son muy amenos para hacer específicamente videojuegos, más que nada por las librerías solo de graficos, luego las multimedias es otra historia.

Sobre lo de funcionar por eventos, me gustaría saber si a partir de otro lenguaje, se puede montar un royo para imitar tales eventos, en especial create y step..
En C++ se puede imitar el evento create con los constructores y el evento step, simplemente es un ciclo infinito dentro del algoritmo.

 
Los siguientes usuarios dieron las gracias a este tema: kostra

10
Preguntas y respuestas / Re:Para que sirve el "xor" ???
« en: Abril 18, 2018, 03:00:23 am »
Pues, no realmente.

Supon estas 2 proposiciones: "hace frio" y "esta nevando". Un uso normal con OR sería:

if (hace_frio) or (esta_nevando){
     personaje.temblar()
}

Entonces el personaje temblaría independientemente de si hace frio o bien si está nevando, si ocurren las dos al mismo tiempo no hay problema.

Pero el XOR solo permite la veracidad de una sola proposicion a la vez.
Es como si le dijeras a un niño. "Qué quieres de regalo, una pelota o una patineta" la eleccion es exclusiva, elige una de las dos, porque ambas no se puede. Sale muy costoso.
Los siguientes usuarios dieron las gracias a este tema: Goganpis

11
Preguntas y respuestas / Re:Para que sirve el "xor" ???
« en: Abril 17, 2018, 02:29:21 pm »
El xor se usa en muchos lenguajes y significa eXclusive OR o "O exclusivo" básicamente concatena dos expresiones lógicas y solo toma en cuenta cuando una y solo una de las dos se cumple.
En cambio en el OR normal se puede cumplir una o las dos.


Es como si se dijera en un XOR, o vas a la playa o bien vas a la montaña, no se pueden cumplir en ningun caso las 2 a la misma vez,
En cambio en el OR puede ocurrir las dos al mismo tiempo. Por ejemplo, voy con un amigo o voy solo al cine. Si va una bien, pero pueden ir las dos perfectamente.





Los siguientes usuarios dieron las gracias a este tema: Goganpis

12
Preguntas y respuestas / Re:Calcular x
« en: Diciembre 30, 2017, 09:13:49 pm »
Deberías mirar haciendo un sistema de ecuaciones con única solución. dónde está indicaría el punto de colisión entre las 2 rectas
Los siguientes usuarios dieron las gracias a este tema: Yuzo

Páginas: 1