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

376
Preguntas y respuestas / Re:Juego tipo Arkanoid
Febrero 10, 2014, 04:42:48 PM
El código ese ponelo en step de la bola.

En colisión con los demás objetos usá este código.

Al rebotar con las paredes:

[gml]
hspeed = -hspeed;
[/gml]

Al rebotar en el techo o bloques:

[gml]
vspeed = -vspeed;
[/gml]

Con eso ya tendrías todo solucionado.
377
Algo que me olvidé de poner es que para activarlo o desactivarlo directamente encierran los dos códigos dentro de un if y ese if que compruebe si una variable es true o false, si es true se muestra, si es false no se muestra.
378
Lo único que se me ocurre es que lo programés, tendrías que hacer un objeto que se coloque delante de todo y dibujar el texto con las opciones a elegir y que compruebe si se hizo clic en la posición del 1° botón, 2° botón o 3° botón, otra no hay :S

[EDIT]

No pude resistirme y lo programé, acá te dejo el código.

En un objeto, en el evento draw poné esto:

[gml]
draw_set_color(c_white);
draw_rectangle((room_width/2)-200,(room_height/2)-70,(room_width/2)+200,(room_height/2)+70,0);
draw_set_color(c_black);
draw_rectangle((room_width/2)-200,(room_height/2)-70,(room_width/2)+200,(room_height/2)+70,1);

draw_set_font(font0);
draw_text((room_width/2)-190,(room_height/2)-60,"Esto es un ejemplo básico de sistema de menú.#¿Qué desea hacer?");

draw_rectangle((room_width/2)-190,(room_height/2)+35,(room_width/2)-100,(room_height/2)+60,1);
draw_text((room_width/2)-188,(room_height/2)+37,"Opción 1");

draw_rectangle((room_width/2)-45,(room_height/2)+35,(room_width/2)+45,(room_height/2)+60,1);
draw_text((room_width/2)-42,(room_height/2)+37,"Opción 2");

draw_rectangle((room_width/2)+100,(room_height/2)+35,(room_width/2)+190,(room_height/2)+60,1);
draw_text((room_width/2)+102,(room_height/2)+37,"Opción 3");
[/gml]

Lo que hacemos ahí es dibujar un rectángulo blanco y dibujarle un bordecito negro, luego dibujamos el texto y los tres botones del menú (podes ampliar el tamaño con el segundo room_width/2).

En el evento step:

[gml]
if (mouse_x > (room_width/2)-190 && mouse_x < (room_width/2)-100 && mouse_y > (room_height/2)+35 && mouse_y < (room_height/2)+60) {
    if (mouse_check_button_released(mb_left)) {
        show_message("Opción 1");
    }
}

if (mouse_x > (room_width/2)-45 && mouse_x < (room_width/2)+45 && mouse_y > (room_height/2)+35 && mouse_y < (room_height/2)+60) {
    if (mouse_check_button_released(mb_left)) {
        show_message("Opción 2");
    }
}

if (mouse_x > (room_width/2)+100 && mouse_x < (room_width/2)+190 && mouse_y > (room_height/2)+35 && mouse_y < (room_height/2)+60) {
    if (mouse_check_button_released(mb_left)) {
        show_message("Opción 3");
    }
}
[/gml]

Lo que hacemos ahí es comprobar si la posición del mouse está entre los valores de cada uno de los botones, si ese es el caso y si se presionó y soltó el botón derecho del mouse vamos a hacer una acción, en este caso un show_message.

Algo importante es que si modificás el tamaño de los cuadros de opciones en el evento draw, tenes que modificarlo también en el evento step.

PD: draw_set_font(font0); es una fuente con los 255 caracteres.
379
Preguntas y respuestas / Re:Base de datos SQL Server
Febrero 07, 2014, 11:50:53 PM
Al parecer si, pero el enlace a GMC desapareció y no puedo encontrar la DLL, pero si está el GEX:

http://gmc.yoyogames.com/index.php?showtopic=605118
380
En realidad el Help de GMx tiene un buscador que es realmente útil y no demora nada en hacer la búsqueda.

En cuanto a los ejemplos de GM6, creo que GMS tiene la función Import y deja agregar proyectos anteriores, si no podes descargar el GM8 y pasar los *.gm6 a *.gmk para luego pasarlo a GMS.
381
Es cuestión de usar la imaginación, en la programación el límite lo da el conocimiento de uno mismo xD.
Estaba programando un breakout (arkanoid) y se me ocurrió aplicar el método para los escenarios, al fin y al cabo, todo es posible.
382
El código que puso vampy09 se usa a menudo para almacenar mapas externamente y cargarlos para así ahorrar poner tantos objetos desde un principio y el juego pese menos (el ejecutable).

Yo personalmente uso mucho las matrices en C++ para "dibujarlas", es decir que tengan un patrón con números al azar y el resto cero.
También otro modo de usar matrices puede ser en un inventario.

Las matrices tienen infinidad de usos, donde acabe tu imaginación :D
383
No está mal, yo siempre que tengo alguna duda voy por el buscador de CGM, si no a la sección de descargas y por último a GMC.

Se me ocurre que los ejemplos se suban a la sección de descargas y se publicara una breve reseña del ejemplo y el enlace a la sección.

Un motivo que me desalienta a usar la sección de descargas para subir ejemplos es que tardan de una semana a tres semanas en ser aprobados cada archivo que se envía :S
384
En la sección de descargas tenés muchos ejemplos y hasta creo que había uno como el que queres.
385
Buenas, he notado que si bien la comunidad tiene su sección de descargas para subir ejemplos, la misma no es muy frecuentada por los nuevos usuarios y está algo abandonada, es por eso que propongo crear una nueva sección dentro del foro para que se puedan subir ejemplos a disposición de todos los usuarios, eso si, los mismos tendrían que estar comentados correctamente.

No se, es algo que se me ocurrió que estaba en la antigua CGM (allá por el 2007/8) y al pasar de sistema se perdió.

Desde ya, muchas gracias.
386
Preguntas y respuestas / Re:ayuda con sentencia RETURN
Febrero 06, 2014, 04:38:34 PM
Agrego algo que aprendí programando en PHP, C++ y Java xD

La sentencia Return lo único que hace (únicamente en las funciones, en este caso scripts) es devolver un resultado dentro de un script, es decir que lo que dice el manual está bien eso de que al usarse se termina con el ciclo del script ya que, en teoría, si pusimos return quiere decir que ya no tenemos más script que ejecutar y por ende queremos saber en que quedó nuestra ejecución del script, es decir que retornaría a su llamado (cuando llamamos al script desde nuestro objeto) con lo que lo programamos para que retorne como es en los ejemplos del amigo Mega G.

Con respecto al ejemplo de los días, me parece algo erróneo utilizar múltiples return, en su lugar yo usaría una variable var y un switch para optimizar el código y luego retornaría a la variable:

[gml]
var day;

switch (current_weekday) {
      case 0:
             day = "Domingo";
      break;
      case 1:
             day = "Lunes";
      break;
      case 2:
             day = "Martes";
      break;
      case 3:
             day = "Miercoles";
      break;
      case 4:
             day = "Jueves";
      break;
      case 5:
             day = "Viernes";
      break;
      case 6:
             day = "Sábado";
      break;
}
return day;
[/gml]

De esta forma el código queda un poco más largo pero es más eficiente por la misma estructura del switch en comparación del if (lo aprendí gracias al amigo Texic!).
387
En realidad shaq145, el código que pusiste largaría error ya que estás intentando que se actualice una posición de un objeto que no existe porque fue destruido más arriba.

Lo que podes hacer son dos cosas:

1) Cambiar la posición sin destruir el objeto:

En el evento colisión del objFruit (o como se llame xD) con el objPlayer pones esto:
[gml]
x+=20;
[/gml]

2) Destruir y crear:

Similar a lo que dijo el amigo shaq145 pero se ejecutaría en el objPlayer:
En el evento colisión del objPlayer con objFruit:
[gml]
with (objFruit) {
      instance_destroy();
}
instance_create(x+20,y,objFruit);
[/gml]

Utilizo las coordenadas del objPlayer ya que en teoría serían las coordenadas del objFruit cuando colisionan los dos objetos.

Espero que te sirva :D
388
Preguntas y respuestas / Re:ERROR AL GENERAR APK
Febrero 06, 2014, 12:14:37 AM
Si ya se, pero como digo yo es la forma offline o en el caso de que se trabe el SDK Android Manager (cosa que me pasó a mi y por lo que leí en otras webs a varios más les ha pasado).
389
Preguntas y respuestas / Re:ayuda com GML
Febrero 05, 2014, 05:06:44 PM
Esa es una de las formas, otra forma es en un evento step poniendo eso:

[gml]
if (keyboard_check(vk_left)) x -= 5;
if (keyboard_check(vk_right)) x += 5;
if (keyboard_check(vk_up)) y -= 5;
if (keyboard_check(vk_down)) y += 5;
[/gml]

Para la colisión, una de las formas más sencillas es poner el objeto con el que colisiona en "solid" y en el personaje poner una colisión (evento) con ese objeto ahora "solid" y poner un code que sea speed = 0; o varias veces ni hace falta ponerle el evento colisión estando marcado como solid el objeto a colisionar.
390
Lo que pude encontrar por Google fue que desintalaras GMS y borraras todo lo que hay en la carpeta %appdata%/GameMaker-Studio y todo lo que sea gm_ttt de los temporales. También puede ser alguna API del SDK mal instalada y simplemente la versión de JDK que tenes le falta algo, en lo posible si podes descargate la versión full del JDK actualizada.