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

151
Estás usando incorrectamente la función file_text_open_read. La id que identifica el archivo abierto no es su ruta, es el valor que entrega file_text_open_read. Así se usa:

file = working_directory+"sub.txt";
f=file_text_open_read(file);
lines = 0;
while !file_text_eof(f)
{
    lines += 1;
    file_text_readln(f);
}
file_text_close(f);
152
Preguntas y respuestas / Re:Menu de revivir
Septiembre 12, 2015, 09:28:37 PM
Hola Azul G. ¿Podrías indicar si usas drag&drop o GML?
153
El "comando" free no existe.

Para destruir una superficie se utiliza la función surface_free.

Si con "borrar" te refieres a eliminar lo que había en ella o "dejarla en blanco", usa draw_clear o draw_clear_alpha. Por ejemplo, para dejarla con fondo blanco:

surface=surface_create(w,h);
surface_set_target(surface);
draw_clear(c_white);
surface_reset_target();
154
Prueba esto en el objetoC:

var contacto;
contacto=false;
with objetoA
    {
    if place_meeting(x,y,objetoB)
        contacto=true;
    }


La variable contacto indicará si hay colisión o no.
155
Intenta agregar la carpeta donde está como una exclusión, en el menú Opciones/General/Exclusiones.
156
Detecta cuántos pixeles se ha arrastrado el dedo horizontalmente y en base a eso mueve la tira de imágenes y cambia la escala de sus sprites. Para saber cuántos pixeles se arrastró el dedo puedes hacer, por ejemplo, esto:

Evento create:
arrastre=false;

Evento mouse left press:
mx=mouse_x;
arrastre=true;


Evento mouse left release:
arrastre=false;

Evento step:
if arrastre
    dx=mouse_x-mx;


La variable dx guardará cuántos pixeles se movió el dedo (negativa si fue hacia la izquierda, positiva a la derecha).
157
Responderte es difícil sin saber cómo organizas la información sobre cada área. Partiendo de cero, lo que yo haría sería lo siguiente:

1-Guardar en un array las coordenadas de la esquina superior izquierda y la esquina inferior derecha de cada área donde existe al menos una bola. El array tendrá 4 columnas y tantas filas como áreas con bolas existan. Al comienzo del juego habrá, obviamente, una sola fila. Guardar en una variable el número de filas del array para saber en todo momento cuántas áreas existen.

2-Al crear un intento de pared, identificar la fila del array asociada al área donde se hizo click. Esto se puede lograr comparando las coordenadas del mouse con las coordenadas de las esquinas de cada área guardadas en el array, mediante un bucle.

3-Cuando el jugador logre exitosamente la construcción de una pared, identificar las coordenadas de los extremos de ésta. Ya que la pared tiene un grosor dado, esas coordenadas serán las de los 4 vértices de la pared. Con esas coordenadas, determinar los límites de las 2 áreas nuevas generadas en las que se ha transformado el área original.

4-Para cada una de esas 2 áreas, determinar si al menos una bola está dentro de esa área. Eso se puede lograr usando la función collision_rectangle. Si en ambas áreas hay bolas, se necesita actualizar las coordenadas del área original para que cubran sólo la primera área y además crear una nueva fila para el array, con los datos de la segunda área; esto hará que el número de áreas aumente en 1. Si en sólo una de las dos áreas existen bolas, sólo se requiere actualizar en el array las coordenadas del área original para que cubra esa nueva área más pequeña; en este caso el número de áreas no aumenta.

5-Para el área del paso 4 que quedó sin bolas (si la hubo), crear una instancia de un objeto que se encargue de "ocultarla" de la vista, dibujando un rectángulo negro sobre ella.
158
Se puede hacer. Lo que yo haría sería crear una página PHP en el servidor que comunique la base de datos con GMS, mientras que GMS se encarga de enviar y recibir datos a/desde la página mediante las funciones asíncronas http. Para ello necesitarías conocimientos de programación en PHP, además de entender el funcionamiento de las funciones asíncronas en GMS. Si ya sabes PHP, será más sencillo entender cómo usar estas funciones. en caso de que no sepas, dejo un link a un buen tutorial que encontré y que me ha ayudado a entender la programación en PHP (yo estoy recién aprendiendo y he realizado algunos experimentos pero por lo que ya sé te puedo decir que se puede hacer lo que quieres).

http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193
159
Preguntas y respuestas / Re:Boton para Salir del Juego
Septiembre 09, 2015, 12:04:25 AM
Cita de: penumbra en Septiembre 08, 2015, 09:38:02 PM
Si se elige "no", entonces al hacer click en ese botón los otros objetos que creaste (el que contiene la pregunta, el botón de "sí", etc) y el propio botón  "no" se destruyen y usas la función room_goto() para ir a la habitación de juego. Creo que no es estrictamente necesario destruír los objetos antes de cambiar de habitación, pero se acostumbra a hacerlo.

Efectivamente, no es necesario destruirlos, a menos que exista código en sus eventos destroy que necesites que se ejecuten. Si simplemente se cambia de room, esas instancias serán destruidas sin ejecutar sus eventos destroy.
160
Preguntas y respuestas / Re:Diferentes tamaños de rooms
Septiembre 08, 2015, 11:59:02 PM
Cita de: carras en Septiembre 08, 2015, 08:38:19 PM
Genia pero para eso debo crear una surface antes verdad?

No, lo que tienes que hacer es cambiar el tamaño de la application surface al comenzar el room. GMS crea automáticamente esa surface, no tienes que crearla tú. En caso de que uses views, deberías hacer algo como esto:

surface_resize(application_surface,view_wview[0],view_hview[0]);
161
Juegos completos / Re:Reblock (Windows y Android)
Septiembre 08, 2015, 04:11:22 AM
Cita de: tu padre en Septiembre 07, 2015, 01:36:18 PM
Me gusto mucho el modo puzzle, te pone a pensar bastantito jeje, llegue hasta el nivel 16, no pudo mas mi cerebro jeje.

Me alegro que te haya gustado, gracias por el comentario  :)
162
Antes de esta sentencia:

if GoogleMobileAds_InterstitialStatus() == "Ready"
{
GoogleMobileAds_ShowInterstitial();
}


coloca esto:

show_message("GoogleMobileAds_InterstitialStatus() entrega un valor de "+string(GoogleMobileAds_InterstitialStatus()));

¿Estás ejecutando la apk instalada en el celular? Si así es y te entrega un número, entonces tienes un problema. Al menos la versión de la extensión que yo tengo entrega "Ready", no "Loaded" ni un número, pero sólo funciona cuando la ejecuto desde un apk instalado.
163
Preguntas y respuestas / Re:Diferentes tamaños de rooms
Septiembre 08, 2015, 01:41:57 AM
Recuerda, sin embargo, que el tamaño de la ventana del juego se ajusta al tamaño del primer room o view así que si quieres usar rooms o views de otros tamaños más adelante, tendrás que cambiar el tamaño de la application surface o todo se verá deformado.
164
Cita de: gameforever en Septiembre 07, 2015, 07:58:55 PM
Ever, segi todos los pasos mencionados en el video, sin embargo al probar la apk me lanza el siguiente error:


FATAL ERROR in
action number1
of Create Event
for object obj_mostrar_interstitial:

DoSet :: Invalid comparison type
at gml_Object_obj_mostrar_interstitial_Create_0
###############################
###############################
######################


que puede estar fallando???

Ese error aparece al hacer una comparación inválida, como por ejemplo ver si un número es igual a un string. Hay una línea en el demo de admob que dice:

if GoogleMobileAds_InterstitialStatus() == "Ready"

Yo tuve problemas al principio con esa extensión ya que las funciones no están documentadas como corresponde y en algunas partes aparece que la función GoogleMobileAds_InterstitialStatus() entrega "Ready" y en otras "Loaded" e incluso a veces me entregaba un número en vez de un string. Revisa qué te está entregando antes de hacer la comparación, por ejemplo usando show_message.
165
El editor de rooms de GMS no se caracteriza por ser amigable a la hora de manipular instancias. Puedes intentar hacer un shift con el botón con forma de flecha verde que apunta a la derecha, en la parte superior del editor, para mover todas las instancias una cierta cantidad. Aparte de eso, creo que es bien poco lo que puedes hacer.