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.

Mensajes - bygdle

541
¿Modificaste la velocidad desde el editor de sprites?
Si lo hiciste, te informo, como bien dice ahí, que esa no es la velocidad real del sprite, sólo es para probar.

Para modificar la velocidad real del sprite debes usar la variable image_speed, donde 1 es la velocidad normal.
542
En GML, el ciclo do va acompañado de until, no de while  :-[
543
Preguntas y respuestas / Re:Ayuda con sonidos
Abril 21, 2016, 03:01:13 AM
Creo que el error fue mío, no escribí los argumentos bien :-[
[gml]
audio_play_sound(snd_1, 1, true);
[/gml]
http://docs.yoyogames.com/source/dadiospice/002_reference/game%20assets/sounds/audio_play_sound.html
544
Preguntas y respuestas / Re:COLOR PERSONALIZADO
Abril 20, 2016, 10:48:35 PM
Usando la función make_colour_rgb() o make_colour_hsv()
545
Preguntas y respuestas / Re:Ayuda con sonidos
Abril 20, 2016, 03:59:46 AM
1)- Comprobando si snd_2 está reproduciéndose. Y si lo está, detenerlo:
[gml]
if (audio_is_playing(snd_2))
    audio_stop_sound(snd_2);
audio_play_sound(snd_1, 1, true);
[/gml]

2)- Con las funciones audio_pause_sound() y audio_resume_sound()

3)- ¯\_(ツ)_/¯ xDD
546
Puedes usar una sentencia if para eso :-[
547
¿Un qué?  XD  :'(
Y no, yo no dejo ejemplos  :-[
548
Puedes tener una variable global con los nombres.
En el evento <create> (en el mismo sitio donde pusiste el primer código de mi mensaje anterior):
[gml]
global.nombre[0] = "Vidas";
global.nombre[1] = "Manzanas";
global.nombre[2] = "Monedas";
//Recuerda que tenemos 3 puntuaciones diferentes. Por eso creamos tres índices en el array
[/gml]
Y en <draw>, en vez del código anterior, usas algo como esto:
[gml]
var i;
for(i = 0; i < global.puntuaciones; i+=1)
    draw_text(32, 32 + 32*i, global.nombre+": "+string(global.puntos));
[/gml]
549
E irónicamente soy yo quien te vuelve a responder xD

Te doy el mismo código que te dí en la anterior pregunta. Pero adaptado a GM8

Evento <create>
[gml]
global.puntuaciones = 3; //Yo quiero hacer tres diferentes puntuaciones
global.puntos[global.puntuaciones - 1] = 0;
[/gml]
Y en el objeto que quieras que sume a X puntuación, en el <create>:
[gml]
sumar_a = 0; //Esta variable significa la puntuación a la que el objeto va a sumar, siendo 0 la primera puntuación, 1 la segunda y 2 la tercera
[/gml]
Y cuando quieras sumarle, por ejemplo, <collision>
[gml]
global.puntos[sumar_a] += 1; //Le sumamos un punto a la puntuación dada
[/gml]
El valor de sumar_a puede ser modificado a tu gusto, y también desde el Creation Code, para darle más "flexibilidad" o lo que sea xD. Obviamente el valor de esta variable debe estar entre 0 y 2. Puesto que sólo hay tres espacios para puntuaciones (del 0 al 2)

Por último, puedes dibujar los puntos, ya sea manualmente o con un ciclo, así:
[gml]
var i;
for(i = 0; i < global.puntuaciones; i+=1)
    draw_text(32, 32 + 32*i, "Puntos " + string(i + 1)+": "+string(global.puntos));
[/gml]
550
Preguntas y respuestas / Re:ayuda -evitar pared
Abril 17, 2016, 06:11:22 PM
Creo que se puede hacer usando un algoritmo llamado Pathfinding. He visto varios post sobre eso rondando por aquí en el foro. Quizás te ayude usar el buscador.
551
Sí, las posiciones intermedias se crean. Con un valor de 0.
Esto ya que los arrays reservan las posiciones anteriores no declaradas asignándole ese valor. Mejor dicho, con el ciclo estarías haciendo esto:
[gml]
array[0] = 0;
array[1] = 0;
array[2] = 2;
array[3] = 0;
array[4] = 4;
array[5] = 0;
array[6] = 6;
...
[/gml]
552
Para ello deberías tener diferentes variables para las diferentes puntuaciones, o preferiblemente arrays.
Entonces, por ejemplo (sólo un ejemplo, una idea mia :v), primero declararías un array para las diferentes puntuaciones. Evento <create>
[gml]
global.puntos[2] = 0; //Yo quiero hacer tres diferentes puntuaciones, y por ello reservo tres espacios en el array (del 0 al 2).
[/gml]
Y en el objeto que quieras que sume a X puntuación, en el <create>:
[gml]
sumar_a = 0; //Esta variable significa la puntuación a la que el objeto va a sumar, siendo 0 la primera puntuación, 1 la segunda y 2 la tercera
[/gml]
Y cuando quieras sumarle, por ejemplo, <collision>
[gml]
global.puntos[sumar_a] += 1; //Le sumamos un punto a la puntuación dada
[/gml]
El valor de sumar_a puede ser modificado a tu gusto, y también desde el Creation Code, para darle más "flexibilidad" o lo que sea xD

Por último, puedes dibujar los puntos, ya sea manualmente o con un ciclo, así:
[gml]
for(var i = 0; i < array_length_1d(global.puntos); i++)
    draw_text(32, 32 + 32*i, "Puntos " + string(i + 1)+": "+string(global.puntos));
[/gml]
553
Creo que te estás haciendo una bola de código xD
Mi modificación sería ésta:
[gml]
key_left = keyboard_check(vk_left);
key_right = keyboard_check(vk_right);

if key_right {
   if hsp < 4
      hsp += 0.4;
   else
      hsp = 4;
}
else {
   if hsp > 0
      hsp -= 0.2;
}
if !place_meeting(x + hsp, y, obj_block)
    x += hsp;
[/gml]
Esto suponiendo que tienes un hsp = 0 declarado en <create>
554
quizás la variable hsp nunca es mayor a 0, pero hay otro problema: Dices que quieres que si sea mayor a 0, restarle 0.2 hasta dejarlo en 0. Pero ¿Si, por ejemplo, el valor es de 0.1? Podrías tener negativos como resultado D:

En el peor de los casos, podrías usar variables predefinidas, como hspeed y friction
555
Preguntas y respuestas / Re:Gira sprites
Abril 10, 2016, 10:34:01 PM
la variable image_angle indica el ángulo (en grados) del sprite. Y la variable direction indica la dirección hacia la que va un objeto (también en grados).
Entonces, podrías, por ejemplo, escribir:
[gml]
image_angle = direction;
[/gml]