Mostrar Mensajes

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

Temas - Alemar5

1
Hola amigos! :3

Hace un par de días intente replicar un tutorial de guinxu sobre patrones de balas de bullet hell y logre hacer todos los patrones a excepción del ultimo, el cual usaba una función matemática la cual no sabia implementar en game maker puesto a que para el tutorial el uso core, la formula se aplicaba para sumarle a la velocidad de las balas y así crear un patrón de estrella.
abajo dejo las formulas, mi intento de recrearla, como me salio y como deberia salir, el codigo de guinxu y tambien dejo el tutorial de guinxu, lo que no puedo recrear es a partir del minuto: 5:45
https://www.youtube.com/watch?v=QQ3Yub9So2k&t=345s
2
Hola amigos, hace tiempo estuve tratando de conectar un mando genérico a mi juego, asi que vi el gamepad imput en la página de yoyo games, estuve tratando de todo, use casi todas las funciones que me permitía como ev_joystick1_up o gp_face1 y ninguna me permite mover con el control, estuve revisando para ver si era problema de que no reconocia mi joypad, pero después de experimentar si lo había reconocido en el puerto 4, pero a pesar de esto seguía sin funcionar, alguien que conozca acerca de esto si me puede ayudar le agradeceria mucho :,3

(abajo dejo una foto del tipo de control que estoy usando)
3
Hola amigos, ayer vi que había una nueva actualización de game maker 2 y pues como es costumbre guarde mi proyecto en la nube antes de instalar la versión, todo se instaló con normalidad y no use game maker ese dia, hasta hoy cuando me di cuenta que iba un poco lageado, intente interactuar con el objeto piano varias veces y de repente el juego se colgó exceptuando la música, alrededor de 3 segundos el juego reanudar su función, volví a probarlo y de nuevo se colgó, tambien cuando cierro el juego se queda un momento colgado y aparece que no responde, luego de eso se cierra, estuve revisando el administrador de tareas y cuando se traba el consumo del cpu aumenta en 19%.

Aclaraciones: Cabe recalcar que antes de que instalara la nueva versión hacía exactamente lo mismo con el piano y no se lageaba, me iba perfecto, como segundo refuerzo me parecía demasiado raro que se lageara en mi computadora, porque pues basicamente tengo una pc gaming, tiene una tarjeta gráfica geforce rtx 2600 (creo xd), tengo 16 gigas de ram y procesador core i7,  así que le pedí a un amigo que probara el juego en su computadora, al cabo de un rato me dijo que también se le lageaba el juego, así que estoy casi convencido que fue la versión, en todo caso pienso que la solución es instalar la versión anterior de game maker 2, pero no se como hacerlo correctamente, de antemano agradezco su ayuda :,3
4
Hola amigos :D

Hace tiempo una persona probó uno de mis juegos y le iba super acelerado, por lo que me dedique a investigar y me tope con un video de guinxu donde explicaba que es el delta time, vi algunos videos de como implementarlo pero era un código que se implementa uno por uno, mi pregunta es si existe alguna forma de implementar el deltatime en un solo script y que todo el tiempo del juego se base en el mismo?
Es que el problema es que tengo un proyecto muy avanzado y tendría que rediseñar por completo todo para implementar el deltatime.

De antemano gracias por la ayuda :,3
5
Hola a todos :D

Hace tiempo hice mi sistema de diálogos rpg, era bastante sencillo, pero funcionaba, la cosa es que hace un par de dias encontre un nuevo renderizado de texto llamado scribble, trate de implementarlo en el sistema de diálogos que tenia, en un principio me parti la cabeza en pensar como adaptarlo, pero finalmente lo logre, todo parecía ir en orden y los textos se reproducen correctamente, pero la segunda vez que abría el texto comenzaba con problemas, ya que el efecto de la máquina de escribir (se escribe el texto letra por letra), trate de ver las variables una por una y parece que esta fallando la función de scribble de .typewriter_in(0.5, 1)
ok, encontre el problema pero lo complicado es como solucionarlo, si alguien sabe de algo que pueda funcionar o si ven algo raro a parte de la función del .typewriter_in, se lo agradeceria mucho, a continuación les dejo los codigos que uso:

[OBJ_TEXTBOX]

_Create_:

[gml]indice = 0;

mensaje = "";

msage = scribble(mensaje)
   .typewriter_in(0.5, 1)
      .typewriter_sound(snd_letras, 999, 1.0, 1.0)


paus = false;[/gml]

_step_
[gml]if (string_length(mensaje) < string_length(referencia.msg[indice])){
    mensaje += referencia.msg[indice]
}

msage = scribble(mensaje)
   .typewriter_in(0.5, 1)
      .typewriter_sound(snd_letras, 999, 1.0, 1.0)
      
      
if msage.get_typewriter_state() = 1 && (indice <= referencia.final)
{

   if keyboard_check_pressed(ord("X")) && (mensaje == referencia.msg[indice])
   {
      indice +=1;
      global.mensaje +=1
      if (indice > referencia.final) {obj_prota.stop = false; global.mensaje = 0; instance_destroy(); }
      mensaje = "";
   }   else
   {
      mensaje = referencia.msg[indice];      
   }

}


if (msage.get_typewriter_state() < 1) && paus = false
{

   if keyboard_check_pressed(ord("X"))
   {
      msage.typewriter_skip();
   }
   
}

if (msage.get_typewriter_paused()){
   
   paus = true
   if keyboard_check_pressed(ord("X"))
   {
      msage.typewriter_unpause();   
   }

}[/gml]

_Draw_
[gml]draw_self(); //permitir ver el sprite del objeto

msage.draw(x + 20, y + 7)

draw_text(x + 20, y - 50, msage.get_typewriter_state())[/gml]


[OBJ_PROTA]

_Step_

[gml]//cama

if (stop == true) { exit; }

var  bloque;
bloque = collision_circle(x,y,32,obj_cama,false,false);

if (keyboard_check_pressed(ord("X")) and bloque){
    var msg;
    msg = instance_create(0,0,obj_textbox);
    msg.referencia = bloque;
    stop = true;
   
}[/gml]

[OBJ_CAMA] (ejemplo)

_Create_

[gml]msg[0] = "Es tu cama suave y comoda.";
msg[1] = "Te encantaria quedarte a dormir un rato mas.";
msg[2] = "...";
msg[3] = "Mejor no.";

final = 3;

global.mensaje = 0;

[/gml]

[SCRIBBLE]

https://github.com/JujuAdams/Scribble

[FUNCIONES DE SCRIBBLE]

https://github.com/JujuAdams/scribble/wiki/scribble()-Methods

[VIDEO ILUSTRANDO MI PROBLEMA]

https://www.youtube.com/watch?v=wUExs6NVL84&feature=youtu.be

Si encuentran algo se los agradeceria muchisimo :,c
6
Un saludo amigos!  :)

Continuando con un tema anterior:

https://www.comunidadgm.org/preguntas-y-respuestas/cambio-de-directorio/msg126569/#msg126569

se dice que usando get_save_filename() y get_open_filename() podemos cambiar la ruta de guardado de algunos archivos, sin embargo no se como utilizar estas funciones, si alguien sabe como funciona y como puedo obtener un cambio de directorio se lo agradeceria
7
Preguntas y respuestas / Unificación de códigos
Enero 16, 2021, 06:58:40 PM
Hola amigos, tengo una nueva duda jeje,

Tengo 2 codigos para 2 objetos diferentes, un objeto busca la textura de un tileset para hacer un reflejo.

El otro objeto funciona por medio de un shader el cual distorsiona el sprite como unas olas.

El objetivo es hacer que el objeto que refleja los tiles también distorsione el reflejo por medio del shader, pero no se como unirlos.

Estos son los codigos de mis objetos:

[OBJ_WATERTILES] (el reflejo)

[create]

[gml]/// Varialbes
var w = camera_get_view_width(view_camera);
var h = camera_get_view_height(view_camera);
water_surf = surface_create(w, h);[/gml]

[Draw]

[gml]/// @description
//Get tilemap
var tilemap = layer_tilemap_get_id("WaterTiles");

//Set surface
surface_set_target(water_surf);

//Draw tilemap
var cx = camera_get_view_x(view_camera);
var cy = camera_get_view_y(view_camera);
draw_tilemap(tilemap, -cx, -cy);


///Bunny

//Draw reflected player sprite
//Get player y offset for reflection
var yoff = (obj_vampire_bunny.sprite_height - obj_vampire_bunny.sprite_yoffset)*2;
//Set blendmode
gpu_set_blendmode_ext(bm_dest_alpha, bm_inv_src_alpha);
//Draw reflection
draw_sprite_ext(obj_vampire_bunny.sprite_index, obj_vampire_bunny.image_index, obj_vampire_bunny.x - cx, (obj_vampire_bunny.y-6+yoff) - cy, obj_vampire_bunny.image_xscale, -obj_vampire_bunny.image_yscale, 0, -1, 0.6);
//Reset blendmode
gpu_set_blendmode(bm_normal);


///PROTA

//Draw reflected player sprite
//Get player y offset for reflection
var yoff = (obj_prota.sprite_height - obj_prota.sprite_yoffset)*2;
//Set blendmode
gpu_set_blendmode_ext(bm_dest_alpha, bm_inv_src_alpha);
//Draw reflection
draw_sprite_ext(obj_prota.sprite_index, obj_prota.image_index, obj_prota.x - cx, (obj_prota.y-6+yoff) - cy, obj_prota.image_xscale, -obj_prota.image_yscale, 0, -1, 0.6);
//Reset blendmode
gpu_set_blendmode(bm_normal);



//Reset surface
surface_reset_target();

//Draw surface in game
draw_surface(water_surf, cx, cy);

[/gml]

[Begin Draw]

[gml]/// @description
if (!surface_exists(water_surf)){
   var w = camera_get_view_width(view_camera);
   var h = camera_get_view_height(view_camera);
   water_surf = surface_create(w, h);
}
else{
   surface_set_target(water_surf);
   draw_clear_alpha(0, 0);
   surface_reset_target();
}[/gml]

[OBJ_TEST] (Distorsion)

[Create]

[gml]uniTime = shader_get_uniform(sh_water, "Time");
uniTexel = shader_get_uniform(sh_water, "Texel");
[/gml]

[Draw]

[gml]shader_set(sh_water);

shader_set_uniform_f(uniTime, current_time);
var tex = sprite_get_texture(sprite_index, image_index);
shader_set_uniform_f(uniTexel, texture_get_texel_width(tex), texture_get_texel_height(tex));

draw_self();

shader_reset();[/gml]

[SH_WATER] (Shader de distorsion)

[Page 1]

[gml]//
// Simple passthrough vertex shader
//
attribute vec3 in_Position;                  // (x,y,z)
//attribute vec3 in_Normal;                  // (x,y,z)     unused in this shader.
attribute vec4 in_Colour;                    // (r,g,b,a)
attribute vec2 in_TextureCoord;              // (u,v)

varying vec2 v_vTexcoord;
varying vec4 v_vColour;

void main()
{
    vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0);
    gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos;
   
    v_vColour = in_Colour;
    v_vTexcoord = in_TextureCoord;
}
[/gml]

[Page 2]

[gml]//
// Simple passthrough fragment shader
//
varying vec2 v_vTexcoord;
varying vec4 v_vColour;

uniform float Time;
uniform vec2 Texel;

const float Xspeed = 0.01;
const float Xfreq = 20.0;
const float Xsize = 5.0;

const float Yfreq = 100.0;
const float Ysize = 20.0;

void main()
{
   //X wave
   float Xwave = sin(Time*Xspeed + v_vTexcoord.y*Xfreq) * (Xsize*Texel.x) * (v_vTexcoord.y);
   float Ywave = sin(Time*Xspeed + v_vTexcoord.y*Yfreq) * (Ysize*Texel.y) * (v_vTexcoord.y);
   
    gl_FragColor = v_vColour * texture2D( gm_BaseTexture, v_vTexcoord + vec2(Xwave, Ywave));
}
[/gml]

Si alguien tiene idea de como unir esos dos codigos se lo agradeceria mucho :,3
8
Hola amigos, otra vez yo  :-[

Estaba tratando de buscar un shader gratis para hacer un efecto de reflejo para el agua o simplemente un espejo, es para un juego en 2D rpg, asi que no creo que sea mucho problema... o a lo mejor si :,3

en fin si encuentran uno se los agradeceria infinitamente :3
9
Hola amigos, primero que nada buenas tardes xd y segundo...

Tengo un código que corresponde a la creación de un textbox rpg, lo que sucede es que esta instancia al terminar todos los textos se debería destruir y dejar que el personaje se mueva, el caso es que cree una copia del objeto textbox y ligue el objeto a esa copia, lo que sucede es que cuando uso la copia el objeto textbox(copia) no se destruye, si no que se reinicia, el objetivo de la copia del textbox es poder modificarlo, pero con este problema no puedo hacer nada, como puedo arreglar este problema?

[obj_textbox] (original)

[create]
[gml]indice = 0;

mensaje = "";

alarm[0] = 1;

///coloca el cuadro de texto en la parte inferior de la pantalla
x = __view_get( e__VW.XView, 0 )+0;
y = __view_get( e__VW.YView, 0 )+176;

[/gml]

[Step]

[gml]/// @description  preciona enter y cambia de dialogo
if keyboard_check_pressed(ord("X")) and indice <= referencia.final{
   if (mensaje == referencia.msg[indice]){
       indice += 1;
       global.mensaje += 1;
       if (indice > referencia.final) { obj_prota.stop = false; instance_destroy(); }
       mensaje = "";
       }else{
             mensaje = referencia.msg[indice];
       }
}

///coloca el cuadro de texto en la parte inferior de la pantalla
x = __view_get( e__VW.XView, 0 )+0;
y = __view_get( e__VW.YView, 0 )+176;

[/gml]

[Alarm_0]

[gml]if (string_length(mensaje) < string_length(referencia.msg[indice])){
    mensaje += string_char_at(referencia.msg[indice],string_length(mensaje)+1);
    audio_play_sound(snd_letras,1,false);
}

alarm[0] = 1;

[/gml]

[Draw]

[gml]/// @description dibujar textbox
draw_self(); //permitir ver el sprite del objeto
draw_set_font(fnt_textbox); //fuente del texto
draw_set_color(c_white); //color
draw_text_ext(x+20,y+7,string_hash_to_newline(mensaje),string_height(string_hash_to_newline("W")),310-60); //dibujar bucle de texto
draw_set_halign(fa_left); //alineacion del texto

[/gml]

[Objeto protagonista]

[Step]

[gml]///Refrigerador

var  bloque;
bloque = collision_circle(x,y,5,obj_refrigerador,true,false);

if (keyboard_check_pressed(ord("X")) and bloque){
    var msg;
    msg = instance_create(0,0,obj_textbox_refrigerador);
    msg.referencia = bloque;
    stop = true;
   
}[/gml]

[objeto_refrigerador]

[create]

[gml]msg[0] = "Encima del refrigerador hay#un tarro de galletas.";
msg[1] = "Parece que solo queda una#galleta...";
msg[2] = "¿Tomas la ultima galleta?";
msg[3] = "Has tomado la ultima galleta!"
msg[4] = "Michael: Oye, por cierto#no vallas a tomar mi galleta que deje en el tarr...";
msg[5] = "...";
msg[6] = "Olvidalo...";

final = 6

global.mensaje = 0

depth = -y;[/gml]

[como quisiera modificar el textbox]

[step textxbox]

[gml]/// @description  preciona enter y cambia de dialogo
if keyboard_check_pressed(ord("X")) and indice <= referencia.final{
   if (mensaje == referencia.msg[indice]){
       indice += 1;
       global.mensaje += 1;
      
       if (indice = 3) { alarm[1] = 10 }
      
      if ((indice > 3) && (canskip = true) && (obj_arbol_de_navidad.Aregalo = 0) && (obj_arbol_de_navidad.Txtarb = 0)) { obj_prota.stop = false; instance_destroy(); canskip = false}
      
      if (indice > 6) { obj_prota.stop = false; instance_destroy(); canskip = false;  obj_arbol_de_navidad.Aregalo = 1}
      
      if ((indice > 0) && (obj_arbol_de_navidad.Aregalo = 1)) {obj_prota.stop = false; instance_destroy();}
      
       mensaje = "";
       }else{
             mensaje = referencia.msg[indice];
       }
}


///coloca el cuadro de texto en la parte inferior de la pantalla
x = __view_get( e__VW.XView, 0 )+0;
y = __view_get( e__VW.YView, 0 )+176;[/gml]

Necesito ayuda, es bastante extraño que suceda esto, ya probe cambiando el step por begin step o un end step, pero nada :/ si alguien tiene idea de lo que sucede se lo agradeceria mucho :3
10
Que tal amigos :D?

Hoy vengo con una nueva pregunta, cuando se incicia un juego en game maker, en la parte de abaja sale como un registro de las acciones que hace, por ejemplo se registra un evento de pausa o aparece "Compile finished: 9:45:18"
lo que me interesa saber es como tomar ese evento de registro para poder usarla en el juego, como por ejemeplo saber cuantas veces ha sido cerrado el juego y a partir de eso poder cambiar el juego, un ejemplo.
[gml]if (se cierra el juego) = 3 {
            draw_text(x,y, "has jugado" + global.(se cierra el juego) + " veces, por favor vuelve mañana")
}[/gml]

les agradezco por su ayuda amigos :3
11
Hola amigos, qué tal todo? :D

Hoy vengo con una pregunta nueva, hace tiempo encontré un código para crear un textbox al acercarte a un personaje y presionar la tecla X, esto es posible gracias a un círculo de colisión con los objetos npc, el cual en ocasiones puede no ser tan preciso, me gustaria mejorar ese codigo para tener mas precision y lo mas importante, que el sprite del personaje npc cambie dependiendo de la posición que se le esté hablando, les dejare una imagen y los códigos para que puedan comprender mejor.

Código de la colisión antigua, (es la variable bloque):

[gml]///Mama

var  bloque;
bloque = collision_circle(x,y,5,obj_mama,false,false);

if (keyboard_check_pressed(ord("X")) and bloque){
    var msg;
    msg = instance_create(0,0,obj_textbox);
    msg.referencia = bloque;
    stop = true;
   
}[/gml]

Evento create de la mama:

[gml]msg[0] = "Mamá: Hola cariño.";
msg[1] = "Mamá: Vine aqui para comprar#algunas cosas para el almuerzo.";
msg[2] = "Mamá: Pero bien parece que no#hay nadie.";
msg[3] = "Mamá: Supongo que todos estan#en sus hogares descansando#despues de las fiestas.";
msg[4] = "Mamá: ¿Ya desayunaste?.";
msg[5] = "Mamá: Porfavor perdoname por no#haberte dejado el desayuno.";
msg[6] = "Mamá: Estaba muy apresurada.";
msg[7] = "Mamá: Vamos a casa, te pedire#una pizza.";

final = 7;


global.mensaje = 0;

image_speed = 0.1;

depth = -y;[/gml]

Una imagen de ejemplo para mayor comprensión (adjunto):

Les agradeceria mucho su ayuda amigos y gracias por todo :3
12
Se que este tema ya esta en el grupo y espero no estar rompiendo las reglas, pero estuve  tratando de hacerlo en game maker 1.4 y no me funciona, queria saber como bajar poco a poco el volumen de un sonido para pasar a otro, estuve usando algunos codigos y siempre de daba error

Este es el codigo que estoy usando:

Evento create:

[gml]global.bajarvolumen = 0;
global.vol =1;[/gml]

Evento step:

[gml]if global.bajarvolumen == 1 {
    global.vol -= 0.005;
    sound_volume(snd_music_home,global.vol)
}   

if global.vol <= 0 {
    audio_play_sound(snd_music_mother,0,true);
}[/gml]

inclusive coloque el global.vol -= 0.005; fuera de if y el juego me da error, les agradezco de antemano su ayuda.
13
Que tal amigos, me estaba preguntando lo siguiente,  algunos juegos pueden saber si el usuario tiene abierta una pestaña de google, por ejemplo twitch y muestran algo especial si es el caso, me pregunto si esto es posible en game maker o no, agradezco de antemano sus repuestas :3
14
Hola amigos, que tal les va?
en muchos juegos he visto que cuando un personaje camina, se escucha un sonido de pisadas, cuando se detiene estas tambien paran, a la vez veia que cuando caminaba en diferentes superficies, este colocaba un sonido diferente, me preguntaba cómo podría hacerlo?

pd. ya intente poner un audio_play_sound en cada movimiento, sin embargo no funciono.

Esta es la linea de codigo que uso para el movimiento de mi personaje:

[gml]///Movimiento

if (stop == true) { exit;}

//movimiento del jugador
if correr = 0 && global.prota_mover = 1
{
if keyboard_check(vk_up)
{
    y-= 3
    sprite_index= spr_prota_arriba
    image_speed = 0.2
}
if keyboard_check(vk_down)
{
    y+= 3
    sprite_index = spr_prota_abajo
    image_speed = 0.2
}
if keyboard_check(vk_left)
{
    x-=3
    sprite_index = spr_prota_izquierda
    image_speed = 0.2
}
if keyboard_check(vk_right)
{
    x+=3
    sprite_index = spr_prota_derecha
    image_speed = 0.2
}
}

if keyboard_check_released(vk_left) or keyboard_check_released(vk_right) or keyboard_check_released(vk_up) or keyboard_check_released(vk_down)
{
image_speed = 0
image_index = 0
}
if keyboard_check(ord("Z"))
{
    correr = 1
}
if keyboard_check_released(ord("Z"))
{
    correr = 0
}
if correr = 1 && global.prota_mover = 1
{
if keyboard_check(vk_up)
{
    y-= 5
    sprite_index= spr_prota_arriba
    image_speed = 0.3
}
if keyboard_check(vk_down)
{
    y+= 5
    sprite_index = spr_prota_abajo
    image_speed = 0.3
}
if keyboard_check(vk_left)
{
    x-=5
    sprite_index = spr_prota_izquierda
    image_speed = 0.3
}
if keyboard_check(vk_right)
{
    x+=5
    sprite_index = spr_prota_derecha
    image_speed = 0.3
}
}
[/gml]
15
Hola amigos!
Hace tiempo jugue un juego llamado Oneshot, y en cierta parte del juego el protagonista literalmente sale de la ventana de juego, me preguntaba si esto es posible en game maker studio 1.4, me ayudaria mucho su ayuda  :) :) :).

Un ejemplo de esto (vean el ultimo final del juego):
https://www.youtube.com/watch?v=ssnWAzpm_Zk
16
Hola chicos, (Ya me gusto este foro :3)
Hace tiempo estaba jugando algunos juegos como Oneshot, en el cual vi que ponían el nombre del usuario de la computadora para hacerte creer que se rompia la cuarta pared, me preguntaba como podria obtener los valores del nombre de usuario actual de la computadora y usarlo como una string para poder ser manifestada en un texto en el juego, si alguien sabe, me ayudaria muchisimo, gracias a todos por su apoyo  :) :) :)
17
Hola amigos, soy yo de nuevo, ya me resolvieron una duda con los fondos de earthbound y en principio todo estaba bien, logre replicar todos los shaders correctamente en mi juego, sin embargo, el video del youtuber jucarave no mostró mucho respecto a los objetos que uso, en la pantalla pueden verse el objeto Main que no tengo idea que contiene, y los efectos, podria alguien ayudarme  a saber que eventos tiene el objeto main y los objetos de los efectos? Les agradezco de antelación por su apoyo :3

Este es el video de Jucarave:
https://www.youtube.com/watch?v=Cn0CegQyxDg
18
Hola amigos, me llamo Marlon, me estaba preguntando como hacer fondos estilo earthbound que se muevan de formas bastante geniales, este es un ejemplo: https://www.youtube.com/watch?v=_Evi_12dQwE 
este: https://www.youtube.com/watch?v=893gZ8tmk2c&t=10s
o este: https://www.youtube.com/watch?v=PliyMHTlBa0