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.


Temas - T789

Páginas: 1 2 3 4
1
Preguntas y respuestas / Trazar un dibujado con el mouse
« en: Octubre 05, 2020, 11:35:08 pm »
Saludos makeros

Estoy trabajando en un juego que seria una implementacion de mecanicas entre:
-PointAndClick
-Survival Horror
-Accion

Antes de trabajar en lo demas, quisiera trabajar en un sistema de pelea unica, y se me ocurrio un tipo de sistema el cual seria un objeto de onda que empezara pequeño y fuera creciendo hasta un punto, del cual retrocederia hasta ser tan pequeño y volver a aparecer en otro punto aleatorio de la pantalla.

El objeto de onda para atacar, solo estaria limitado de la mitad de la pantalla para abajo, y para arriba solo se mostraria al enemigo acercandose
/// Event Create obj_enemyBatle
Owidth = sprite_get_width(spr_onda)/2;
Oheight = sprite_get_height(spr_onda)/2;

mionda = instance_create(irandom_range(Owidth, room_width-Owidth), irandom_range(room_height/2 + Oheight, room_height-Oheight), obj_ondaAtack)
Ya casi tengo todo el sistema de onda para atacar, pero hay un incomveniente... No se como lograr para atacar

La forma que tengo en mente para atacar, requiere en trazar un dibujado mientras dejo oprimido el boton izquierdo del mouse; para que se muestre el trazado solo uso un objeto de color rojo con 1 pixel de ancho y largo. El problema en si, esta en que solo se puede crear instancias de color si el mouse va lento (cuando digo lento, me refiero a casi tocar el mouse)

No encuentro una forma de poder trazar un dibujo pues el mouse siempre va muy rapido, y me disgusta que aquel que vaya probar el juego tenga que estar forzado a llevar lento el mouse; lo intente todo desde usar bucles para crear instancias precisamente, pero como sucede que el trazado siempre se tiene que crear en el mouse nunca funciona

Ahora, quisiera pedir su ayuda para saber como trazar un dibujo preciso sin tener que preocupar por como se lleve el mouse

La idea esta en cuando el efecto de onda detecte una instancia de dibujo, se vuelva a crear en otra parte aleatoria y le descuente una vida hasta ser destruido junto con su enemigo (tambien se borraria el trazado automáticamente)

2
Desarrollo de Scripts / Dibujar Ring ahuecado (Only Loop)
« en: Octubre 05, 2020, 06:33:18 pm »
Nombre del creador: T789
Descripcion del script: Funciona para dibujar un anillo ahuecado por medio de un bucle
Versión GM utilizadas: GameMaker 8
Argumentos:
Código: [Seleccionar]
xx: posicion x donde dibujar
yy: posicion y donde dibujar
ra1: primer radio a establecer (cuenta como el radio interior -el hueco del anillo)
ra2: segundo radio a establecer (esto define el tamaño a alcanzar
col: color para el anillo

///draw_ring(x, y, ra1, ra2, col)
var xx, yy, ra1, ra2, col, i;
xx = argument0;  yy = argument1;
ra1 = argument2;  ra2 = argument3;
col = argument4;  i = 0;

repeat((r2-r1)*4) {
   draw_circle_color(xx, yy, r1+i, col, col, true)
   i += 0.25;
}
/// Event Draw
draw_ring(x, y, 4, 8, c_yellow)

3
Preguntas y respuestas / Extension o DLL para usar archivos Flash(.swf)
« en: Septiembre 15, 2020, 04:56:33 pm »
Saludos Makeros

Siempre que hago un videojuego, suelo usar png para los sprite; pero justo ahora me preguntaba si habia una forma de trabajar con Vectores en GM8. Segun tengo entendido, los archivos .swf soportan vectores ¿no?, de igual forma tengo entendido que en GMStudio se puede importar archivos flash (apartir de la version 1.3 para adelante). En mi caso, solo poseo la version GM8, por lo que solo estoy limitado a .png, .jpg, .gif

Ahora, se que hay extensiones y dlls para lograr cosas que las limitaciones de GM8 no permiten. Un ejemplo seria la extension CASTER: "esta permite mejor manejo en los sonidos y el poder pausarlos y reanudarlos (cosa que en GMS se puede pero, en GM8 no)".
Tambien existe una dll para poder usar fisicas en GM8 (cosa que es exactamente igual al caso anterior).

Los .swf no solo me servirian para usar vectores, sino que tambien pueden tener secuencias de sprites mas completa que los gifs (en comparacion con el procesamiento de mi computadora. Cuando intento cargar un gif con mas de 6 sprites, este simplemente se termina lageando o los sprites terminan perdiendo colores y, partes en los pixeles), claro... No tienen tanta calidad pero aun asi me permiten reducir el peso, algo que me es esencial cuando intento hacer una escena cinematografica

Los .swf, podrian solucionarme varias cosas
1. Los vectores no pierden calidad aunque se le cambie el tamaño
2. Las secuencias de imagenes pueden ser mas largas y no me causaria ningun lageo o falla al importar
3. Ahorrarme el tiempo de tener que importar una por una imagen

En fin. Me ayudaria mucho, si alguien pudiera recomendarme alguna .dll/extension para resolver mi problema

4
Preguntas y respuestas / Duda sobre "X Y" y "Direction"
« en: Agosto 18, 2020, 07:02:38 pm »
Hola Makeros, como ya vieron en el titulo, tengo algunas dudas sobre el uso de las posiciones X e Y y la direction

Mi Razonamiento Basico:
Cuando hago un juego, uso las posiciones X e Y paras darle movimiento a mi personaje y a cualquier otro de forma horizontal y vertical. Ya que usar hspeed = 4 en un evento create es lo mismo que sumar 4 a X en el evento step
/// Evento Create
hspeed = 4 //derecha
vspeed = -4 //izquierda

/// Evento Step
x += 4 //derecha
x -= 4 //izquierda
y += 4 //abajo
y -= 4 //arriba
Todos conocemos que al sumarle 4 seria positivo y eso indica a la derecha y restarle es negativo a la izquierda

De esa forma le doy movimiento a mi persona o a cualquier otro. Con la direction tambien entiendo el movimiento
// 0/360 = derecha, 90 = arriba, 180 = izquierda, 270 = abajo
direction = 270;
speed = 4;
Las 2 formas son realmente buenas para dar movimiento en general pero cuando hago un proyecto, solo me enfoco en una a la hora de programar para no confundirme con sus significados

Hay veces que veo algunos codigos que emplean ambos metodos y suelo entenderlos un poco por la forma en que lo usan. Por ejemplo el siguiente codigo es para rotar un objeto:
direction += 4;
x = obj_sphere.x + lengthdir_x(64, direction)
y = obj_sphere.y + lengthdir_y(64, direction)
Pero me confunde... Ya entiendo para que pero no el como, la funcion lengthdir_ te devuelve el angulo y la longitud a la que asignar la X o Y dependiendo de las propiedades, pero mi concepto no me deja entender muy bien la logica

Otro ejemplo es el de crear la bala segun la direction
/// Event Step obj_player
if (keyshoot && ammo > 0)  {
   with(instance_create(x, y, obj_bullet) ) {
      direction = image_angle;
      speed = 7;
   }

/// Event Create obj_bullet
x = x + (2*hspeed);
y = y + (2*vspeed);
La parte de la bala me confunde un poco; tambien hay otros ejemplos en juegos 3D que he visto y que no entiendo

Seria mas facil poner lengthdir_ en vez de eso y ya lo he hecho. Normalmente no le prestaria mucha atencion a eso y simplemente seguiria haciendo lo que llevo pero muy seguido he intentado hacer un 3D ligero y al llegar a la parte en la que me topo con alguna X sumandole una direction y..., en fin, hay mas dudas que resaltaria pero me tardaria mucho mas, asi que lo dejare hasta ahi

Disculpa si no se entendieron mis ejemplos o si las dudas no quedaron claras

5
Preguntas y respuestas / Colorizar un sprite a negro poco a poco
« en: Agosto 06, 2020, 03:46:42 pm »
Saludos makeros, tengo una duda que todavia np he planteado y es: como puedo colorizar una imagen poco a poco a un colorar, no necesaria mente tiene que ser negro.

Veran conozco como reducir y aumentar el alpha y ahora quisiera aprender a colorizar un sprite (empezando por negro); normal lo hago simple con el alpha
if (hurt == maxhurt)
   alpha = max(0.4, alpha-0.025);
if (hurt == minhurt)
   alpha = max(0.65, alpha-0.05)
Eso funciona muy bien para reducir el alpha segun el daño pero ahora lo que quiero es colorizarlo poco a poco y desafortunadamente la variable image_blend solo lo hace de una forma image_blend = c_black; y sumandole, no creo que funcione

Asi que quisiera solo colorizarlo al igual que con el alpha, nose algo parecido a la opcion de "intensity" en el editor de sprite  ???

6
General / Como y a que Edad Conocieron GameMaker
« en: Julio 05, 2020, 08:53:21 pm »
Hola Makeros, Como muchos yo he conocido GameMaker para hacer mi propios videojuegos, bueno no lo he logrado todavia pero aun me acuerdo mi primera vez y recuerdo la motivacion que tenia en ese momento

Como olvidarlo, tenia 15 años y estaba viendo fangames de Sonic en Youtube, mientras buscaba otro video, aparecio un video curioso de "Como crear un Juego de Sonic en GameMaker", y como en la descripcion decia que no se requeria programar

Bueno en retrospectiva fue una completa mentira y ese fangame nunca se termino pero no lo deje botado, segui por 3 meses viendo Tutoriales de Adderly Cespedes hasta que finalmente me di cuenta que si queria hacer algo bueno pues tenia que programar  :-X

2 años despues y aqui estoy con un mayor conocimiento en la programacion pero sin haber logrado nada xD

Bueno llevo desde los 6 años interesado, asi que menos pienso dejarlo botado, en fin no voy a dar mas recuento pues si no, terminare acaparando este Tema  :-[

7
Saludos Makeros, estaba viendo un viejo proyecto hecho en GMS 1.2 y me preguntaba como podia exportar los sprites pues por alguna extraña razon no me aparecia la opcion de save sprites que tengo en GM8, se me ocurrio la idea de exportarlas por medio de codigo

Estuve investigando algunas funciones para el manejo de los sprites y creo que lo hice de muy mala forma o es que use las funciones equivocadas
var sprite, i;
i = 0;
sprite = sprite_get_name(i);
while(sprite_exists(sprite)) {
   sprite_save_strip(sprite, "sprite"+string(i)+".png")
   i += 1;
   sprite = sprite_get_name(i);
}
Pues al principio funciona pero por alguna extraña razon solo me guarda el primer sprite que tengo en el proyecto, los demas no se guardan y termina guardando una y otra vez el mismo sprite

Alguna sugerencia  :-[

8
Saludos Makeros, estaba modificando un antiguo proyecto Maze, y me preguntaba como podia crear un objeto en una posicion libre

Mi personaje y los enemigos se mueven verficando una posicion libre de 32×32 en la grilla, se gestionar los movimientos en la grilla y crear objetos aleatorios pero lo que nose es como crear aleatoriamente algo en la grilla

Necesito que mi objeto verifique todos los espacios de 32×32 en la grilla y ver si esta libre de otro objeto solido o si tampoco hay un personaje inteligente en ella (incluyendo a mi personaje), y que de paso la cree en cualquier grilla

Casi nunca he trabajado con grillas, a veces solo las uso para movimientos y lo demas me encargo manualmente  :-[

9
Hola makeros, vengo porque se me habia ocurrido una idea pero no se como implementarla a mi juego

Como el titulo lo dice planeaba guardar en una Array los nombres de cada Room en mi Juego pero no se me ocurre como, bueno habia pensado en usar un bucle for para ello pero como?

Necesito que en el evento Create de mi objeto, este almacene los nombres de las rooms en una array de forma automatica y no pienso escribir todos los nombres de forma manual pues eso me cansaria mucho

Alguien sabe como lograr eso?

10
Saludos Makeros, estoy a punto de terminar mi replica de Tetris pero me falta un ultimo toque a la mecanica pero por desgracia este todavia nose como lograrlo

Tengo un objeto que tiene como unico proposito destruir las filas que esten llenas
/// Event Create
image_index = 0;
image_speed = 0.5;
count_destroy = 0;

/// Event Step
// Destruirnos despues de acabar animacion
if (image_index >= image_number-1) {
    image_speed = 0;
    image_index = image_number-1;
    count_destroy += 1;
 
    // Destruir piezas estaticas
    local.c = instance_place(x, y, obj_pieza_estatica)
    if (local.c) {
        with(local.c) instance_destroy()
    }
    // Si termino el conteo para destruirse
    if (count_destroy >= 10)
        instance_destroy()
}

Ahora como haria para mover todas las piezas que esten por arriba del objeto destroy para abajo unos 32 pixeles o 64 pixeles etc, todo segun el obj_destroy que este mas arriba pues puede que haya 4 filas llenas a destruir

Y todo sin que ninguna pieza baje mas de lo que deberia pues puede que haya un espacio 32 pixeles abajo de una pieza y solo quiero que las piezas que esten arriba bajen una sola vez

Espero se haya entendido  :-\

11
Saludos Makeros, estaba trabajando en un viejo proyecto Rpg y me preguntaba como podia hacer para dibujar un cuadro al acercarme a dicho objeto

Podria decirse que es facil dibujar ese cuadro con algunas variables, pero ahora estaba pensando en algunos defectos que tendria al probarlo y como puedo solucionarlos  ???

1- Quiero que el cuadro se dibuje arriba del objeto al que nos acercamos pero imaginen que al acercarnos, el objeto esta casi por el borde de la room, si yo me acercara ahora, parte del cuadro se dibujaria afuera de la room y eso seria molesto ¿como podria hacer que el texto se acoplara o se dibujara para abajo?

2- Como el anterior caso, imaginen que el cuadro de texto tiene un ancho mayor que el del objeto en si (obviamente siempre es mayor), y al igual que el otro caso nuestro objeto esta muy cerca de algun borde horizontal, tambien quisiera se acoplara algunos pixeles al lado contrario ¿como podria calcular la distancia que necesita para separarse automaticamente?

3- Tambien quisiera dibujar el valor de cada pocion dentro de unos parentesis, un ejemplo es que en el objeto Pocion cada instancia de ella en la room tenga un valor diferente que ofrecerle al jugador, "Quieres coger esta Pocion (+50 HP)" o "Quieres coger esta Pocion (+75 HP)" etc, lo valores pueden variar mucho y si es posible no quiero añadir tantos objetos de Pociones (Seria Molesto)

En fin no creo que queden mas dudas, pues solo quiero un cuadro que se acople al espacio en pantalla.
Solo necesitaria completar los primeros 2 casos, el 3ro lo trataria pronto  :-[

12
Hola Makeros, me preguntaba si existia alguna variable o opcion en GameMaker que nos devolviera el Alto de Nuestro Ordenador

Conozco las funciones de
Código: [Seleccionar]
window_get_height()
room_get_height()
Pero nose si existe alguna funcion que me devuelva el alto de nuestro ordenador, algo asi como una funcion que GameMaker utilice para saber el Alto de cada pc, pues ya existe una funcion para darnos una pantalla completa en cualquier ordenador pero ahora me preguntaba si no existia una que devolviera el Alto del ordenador  ???

13
Preguntas y respuestas / 3 Diferentes Resolucciones para un Juego
« en: Junio 08, 2020, 10:11:44 pm »
Hola Makeros, me preguntaba como podria establecer 3 diferentes resoluciones en un juego sin tener que respaldar todos los sprites y graficos y luego cambiarlos de tamaño manualmente, pues seamos sinceros eso seria una total agonia

Estoy haciendo un Juego con la resoluccion en pantalla de una Atari 2600, y se me ocurrio en añadir una opcion en el menu por si el jugador queria jugar con la resoluccion original o con otras 2 resolucciones aumentadas

Hasta ahora intente con cambiar el port horizontal y vertical de la view pero me di cuenta que al hacerlo se estropeaba la calidad de los sprites y llegaban a distorsionarse algunas veces, asi que no sabran si existe otra forma de hacerlo y que no sea con las views

Solo quiero que el jugador pueda seleccionar 3 distintas resolucciones y sin perder calidad en los graficos
Código: [Seleccionar]
Original Resoluction = 160×192
Modified Resoluction = 320×384
Modified X2 = 640×768

14
Cual es la manera mas rapida de gestionar los modos de un Enemigo o Boss

Me explico, cada vez que hacia un Boss, gestionaba sus ataques de manera simple usando alarmas y creando objetos pero ya le encontre el defecto de tener que crear un obj_boss_normal, obj_boss_furious, obj_boss_final, obj_boss_death y etc

Ya me canse de programar distintos Jefes en ese orden, conocen una manera de gestionar tantos modos de un Jefe u Enemigo de manera optima, pues desearia poder implementar mas modos equilibradamente  ???

15
Saludos Makeros, el dia de hoy les vengo con algo un poquito mas dificil de lo usual (admenos para mi)

He estado 2 semanas trabajando en un Juego de 3×1, por el momento ya he terminado 2 juegos en la lista pero me falta uno y es el mas complicado, hablo del Tetris, si cualquiera diria que es un Juego Extremadamente sencillo pero para mi cada mecanica es dificil (bueno admenos las mas escenciales)

Logre abarcar mucho sin ver tutoriales, pero llegue a encontrar un problema, aunque le consegui una solucion pero es muy pobre para mi gusto, hablo del contacto con otros bloques, cosa como si esta llena una fila destruirla o si empareja con otros bloques del mismo color aumentar la puntuacion

Como puedo solucionar eso hasta ahora estaba haciendo un objeto que creara un chequeador que se paseara por todas las casillas y filas y que si se encontraba con algun bloque crear bloques encimas de ellos

obj_check_creator
/// Event Create
repeat(13)
{
 if !place_meeting(x, y+32, obj_solid)
     exit;
 instance_create(x, y, obj_check)
 y += 32;
}

Prácticamente uso repeat para registrar casilla por casilla, la verdad el metodo es bueno pero la parte cansina es cuando cuando creo los bloque, tengo que preparar los puntos de origines, crear los bloque de pieza uno por uno en cada objeto y son varios, ya el proceso me tiene cansado

Algun consejo  ???

Páginas: 1 2 3 4