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

601
Cito:
Cita de: NiuWeb en Enero 29, 2016, 04:30:11 PM
Nota MUY importante: Si abres un archivo *.ini que no existe, éste no se creará hasta que uses una de las dos funciones para escribir en él, y mientras el archivo no exista, las funciones de lectura devolverán los valores por defecto argumentados en las mismas.

Los *.ini no necesitan tenerse en los Incluided Files, sólo debe escribirse algo en ellos para que se creen en la ruta del juego(%localappdata%), y mientras esto no se haga, las funciones de lectura devolverán el valor por defecto si no está el archivo en las Incluided Files. Si está, pues lee el valor de ahí.

Y también busca los archivos de texto en el manual, como "file_text", y así aparecen todas las funciones de este sistema.
602
Si sólo habrá una instancia a la vez, como el ejemplo que diste, se podría hacer así, desde un objeto cualquiera en evento <step>:
[gml]
if mouse_check_button_pressed(mb_left) {
objeto_monstruo.image_xscale -= 0.1; //Esto es opcional, pon lo que quieras
objeto_monstruo.image_yscale -= 0.1; //Esto es opcional, pon lo que quieras, pero sería mejor que usaras la misma medida de arriba para que no se deforme el sprite
}
[/gml]
603
[gml]
if image_xscale == 0
room_restart();
[/gml]
604
Entonces, en el <mouse left pressed> del objeto que quieres cambiar su tamaño:
[gml]
image_xscale--;
image_yscale--;
[/gml]
605
Me van a regañar por responder tantas preguntas diferentes en un solo post D:
En el <step> de cualquier objeto:
[gml]
if mouse_check_button_pressed(mb_left) {
global.tamanio--;
}
[/gml]
606
Archivos *.ini, archivos de texto. Todo eso es perfectamente posible D:
Aquí te spameo un tutorial que hice sobre los archivos *.ini: LINKKKK

Y en el manual encuentras sobre los archivos de texto buscando por "file_text".
607
Podrías, primero, en algún otro objeto, declarar una variable global, evento <create>:
[gml]
global.tamanio = 1;
[/gml]
Y en el objeto que se crea, evento <create>:
[gml]
image_xscale = global.tamanio;
image_yscale = global.tamanio;
[/gml]
Y en el <destroy> del objeto, junto al instance_create:
[gml]
global.tamanio++;
[/gml]
608
Depende de lo que quieras hacer. Si quieres que se cree cuando haces click en X parte, pues pones el instance_create en un evento de mouse o dentro de una condición de mouse.
Si sólo quieres que se cree si no existe pues algo asi:
[gml]
if !instance_exists(objeto) {
instance_create(ya,lo,sabesxD);
}
[/gml]
609
Pues le restas a los valores X & Y del instance_create  ???
610
Puedes, por ejemplo, crear el objeto en una posición aleatoria así:
[gml]
instance_create(irandom(room_width), irandom(room_height), objeto);
[/gml]
Y en el evento <destroy> del objeto pones el mismo código.
611
No sé un pepino de Delphi, pero si sabes lo que quieres hacer (o al menos lo que ese código hace), ¿Por qué no lo haces directamente en GML en vez de traducirlo?

Sólo por si acaso, quizás deberías explicar qué significa ese código para quienes no saben delphi pero quizás sepan hacer lo que quieres en GML
612
Bueno, yo no soy mucho de páginas así que no te puedo recomendar ninguna. Lo siento  :-[ :'(
Pero por ahí en la sección de Artículos rondan varios tutoriales que, mezclándolos, te pueden enseñar la (redundancia en 3, 2, 1) función de las funciones (xDDD valga la redundancia xDDD) más importantes y el funcionamiento del lenguaje D:
613
Claro que se puede xD
Sólo necesitas el dibujo y un scanner o algo con el que puedas pasarlo como imagen a la PC. Luego, le aplicas algún método para hacerlo más "virtualito", ya sea vectorización, o lo pones en fotochó/gimp y le haces pixelArt encima D:
614
Podrías escribir ese código en el <step> del objeto que quieres destruír, y a la vez compruebas si el dedo que tocó está tocando específicamente el objeto, porque las funciones de mouse se activan si el mouse toca en cualquier parte D:
[gml]
for(i = 0; i < 5; i++) {
if device_mouse_check_button_pressed(i, mb_left) {
if device_mouse_x(i) >= x and device_mouse_x(i) <= x + 32
and device_mouse_y(i) >= y and device_mouse_y(i) <= y + 32 {
instance_destroy();
  }
}
}
[/gml]
He cambiao la función device_mouse_check_button por device_mouse_check_button_pressed. Cada una tiene las mismas propiedades que sus parientes mouse_check_button y mouse_check_button_pressed.

Además, comprobé que el dedo que está tocando esté dentro del objeto, imaginando que el sprite del objeto es de 32*32. Esto lo hago con las funciones device_mouse_x y device_mouse_y. Estas dos tienen un solo argumento, que es el dedo al que le queremos buscar la posición.
615
Vale, te explico el código.
Primero, la función device_mouse_check_button() tiene dos argumentos. El primero es un número identificador del dedo que queremos comprobar si está o no pulsando. Si tienes sólo un dedo en la pantalla, ese dedo es el número 0. Si tienes dos, el primero en pulsarse es el 0 y el segundo es el 1, y así sucesivamente. El segundo argumento es el tipo de pulsación que quieres comprobar, si click izquierdo, click, derecho, bla, bla bla. Así desde el dedo 0 (primer dedo) hasta el dedo 4 (último dedo)

Entonces, si queremos comprobar cualquiera de los dedos, la mejor forma es haciendo un ciclo que compruebe todos los dedos. Si lo deseas, te spameo un artículo que hace poco hice donde explico este ciclo. Aquí .

Entonces, el ciclo for va a aumentar una variable i, la cual aumentará de 0 a 4 y comprobará todos los dedos.
Esto para ahorrarse escribir algo como:
[gml]
if device_mouse_check_button(0, mb_left) or device_mouse_check_button(1, mb_left) or
device_mouse_check_button(2, mb_left) or device_mouse_check_button(3, mb_left) or
device_mouse_check_button(4, mb_left) {
//Haces lo que quieras
}
[/gml]
Como que mejor usamos el for xD

Esa sería la explicación :V