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

31
Preguntas y respuestas / Re:Reloj interno
Octubre 17, 2012, 11:06:35 PM
Gracias por tu respuestas amigo Mgbu,

CitarEse error dice que no existe una tal variable llamada "contadorFrame"
Me parece que pasa porque el evento Draw no está en el objeto_inicio. Porque las variables son locales a un objeto, es decir cuando tenés un objeto auto y un objeto moto, la variable velocidad será independiente entre los dos, entonces en el objeto que tiene el draw que me mostraste no existe una variable contadorFrame, porque esa variable pertenece a objeto_inicio
Eso se arregla escribiendo objeto_inicio.contadorFrame, al agregar objeto_inicio adelante le estás diciendo al juego que querés saber la variable de ese objeto

En verdad los tres eventos están dentro del mismo objeto (que en verdad es un objeto llamado Info que está en la misma room donde se desarrolla el juego).

CitarTambién veo que es Step escribiste mal dos cosas: el combre de la variable y la operación, con =+1 estás haciendo que sea siempre 1, o sea contadorFrame es igual a 1 positivo (+1), ese signo más va adelante del igual, entonces sería "contadorFrame+=1;" "sumarle 1 a contadorFrame"
Corregido, muchas gracias!

CitarY por último a ese evento Draw lo veo bien para ser dibujado, pero si no vas a mostrar los segundos en pantalla podés borrar todo lo que está en Draw, y dejando este código en step:
Código: [Seleccionar]
s = contadorFrame/(room_speed);
Eso guarda los segundos pasados en la variable s
En verdad mi intención no es mostrarlo por pantalla, esto lo hago solamente para verificar que todo está haciendo lo que debe hacer y que mi variable se ejecuta y actualiza en tiempo real. Cuando esté lista ya no será mostrada en pantalla si no que la compararé con un if con el valor pasado por variable.
Gracias.
32
Preguntas y respuestas / Re:Reloj interno
Octubre 17, 2012, 10:15:29 PM
Hola amigo Mgbu,
esto es lo que estoy haciendo pero me da error:

En el Create de un objeto_inicio:
var contadorFrame, s, d;
contadorFrame = 0;


En el Steep del mismo objeto:
contdorFrame =+1;

Y en un evento Draw:
//declaro la variable que será mi reloj interno
var relojInterno;
//s=segundos
s = contadorFrame/(room_speed);

if s < 0.01 {d = "0.00"}
if s!= 0{d = frac(s)}
s = floor(s)

if s < 10{s = "0"+string(s)}

relojInterno = string(s)+":"+string_char_at(string(d),3)+string_char_at(string(d),4)


draw_text(x+10,y-8,relojInterno) //Dibujamos relojInterno, que es la variable resultante del tiempo


pero me da el siguiente error
Citar___________________________________________
ERROR in
action number 4
of Draw Event
for object Info:

Error in code at line 4:
   s = contadorFrame/(room_speed);
       ^
at position 6: Unknown variable contadorFrame
33
Yo no es que sea muy ducho en la materia, pero por la poca experiencia que tengo...
o bien los buscas por si están ya hecho (imagino que debe de haber mucho en diferentes foros), o bien los haces transformando imágenes ya hecha (por ejemplo sacándolas de Google, ojo cuidado con el copyright) con un editor gráfico (Gimp, Photoshop, etc...), o bien te embarcas en la encrucijada de hacerlos tú mismo.
Suerte :D
34
Preguntas y respuestas / Reloj interno (SOLUCIONADO)
Octubre 17, 2012, 09:19:20 PM
Hola a todos,
necesito iniciar en una room (la de juego) una variable que haga las funciones de reloj.
Con este variable pretendo ver cuantos segundos han pasado desde que comenzó el juego y dependiendo de el momento en el que esté, compararlo con diferentes valores de variables para que sucedan diferentes cosas.

He buscado en el foro y he visto algo así como un cronómetro que depende de los frames de la room, pero no soy capaz de adaptarlo a mi código.
35
Preguntas y respuestas / Re:Variables creadas en Script
Octubre 09, 2012, 08:30:37 AM
Muchas gracias amigo ferhand,
siento el retraso en la respuesta pero he estado "desconectado" :D
Voy a echarle un vistazo a lo que me pasas y si tengo dudas te las comento.
Gracias de nuevo.
36
Preguntas y respuestas / Re:Variables creadas en Script
Octubre 03, 2012, 07:47:03 PM
CitarEn la función que escribes ya viene el rango de alcance de la variable observa:
   
   variable_local_array2_set ();
   variable_global_array2_set();

  El primer argumento es el nombre solamente, el alcance está en la función en sí.

Claro! no había reparado en ese detalle, gracias Ferhand!

EDITADO: Se me genera otra duda relacionada con ese código:
Si en el script el nombre de mi array depende del valor de otro array local,


variable_global_array2_set("tb_"+string(var_tablas[i,1]),0,0,i);


¿cómo puedo llamar al array resultante si no se el nombre completo (ya que está oculto en string(var_tablas[i,1]) ?
Imagino que con declarar var_tablas como global se solucionará, pero supongo que no será bueno tener tantas variables globales rodando por el juego ¿no?
37
Preguntas y respuestas / Re:Variables creadas en Script
Octubre 03, 2012, 08:41:32 AM
Y ese global. ¿puede ser declarado como string dentro de una función?:

variable_local_array2_set("global.tb_"+string(var_tablas[i,1]),0,0,i);
38
Hola a todos,
mi pregunta es la siguiente:

Tengo un script donde cargo una serie de información en un array, y este array es creado dentro del código del script.
Este script lo llamo desde un objeto en un room que no es el juego (la típica pantalla de inicio). ¿El array creado está disponible durante el juego? es decir, ¿puedo durante el juego acceder a ese array para sacar información de él aunque se haya llamado en una room diferente?
Ejemplo:
Room_inicio:
      Objeto_inicio: script_crear (fichero.txt); (este script carga toda la información en mi_array [i,j])
Room_pantalla1:
      Objeto_enemigo: color = mi_array [0,3];
39
Al fin lo tengo, creo que entiendo más o menos el código y introduciendo  show_message(); en cada parte del código más o menos se como opera.
El código para pintar el array no me funciona con draw_text(), pero si con show_message().
Sigo teniendo algunas dudas respecto al código, pero creo que el objetivo de la pregunta está más que cumplido, así que se podría dar por SOLUCIONADO y pasos mis demás dudas a preguntas nuevas más concretas.
PD. Muchísimas gracias a Mgbu y Ferhand os acabáis de ganar a un amigo :D
40
Bueno definitivamente el script de Mgbu me funciona (el que me sugiere en la última respuesta de la primera página). He añadido un antes de que termine el script un mensaje emergente para ver si llega la ejecución hasta el final... y lo hace.
    show_message("Cargado diseño...??");

Pero me interesaría saber si realmente está los datos que he cargado (sobre todo para intentar comprender mejor el código), así que intento pintarlo en un room antes de que el juego comience:
    var columna, fila;
   
    for (columna = 1; columna <real(var_tablas[columna,3])+1;columna +=1){
        for (fila = 1; fila <real(var_tablas[fila,2])+1;fila+=1){
            draw_text(x+(columna-1)*64, y+(fila-1)*16, string (tb_Diseno_1[columna, fila]));
        }
    }

Imagino que no debe de ser la manera ya que me da un error
41
Amigo ferhand, ahí radicaba mi error... abrir el fichero "scr_cargar_old_0.1.gml" con un editor y copie y pegué en un nuevo script. Ahora que lo he hecho importando ha funcionado perfectamente, o al menos eso creo ya que aún no he podido verificar que recibe los valores de la misma manera que son mandados.
De hecho es lo que voy a pasar a verificar intentando sacarlos por pantalla.
Muchas gracias de nuevo y... no hace falta que te disculpes por nada, de hecho me estás ayudando mucho.
:D
EDITADO: Siento rectificarme, pero sigue dando error:


___________________________________________
ERROR in
action number 1
of Create Event
for object obj_inicio:

In script scr_cargar:
Error in code at line 59:

                        ^
at position 23: Cannot compare arguments.
42
Hola amigos, aquí vuelvo a la carga...:D
he mirado los dos script que me habéis dejado y creo que son más o menos lo mismo.
Al hacer la primera prueba para ver si me funcionaba me he topado con el siguiente mensaje de error:

Citar___________________________________________
ERROR in
action number 1
of Other Event: Game Start
for object Info:

In script scr_guardar2:
Error in code at line 60:
           for(i=1; i <= variable_global_array2_get(string(argument0),0,0); i+=1)  // Para cada tabla...
                         ^
at position 24: Cannot compare arguments.
A ver si doy con la tecla...
¿podrías ser porque la variable array2 no está inicializada? aunque creo haber leído que en GML no hace falta inicializar variables no?

EDITO: El que me ha dado error es el facilitado por el compañero ferhand pero he probado el facilitad por Mgbu y ha corrido sin problema.
43
Guau!!!
Me dejáis con la boca abierta... muchas gracias compañeros ferhand y Mgbu por vuestra disponibilidad y rapidez.
Dejadme un tiempo para ver si entiendo el código (a fin de progresar en mi instrucción en GML) que seguro regresaré con alguna duda :D
Gracias de nuevo y buen fin de semana!
44
El código que puse me lo pasó muy amablemente el compañero  Mgbu, aunque creo que a el le dio cierto error.

En cuanto a mi verdor...
Conozco algo sobre programación orientada a objeto (hace tiempo hice un curso), y más o menos intento aplicar parte de la lógica a lo que voy viendo por aquí, aunque no sé la manera correcta de cómo hacer muchas cosas.
Por el momento, me he leído el manual de la comunidad y ahora estoy viendo algunos videotutoriales en youtube que me están ayudando bastante a entender menor.
De hecho, creo que mi juego (la interfaz) está más que lista para lo que necesito. Es sencillo y si es necesario lo iré perfeccionando con el tiempo.
Pero lo que realmente me interesa saber (ya que si no el propósito de hacer el juego pierde el sentido) es poder decirle al juego en cada momento (en segundos o milisegundos) qué es lo que tienen que hacer algunos objetos (como por ejemplo cambiar de color durante 5 segundos, lanzar un ataque en un segundo concreto, etc...) y además de eso (pero esto lo dejo para el futuro) poder almacenar en variables las respuestas del jugador y el momento en el que las hace con el fin de poder escribir un fichero (por ejemplo un .txt) guardando toda esa información.

¿Es muy complicado? :D
45
Muchas gracias por tu atención compañero ferhand.
La verdad es que todo me sigue pareciendo un poco extraño (será porque aun estoy un poco verde), aunque poco a poco empiezo a comprender.

Esto es el script "cargar":
archivo = file_text_open_read("archivo.extensión") //Abrimos el archivo
contenido_archivo = file_text_read_string(archivo) //Guardamos lo que tenía escrito el archivo
file_text_close(archivo) //Cerramos el Archivo




y ¿esto es el de "Guardar"?:
grid = ds_grid_create(0,0) //Creamos una grid en donde guardar todo
show_message(contenido_archivo)
ds_grid_read(grid,contenido_archivo) //Guardamos lo que tenía el archivo en la grid


¿no va todo junto?
Y... si va junto imagino que al script se le pasaría un argument0, que sería una cadena con el nombre del archivo (por ejemplo... "mi_BD.txt"), no?