Para que un valor se mantenga entre varias rooms, debes ponerle la propiedad "Persistent", al objeto que tiene la variable a mantener. Pero recuerda que con eso no se borrará el objeto al cambiar de rooms, por lo que no tienes que crearlo una y otra vez.
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.
721
Preguntas y respuestas / Re:¿Por que no se mantiene el valor de una variable al cambiar la room?
Febrero 20, 2016, 06:29:52 PM722
General / base de datos SQL con todas las funciones, variables y constantes de GMS
Febrero 18, 2016, 05:51:15 AM
Sí, lo sé, soy probablemente la única persona tan aburrida y desocupada como para hacer esto xD
Me tomé la libertad de pasar ABSOLUTAMENTE TTTOOOOODDDDAS las funciones, variables y constantes de GMS a una base de datos SQL para quien desee usarlas de cualquier forma. No hay definiciones, ni argumentos ni nada de nnnnaaaddda xD, pero están todos los nombres.
La base de datos la dejo adjunta en un archivo *.SQL
No me digan que para qué me puse a hacer esto si es tan increíblemente inútil, porque lo sé, y aún sabiéndolo, lo hice... Pero esa es la razón por la que lo posteé en un Off-topic, para que no afecte mucho si es inútil o no xDDDDD
EDIT absolutamente inútil: He adjuntado también la base de datos en versión PDF para todos!!! xDDDDD
Me tomé la libertad de pasar ABSOLUTAMENTE TTTOOOOODDDDAS las funciones, variables y constantes de GMS a una base de datos SQL para quien desee usarlas de cualquier forma. No hay definiciones, ni argumentos ni nada de nnnnaaaddda xD, pero están todos los nombres.
La base de datos la dejo adjunta en un archivo *.SQL
No me digan que para qué me puse a hacer esto si es tan increíblemente inútil, porque lo sé, y aún sabiéndolo, lo hice... Pero esa es la razón por la que lo posteé en un Off-topic, para que no afecte mucho si es inútil o no xDDDDD
EDIT absolutamente inútil: He adjuntado también la base de datos en versión PDF para todos!!! xDDDDD
723
Preguntas y respuestas / Re:Ayuda! [Problema con botones en la pantalla en juego publicado]
Febrero 18, 2016, 05:08:15 AM
Antes de empezar, te recomiendo que encierres tu código con las etiquetas [gml] y [/gml], para que se pueda apreciar sin resultar con graves quemaduras en los ojos xDD
Ahora... Lo sabía xD, el problema es el mismo que han tenido prácticamente todos los ue han hecho una virtual key por primera vez (y también los que no las usan a menudo). Lo que sucede es que las virtual key se dibujan en las posiciones ABSOLUTAS del DISPLAY, por lo tanto, si dibujas una virtual key de 32*32 en una room de 640*480, al momento de probar el juego en una pantalla de 1280*960 la virtual key se verá el doble de pequeña...
Hace algún tiempo respondí un tema exactamente igual, y como mi nivel de flojera está al 10000%, pues sólo te cito el mensaje xDDD:
El mismo método se aplica a las virtual key
Ahora... Lo sabía xD, el problema es el mismo que han tenido prácticamente todos los ue han hecho una virtual key por primera vez (y también los que no las usan a menudo). Lo que sucede es que las virtual key se dibujan en las posiciones ABSOLUTAS del DISPLAY, por lo tanto, si dibujas una virtual key de 32*32 en una room de 640*480, al momento de probar el juego en una pantalla de 1280*960 la virtual key se verá el doble de pequeña...
Hace algún tiempo respondí un tema exactamente igual, y como mi nivel de flojera está al 10000%, pues sólo te cito el mensaje xDDD:
Cita de: NiuWeb en Febrero 02, 2016, 12:09:23 AM
Te voy a explicar, en el evento draw GUI normalmente haces esto:
[gml]
draw_sprite(el_sprite,0,32,32);
[/gml]
(Ignora las posiciones xD)
Pero ese es el error. Tanto en la GUI como con las virtual key las posiciones absolutas son un error. Debes usar posiciones relativas al display
De esta manera yo lo hago:
[gml]
var w = display_get_gui_width(); //Sacamos el anchor del display del dispositivo
var h = display_get_gui_height(); //Sacamos el largor del display del dispositivo
var x32 = w / (w/32); //Sacamos el valor que equivaldría a 32 pixeles en el display del disposivito
var y32 = h / (h/32); //Lo mismo que lo de arriba sólo que en vertical
/*
Ahora imaginemos que el sprite que quieres dibujar mide 64*64:
*/
draw_sprite_stretched(el_sprite,0,x32,y32,x32*2,y32*2);//Dibujamos el sprite en las posiciones 32 y 32 DEL DISPLAY DEL DISPOSITIVO, y el sprite está dimensionado a 32*2 (64)px DEL DISPLAY DEL DISPOSITIVO. Lo que hace que se escale como debería en cualquier resolución :B
[/gml]
(Lee los comentarios (texto en verde :v) del código)
El mismo método se aplica a las virtual key
724
Preguntas y respuestas / Re:Ayuda! [Problema con botones en la pantalla en juego publicado]
Febrero 18, 2016, 04:28:08 AM
Sin saber los códigos que estás usando y cómo lo estás usando es imposible saber los errores que podrías cometer. Para que se pueda ayudar a solucionar tu problema por favor muestra la información que consideres necesaria, y entre ésta, los códigos que usas
725
Preguntas y respuestas / Re:Tamaño de room y views en sus proyectos.
Febrero 16, 2016, 03:11:37 AMCita de: somnus en Febrero 16, 2016, 03:07:47 AM
por cierto yo uso 1136 x 640, es la resolusion del iphone 5, pero aun siento que algo me falta, esto de las diferencias de resolusiones y tamanos de pantalla es un infierno, alguien que tenga algun tip?
¿Un tip?, usa 16:9 siempre! xD, la grrrran mayoría de computadoras lo usan, y creo (no estoy seguro :V) que los móviles también
726
Desarrollo de Scripts / Obtener la posición de todas las concidencias de una substring en una string
Febrero 15, 2016, 11:16:02 PM
Vaya nombrecito el del post xD, no había una forma más "corta" de definirlo xDDD
Autor: Yo :v (NiuWeb)
Versión de GM utilizada: 1.4.1657 stable version
Descripción: Alternativa mejorada de la función propia del GM string_pos(). Busca las coincidencias de una substring en una string y devuelve la posición de las mismas en un array unidimensional.
La substring puede ser tanto un solo caracter como varios; si es una cadena con más de 1 caracter, el script la buscará igualmente, y devolverá la posición del primer caracter en donde la haya encontrado, por ejemplo: Si busco "gato" en la string "el gato vuela, es un gato volador porque gustavo lo vio volar", el script me devolverá la posición de la "g" de la primera coincidencia de "gato" (es decir, la posición 4) y la "g" de la segunda coincidencia de "gato" (es decir, la posición 22).
De no encontrar la cadena buscada, el script devolverá 0.
Código:
[gml]
///string_pos_fixed(str, substr);
var str = argument0;
var substr = argument1;
var lenght = string_length(str);
var arr = 0, c, m;
for(var i = 1; i <= lenght; i++)
{
if string_length(substr) == 1
{
c = string_copy(str,i,1);
if c == substr
{
if is_array(arr)
arr[array_length_1d(arr)] = i;
else
arr[0] = i;
}
}
else
{
m = string_copy(str,i,string_length(substr));
if m == substr
{
if is_array(arr)
arr[array_length_1d(arr)] = i;
else
arr[0] = i;
}
}
}
return arr;
[/gml]
Argumentos:
[gml]
string_pos_fixed(str, substr);
[/gml]
Espero pueda ser de utilidad para alguien, no olviden dar créditos si lo desean :B
Autor: Yo :v (NiuWeb)
Versión de GM utilizada: 1.4.1657 stable version
Descripción: Alternativa mejorada de la función propia del GM string_pos(). Busca las coincidencias de una substring en una string y devuelve la posición de las mismas en un array unidimensional.
La substring puede ser tanto un solo caracter como varios; si es una cadena con más de 1 caracter, el script la buscará igualmente, y devolverá la posición del primer caracter en donde la haya encontrado, por ejemplo: Si busco "gato" en la string "el gato vuela, es un gato volador porque gustavo lo vio volar", el script me devolverá la posición de la "g" de la primera coincidencia de "gato" (es decir, la posición 4) y la "g" de la segunda coincidencia de "gato" (es decir, la posición 22).
De no encontrar la cadena buscada, el script devolverá 0.
Código:
[gml]
///string_pos_fixed(str, substr);
var str = argument0;
var substr = argument1;
var lenght = string_length(str);
var arr = 0, c, m;
for(var i = 1; i <= lenght; i++)
{
if string_length(substr) == 1
{
c = string_copy(str,i,1);
if c == substr
{
if is_array(arr)
arr[array_length_1d(arr)] = i;
else
arr[0] = i;
}
}
else
{
m = string_copy(str,i,string_length(substr));
if m == substr
{
if is_array(arr)
arr[array_length_1d(arr)] = i;
else
arr[0] = i;
}
}
}
return arr;
[/gml]
Argumentos:
[gml]
string_pos_fixed(str, substr);
[/gml]
str: | La cadena en donde buscar coincidencias |
substr: | La cadena a buscar |
Espero pueda ser de utilidad para alguien, no olviden dar créditos si lo desean :B
727
Preguntas y respuestas / Re:Tamaño de room y views en sus proyectos.
Febrero 15, 2016, 10:44:17 PM
Concentrate en la segunda imagen, dije que el margen blanco es lo que sale de pantalla. Te muestro mejor la imagen 2 con una mejor:

Como ves, dentro de la pantalla no hay líneas negras, pero el anchor del juego se salió de la pantalla, y por eso se verá recortado horizontalmente el juego

Como ves, dentro de la pantalla no hay líneas negras, pero el anchor del juego se salió de la pantalla, y por eso se verá recortado horizontalmente el juego
728
Preguntas y respuestas / Re:Tamaño de room y views en sus proyectos.
Febrero 15, 2016, 10:35:01 PM
T_T, eres un amargado xD
Bueno, nunca he hecho nada similar, pero supooooooongo que tienes dos alternativas. La primera es estirar el juegopara que rellene los espacios negros, aunque se vería algo feo si la proporción de la pantalla difiere mucho de la del juego.
Otra opción, sería estirar sólo una dimensión del juego para mantener la proporción, por ejemplo, si la pantalla mide 640*480 y el juego 720*240, al principio se vería algo así:

Y la solución sería aumentar la altura del juego para rellenar los espacios negros. Pero el nuevo problema sería que se cortaría el largor del juego:

El margen blanco en la imagen es la parte del juego que se sale de pantalla. Como ves, se corta.
Así que todo depende de qué quieras hacer tú :V
PD: Imágenes hechas en paint en 10 segundos, no se burlen T_T xDD
Bueno, nunca he hecho nada similar, pero supooooooongo que tienes dos alternativas. La primera es estirar el juegopara que rellene los espacios negros, aunque se vería algo feo si la proporción de la pantalla difiere mucho de la del juego.
Otra opción, sería estirar sólo una dimensión del juego para mantener la proporción, por ejemplo, si la pantalla mide 640*480 y el juego 720*240, al principio se vería algo así:

Y la solución sería aumentar la altura del juego para rellenar los espacios negros. Pero el nuevo problema sería que se cortaría el largor del juego:

El margen blanco en la imagen es la parte del juego que se sale de pantalla. Como ves, se corta.
Así que todo depende de qué quieras hacer tú :V
PD: Imágenes hechas en paint en 10 segundos, no se burlen T_T xDD
729
Preguntas y respuestas / Re:Tamaño de room y views en sus proyectos.
Febrero 15, 2016, 10:10:30 PMCitar:-[
Quisiera saber como hackear a la NASA, el pentágono, la CIA y todas las organizaciones que deben tener los mejores sistemas de seguridad del mundo; y así poder comenzar bien y aprender como encender la PC
Me callo antes de que me golpeen por troll xDDDDD
No seas tan apresurado, ve despacio y verás que llegarás más lejos
730
Preguntas y respuestas / Re:Tamaño de room y views en sus proyectos.
Febrero 15, 2016, 10:03:01 PM
Pues si para tu nivel es demasiado, deja de seguir insistiendo por hacerlo por el momento. Practica GML, aprende a usar el GM, y sé feliz con la vida aprendiendo paso a paso, como todos XD
731
Preguntas y respuestas / Re:detectar cerrar ventana
Febrero 15, 2016, 09:42:14 PM
Si con "mal cierre" te refieres a cerrar el juego con la X de la ventanita, sí, si se puede: Con el evento Other> Game End
732
Preguntas y respuestas / Re:Mostrar informacion de una base de datos MySQL en el juego
Febrero 14, 2016, 11:17:08 AM
Pues si sabes que $contenido['email'] tiene el correo del usuario, sólo lo envías con la función echo de PHP, así
Y yap :V
Código [Seleccionar]
echo $contenido['email'];
Y yap :V
733
Preguntas y respuestas / Re:Mostrar informacion de una base de datos MySQL en el juego
Febrero 14, 2016, 02:17:48 AM
Pienso yo que es mejor que hagas una consulta que almacene todos los campos. Y en vez de escribir:
Podrías escribir:
Y almacenar la petición en una variable, así:
Y entonces convertirás la variable $contenido en un array que tendrá almacenados todos los campos, por ejemplo $contenido['email'] tendría almacenado el campo "email" de la fila que se extrajo con la petición SQL
Código [Seleccionar]
SELECT email FROM usuarios WHERE user="$_POST[user]"
Podrías escribir:
Código [Seleccionar]
SELECT * FROM usuarios WHERE user='$_POST[user]'
Y almacenar la petición en una variable, así:
Código [Seleccionar]
<?php
$sql = mysqli_query($conexion,"SELECT * FROM usuarios WHERE user='"."'");
$contenido = mysqli_fetch_array($sql);
?>
Y entonces convertirás la variable $contenido en un array que tendrá almacenados todos los campos, por ejemplo $contenido['email'] tendría almacenado el campo "email" de la fila que se extrajo con la petición SQL
734
Preguntas y respuestas / Re:Duda con lectura de archivos de texto
Febrero 13, 2016, 05:18:22 PM
No. Estás leyendo mal el archivo puesto que estás usando la función file_text_readln() incorrectamente. Para hacer lo que quieres habría que hacerlo así:
[gml]
f = file_text_open_read(working_directory + "\savedata.txt");
var str, n = 0;
while(!file_text_eof(f))
{
str[n] = file_text_read_string(f);
file_text_readln(f);
n++;
}
[/gml]
[gml]
f = file_text_open_read(working_directory + "\savedata.txt");
var str, n = 0;
while(!file_text_eof(f))
{
str[n] = file_text_read_string(f);
file_text_readln(f);
n++;
}
[/gml]
735
Preguntas y respuestas / Re:Dudas con animación de sprites (detener, retroceder, adelantar, etc)
Febrero 13, 2016, 04:38:08 AM
Si lo que deseas es hacer una barra de vida que aumente o disminuya en relación a una variable que indique la "vida" del personaje no necesitas (ni deberías :v) usar tantas subimágenes distintas. Es más, ni siquiera necesitas usar un sprite (eso ya depende de tí :v). Te dejo un pequeño ejemplo con sprites:
1)- Tenemos un simple sprite de rectángulo de 224*32
2)- En el evento <draw> de un controlador cualquiera:
[gml]
draw_sprite_stretched(sprite0,0,x,y,(vida*224)/100,32);
[/gml]
Donde sprite0 es el índice del sprite que vas a dibujar, vida es la variable que contiene la vida, 224 es el anchor del sprite, y 32 es el largor del mismo... Por lo demás, no cambies nada xD
1)- Tenemos un simple sprite de rectángulo de 224*32
2)- En el evento <draw> de un controlador cualquiera:
[gml]
draw_sprite_stretched(sprite0,0,x,y,(vida*224)/100,32);
[/gml]
Donde sprite0 es el índice del sprite que vas a dibujar, vida es la variable que contiene la vida, 224 es el anchor del sprite, y 32 es el largor del mismo... Por lo demás, no cambies nada xD