Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

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

Páginas: 1 2 3 4
1
Lo mismo hago yo pero como es solo por hobbie si comparto algo es totalmente de uso libre pues no tengo ninguna atribucion en la que gane algo ademas de que no sera un grandioso proyecto en si, pero tampoco puedo abusar de eso ehm para dibujar pixel art se puede hacer hasta en microsoft paint eso lo aprendi viendo tutoriales para dibujar anime y queria pasarlas a sprites pequeños, solo usa medidas grandes en las cuales sea comodo dibujar y luego escalar hasta un tamaño elegido como 128x128 | 64x64 | 32x32 en fin es algo muy facil y practico no se nota ninguna distorsion etc... Aunque recomiendo mas usar photoshop.


Enigma no lo he probado y pues ese engine tiene funciones iguales a GM?
Surfaces?
Draw_*?
Yo estuve probando una alternativa gratuita: Enigma
si no queres aprender a usar otro motor con un lenguaje robusto. Enigma es practicamente game maker, gratis
incluso es compatible con game maker de yoyogames

lo unico malo que le llego a ver yo, es que no tiene editor de sprites/background integrado pero meh, hay millones de alternativas para hacer graficos:
GIMP, paint.NET, pikopixel, JPixel, y ese de navegador que ahora no me acuerdo como se llama XD
otra desventaja es que no exporta a android todavia, pero es practicamente igual si vas a hacerlo con un game maker pirata xD
te lo recomiendo si queres estar libre de culpa a la hora de irte a dormir (? xd

Los siguientes usuarios dieron las gracias a este tema: Black7272

2
Preguntas y respuestas / Re:sistema de monedas para un juego clicker
« en: Septiembre 03, 2019, 10:12:33 pm »
Esto es muy sencillo. Puedes hacerlo asi

Código: [Seleccionar]
if score >= 1000
{ // Si score es mayor o igual a 1000
// floor es una funcion que actua como redondeo pero en este caso devuelve la cantidad sin decimales.
// dentro del floor() el score lo multiplico en 0.001 es para irle quitando digitos o cambiar la posicion de los numeros decimales mejor dicho
text = string(floor(score*0.001)) + "k"; //  Esto es una cadena "string" y para convertir el valor real a una string hay que usar esa funcion.
// al final + "k" es lo que queres hacer editalo como quieras
}

draw_text(4,4,text); // Si quieres colocalo esto es solo para que lo compruebes tu mismo
Los siguientes usuarios dieron las gracias a este tema: AgeX_005

3
Preguntas y respuestas / Re:Optimización del dibujado en 3D
« en: Septiembre 03, 2019, 12:48:34 am »
Dixon eso es solo un modelo hecho de un cubo para simular un skybox en donde configure visualmente la figura del cubo invirtiendo las caras y repitiendo la textura de las estrellas 10 veces con Model Creator (by Maarten Baert).
Pense que conocias ese tipo de archivo  :-[
Que es el md_skybox.gmmod?




Clamud lei una parte en el foro de yoyo el cual un usuario explica lo que se traga todo el rendimiento es: el procesamiento de estar dibujando en tiempo real demasiados poligonos y la memoria de video o algo asi es la que se cae en rendimiento y por ello sucede lo mismo que vemos al crear 100 estructuras por separado de un edificio en lugar de optimizarlo uniendo esas piezas y dibujarlo en un solo modelo. Las funciones de dibujos son rapidas, el costo de procesamiento es calcular a tiempo real cada poligono en distancia y cada textura, por eso se crean los modelos lo que hacen es tener eso listo ya para rellenarlo de una textura que seria menos procesamiento.
ej: Si en la vida real quieres hacer la figura de un circulo moneda o lo que sea en una hoja blanca manualmente sin ningun molde te costara hacerlo mientras que teniendo un molde solo subrayas lo que ya te indica la figura (el circulo en este ejemplo se dibuja mas rapido con un molde que dibujarlo sin molde). No se como explique espero que se entienda
Las funciones d3d_draw_* siempre son lentas, es mejor crear un modelo con código o cargarlo desde un archivo.
Usar un formato personalizado con vertex buffers es más óptimo, pero más difícil de implementar.
Los siguientes usuarios dieron las gracias a este tema: Johann

4
Preguntas y respuestas / Re:Renderización de niveles
« en: Septiembre 02, 2019, 06:15:40 am »
Si quieres desactivar instancias solo usa las funciones instance_deactivate_* y las instance_activate_*

Ya para el dibujado es depende como lo plantees

1. Si es en una surface pues solo redibuja lo que necesitas en la posicion deseada.
2. Si es una animacion solo crea diferentes modelos 3D o los objetos que colocas en la room los destruyes o lo desactivas si estan fuera y activas los que entran dentro de la view.
3. Si es un efecto como el de minecraft solo dibuja lo que esta a tu alcance visual destruyendo lo que no necesitas y creando lo que vas a necesitar.
Los siguientes usuarios dieron las gracias a este tema: jhgv

5
Preguntas y respuestas / Re:Juego de lucha
« en: Agosto 30, 2019, 11:22:18 pm »
Practicamente no se programar con shaders, pero soy muy bueno en el pixel art y los calculos asi que yo uso esa funcion no entiendo que quisite decir con eso  :-\ pero esa funcion te ayuda de mucho, yo la uso para hacer sombras, efectos, scroll, particulas y ademas la uso para crear surfaces y convertirla a una sola imagen. No tiene porque retirarse
Retirate master :v ¿quien usa el draw_sprite_ext? :p



Cuando estaba aprendiendo GML no sabia ni coña** pero wacho solo tenes que saber matematicas, fisicas y tener un intelecto con el coeficiente logico bien entrenado... Todo aqui es una falsedad ninguna colision es perfecta, ningun modelo 3D es detallado a la perfeccion, solo acomodate y te dejare el codigo para que lo uses

Hola makeros estoy intentando hacer un juego de lucha tipo mortal kombat donde quiero crear las sombras tipo  mugen donde a cada sprite se le asigna una   para no hacerlas manualmente.Logicamente que la sombra siga al jugador , pero es que no tengo ni idea.He leido algo sobre los shaders sirve eso ? , Haber si me podeis ayudar.Gracias.

EVENT DRAW
Código: [Seleccionar]
draw_self(); // Esta funcion dibuja tu sprite normalmente

// Sombra
// Aqui se dibuja aparentando una inclinacion en el angulo que le das y la altura del sprite reducida(image_yscale*0.25) Puede ser cambiado
draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale*0.25, image_angle-45, c_black, image_alpha*0.35);

PD: Ya solo ajustalo cuando queres que se dibuje
Los siguientes usuarios dieron las gracias a este tema: Neodreamer

6
Preguntas y respuestas / Re:Detalles en los graficos
« en: Agosto 27, 2019, 10:25:01 pm »
Bueno dixon me encanto esa informacion es algo nuevo que comprendi por eso cuando creaba un mundo de minecraft con menos pixeles de tamaño habia una gran diferencia pues intentare hacer un script de colision que actue por si solo y lo colocare en el apartado de scripts para el que quiera probarlo es muy facil lo que intentas decir y con GML es rapido ya que solo calculas el decimal y no consume demasiado si llega a optimizarse, no hay necesidad de usar una mask puesto que solo usaras el room editor en lugar de colocar una variable que indique cuantos pixeles equivale un metro... Estuve leyendo la documentacion de minecraft y un bloque equivale a un metro sabiendo de que el bloque puede ser de 8x8 para no tener deformaciones grandes
Los siguientes usuarios dieron las gracias a este tema: dixon

7
Preguntas y respuestas / Re:Lista de elección aleatoria
« en: Agosto 06, 2019, 12:53:12 am »
El único problema que tiene este algoritmo es que, la instrucción mas importante:
  tanteo = irandom(ListaMax); // Aleatoriedad del tanteo a elegir
Podría dar un numero repetido y el ciclo contaría de todas maneras la iteración. En el peor de los casos se dará para un elemento repetido y no habrán 3 elementos seleccionado sino 2 o para peor, solo 1.
Lo que cabría hacer es, verificar, que el número que saca "tanteo" no está repetido.
  tanteo = irandom(ListaMax); // Aleatoriedad del tanteo a elegir
 if (lista[tanteo] == 0)
     lista[tanteo] = 1;
  else
      i -= 1;  //repetir el ciclo restando -1, para decir que no cuente esta vuelta. (Aclaro que esto para mi desde un punto estructural siguiendo el paradigma de programacion estructurada, esta super mal XD )

El problema con este algoritmo es, lo que se llama "aplazamiento indefinido", que en el peor de los casos cae siempre en un espacio ocupado y se repite innecesariamente muchas iteracion.
Por lo que:No es la mejor manera, pero sigue siendo una solución corta de implementar. <3

Lo hice sin probarlo  :-[ :-[ Pues gracias por corregirme
Los siguientes usuarios dieron las gracias a este tema: cristopher2545

8
Preguntas y respuestas / Re:Lista de elección aleatoria
« en: Agosto 03, 2019, 01:06:06 am »
Bueno Yo lo haria de esta forma...

Código: [Seleccionar]
var tanteo, maxObj, Lista, ListaMax;
maxObj = 2; // Numero de repeticiones (numero maximo de objetos tanteados)
ListaMax = 10; // Espacio de la lista

var i;
for(i=0;i<ListaMax;i+=1)
    {// Vaciar Lista
     Lista[i] = 0;
    }

var i;
for (i=0;i<maxObj;i+=1) // Repetir el ciclo hasta llegar al limite de objetos en este caso "3"
    {// Tantear maxObj que tienen que ser ajustados
     tanteo = irandom(ListaMax); // Aleatoriedad del tanteo a elegir
     
     Lista[tanteo] = 1; // Ajustar como creado o elegido como lo llames
    }

PD: Ya el array Lista tiene que ser declarado anteriormente o dara error otra opcion seria usar ds_list.
Los siguientes usuarios dieron las gracias a este tema: cristopher2545

9
Preguntas y respuestas / Re:Como ir perdiendo vida/hambre/energía
« en: Marzo 18, 2019, 11:56:44 pm »
tienes que darte cuenta que en cada step declaras que la alarma estara en tantos fps, si quieres activarla desde el evento step como un mecanismo automatico pues coloca.

Código: [Seleccionar]
if alarm[1] >=0 then alarm[1] = room_speed *2
asi cada vez que esta activada, el mismo mecanismo no lo ejecuta para que siga reduciendo su tiempo
Los siguientes usuarios dieron las gracias a este tema: Fashion_Trozos

10

No acabo de entender muy bien que es lo que hace esta función 

 var profundidad;
profundidad = 0.5;
x = xstart-(obj_nave_player.xstart)*profundidad;
y = ystart-(obj_nave_player.y-obj_nave_player.ystart)*profundidad;

no es lo mismo que poner depch = -y en step en los objetos animados ?

El efecto parallax se basa en hacer mas lento el movimiento de los objetos mas lejanos para dar perspectiva 3D mas o menos es lo que tengo por entendido busca mas info si quieres, en cuanto al codigo se explica solo, el meteorito estará en la posición donde comienza y se restara con la posicion que cambie la nave y por ultimo la posicion restada por su comienzo es multiplicada por la profundidad que deseas en la que este por asi decirlo la profundidad lo tomas por el porcentaje en el que se movera el planeta ese... Si alguien puede explicarle es mejor ya que yo entiendo mis propios codigo xD
Los siguientes usuarios dieron las gracias a este tema: Ikaro3d

11
Otro efecto muy bueno que no hay que dejarlo en visto es donde hace sentir el juego vivo y puesto es como hacerlo rotar, o agregarle una animacion o algunos asteroides le caen y hace alguna animacion un hoyo negro al final dando vueltas lentamente que el jugador se pierda en el mismo fondo descriptivo que con el concepto de gameplay juntos lo atrapa mas aun eso engancharia al jugador en el primer momento de juego  ;)
Los siguientes usuarios dieron las gracias a este tema: Ikaro3d

12
no tengo ninguna idea de lo que expresan, solo se que es efecto parallax y quiero ayudar, dejo este codigo de parallax mal puesto y me voy

Step del meteorito
Código: [Seleccionar]
var profundidad;
profundidad = 0.5; // La profundidad que tendra y 0.5 es el 50% por si las dudas
x = xstart-(obj_nave.x-obj_nave.xstart)*profundidad; // obj_nave lo cambias por el nombre del objeto que usas como nave
y = ystart-(obj_nave.y-obj_nave.ystart)*profundidad; // Por cierto se resta fuera de los parentesis porque va en sentido contrario a la nave
Los siguientes usuarios dieron las gracias a este tema: Ikaro3d

13
Preguntas y respuestas / Re:ADMINISTRADO y ORGANIZADO de scripts COLAPSADO
« en: Diciembre 17, 2018, 04:11:31 am »
Bueno yo en si me gusta tenerlo todo en una sola hoja ya que si quiero cambiar la posicion de algun codigo se me hace mas facil porque me baso mas en optimizar usando mi propio codigo que las funciones de GM, pero todo lo divido de esta forma...

Código: [Seleccionar]
/// Movimiento

// Inputs
Key_Left = [X]
Key_Right = [X]
Key_Jump = [X]


// Gravity
vv += gravedad;


// Colision

// Move To contact (Mover hasta contactar )
if (Condicion)
{ // Horizontal
[Codigo]
}
else
{
x += vh;
}
if (Condicion)
{ // Vertical
[Codigo]
}
else
{
y += vv;
}


// Move outside edges of other solid object ( Mover fuera por logica )
if (Condicion)
{ // Horizontal
[Codigo]
}
if (Condicion)
{ // Vertical
[Codigo]
}


// Arco
obj_arco.x = x;
obj_arco.y = y;

Doy 2 Saltos de linea para poder hacer legibles las facciones, y comento el principio para llamarlo por su rama o estructura ejemplo

Código: [Seleccionar]
// Colision

// Mover hasta contactar
// Horizontal
// Vertical

// Si se atacasca mover hasta afuera
// Horizontal
// Vertical

Y para entender tus scripts nunca pero nunca le coloques un fucking comentario al principio diciendo "Esto Es para tal cosa" o "esto otro para esto" "esto es para esto", nunca eso te confundira llamalo por su nombre si no tienes solo relaciona ejemplo

La ley de newton o el pinche cientifico con teoria de la quimica en un movimiento parabolico que tienen los genes espermaticos de un virus no me la se pues bueno

Matar celulas buenas :v

asi se te hace mas facil

y por ultimo si eres muy olvidadizo usa los ejemplos de kostra y aplicalos, son muy buenos los uso pero de una forma diferente al guardarlos

Los siguientes usuarios dieron las gracias a este tema: dixon2010

14
Preguntas y respuestas / Re:dar el valor de una variable de un objeto a otro
« en: Diciembre 08, 2018, 07:30:30 pm »
Puedes hacer simplemente
Código: [Seleccionar]
var inst;
inst = instance_create(x,y,objB); // inst guardo la variable del ID
inst.VIDA = 100; // inst. el (.) se usa para buscar la variable o alterarla sin llamar el with o tanto codigo

o esta otra forma
Código: [Seleccionar]
var v;
v = VIDA; // Al declarar una var fuera de las llaves puedes usarla dentro y fuera del with
with (instance_create(x,y,objB)) // Acudiendo
{
VIDA = v; // ajusta la variable con la variable temporal declarada fuera de las llaves
}
Los siguientes usuarios dieron las gracias a este tema: Yuzo

15
General / Re:Hablemos de lenguajes
« en: Noviembre 25, 2018, 09:01:25 pm »
Kostra  XD Se me paso en alto, eres mas viejo que yo, a lo que me referia, es mejor tener conocimientos y reconocimientos :v

Practicamente lo que digo es algo que mostrar a la hora en que te pregunten: ¿Eres bueno? ¿Que has hecho? ¿Que conoces?

Yo quiero cambiarme a unity para hacer juegos 3D, lo que me da flojera no es programar, me da flojera el tiempo que tardare en acostumbrarme a unity, ademas de que no conosco mucho el C# y el java me lia mucho  :-[

Si me podeis recomendar algo se los agradezco un monton, ya por parte de opinar, ve serio con GM, el no tiene problemas aun, pero adaptate a varios motores, por si acaso  ;D
Los siguientes usuarios dieron las gracias a este tema: kostra

Páginas: 1 2 3 4