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.

Temas - _-Caleb-_

1
Buenas tardes,

A ver si alguien me echa un cable.

Quiero leer líneas concretas de un archivo de texto plano para mostrar información en pantalla, creo que la función que debería usar es file_text_readln() pero no me termino de aclarar, a ver, esto está tremendamente mal, no?

//Ejemplo de Gamemaker Studio
var num = 0;
// Se declaran las variables
file = file_text_open_read(working_directory + "\savedata.txt");
while (!file_text_eof(file))
// se abre el archivoyse lee hasta el final
    {
    str[num++] = file_text_readln(file);
    }
// Se crea una variable str[X] por línea ¿No?
file_text_close(file);


Pero luego para mostrar las líneas cómo lo haría? Porque es ahí donde me pierdo.

Eso es lo que me lía

Saludos!
2
Buenas, mientras espero que alguien responda mi otra pregunta hago esta, que no tiene nada que ver....

Tengo esto en el step de mis NPC:

if collision_circle(x, y, 120, [b]all[/b], true, true)
{
switch (rutina)
...


quiero cambiar el ALL por objetos determinados, lo ideal sería que sólo fuera con los de su collision group pero no he encontrado cómo hacerlo con código, si no, los sólidos o algo pero no sé qué función usar para esto... así que si alguien me indica qué función usar pues sería muy de agradecer :-)

¡Saludos!
3
Buenas.

Otra pregunta, esto me está costando un poquito, quizás por mi ignorancia a la hora de usar físicas.

Tengo varios scripts preparados para que se ejecuten cuando las naves NPC estén a X de, por ejemplo, los asteroides. Para que les disparen y tal.

Vale, si no usara el motor de físicas sería bastante sencillo de usar... pero como lo estoy usando, ¿cómo puedo hacer algo similar a move_towards? ¿Hay alguna función para esto?

En este caso queiro que cuando el NPC X llegue cerca de un determinado tipo de asteroide dispare al asteroide.

Lo otro que se me ocurre es que se dispare hacia adelante PERO tampoco sé encarar la nave NPC a los asteroides ya que salen en ángulos y velocidades random (Al igual que los asteroides) :)

En fin, gracias por la ayuda :)

¡Saludos!

4
¡Buenas!

Tengo una duda, la cosa es que mi proyecto tiene sólo una room, los "niveles" se generan mediante archivos ini, mi problema es el siguiente, cuando salgo de la room por los lados se cambia la variable global que tengo para saber qué nivel toca cargar y reinicia la room con los nuevos datos.

El "problema" es que aunque también guarde los datos de y, en este caso en la salida horizontal, al reiniciarse el jugador se ve raro... yendo a derecha o izquierda y que cada vez que cambia la room vuelva a salir la nave en su posición original...

Por si acaso no me explico bien (que es lo habitual xD) os pongo un vídeo:

https://www.dropbox.com/s/yfegdcnzenxpmk5/dudagmfisica.mp4?dl=0

¿Cómo puedo mantener el empuje y la dirección de la nave? Ya he probado con persistent pero directamente no funciona, o algo hago mal porque no se reinicia.

El código que tengo es el siguiente, al pasar de, por ejemplo, izquierda a derecha en la fila N. Todo esto en el evento outside_room del player...

if (x >= 12001 )

{
switch (SistemaActual)
{
//Comprueba la variable, le añade la siguiente, escribe los datos de la posición Y y carga el jugador en el X50
case "N01": SistemaActual = "N02"; ini_open("pilot.ini"); ini_write_string("1", "0", SistemaActual); ini_write_real("1", "3", y); ini_write_real("1", "2", 50); break;
case "N02": SistemaActual = "N03"; ini_open("pilot.ini"); ini_write_string("1", "0", SistemaActual); ini_write_real("1", "3", y); ini_write_real("1", "2", 50); break;
case "N03": SistemaActual = "N04"; ini_open("pilot.ini"); ini_write_string("1", "0", SistemaActual); ini_write_real("1", "3", y); ini_write_real("1", "2", 50); break;
case "N04": SistemaActual = "N05"; ini_open("pilot.ini"); ini_write_string("1", "0", SistemaActual); ini_write_real("1", "3", y); ini_write_real("1", "2", 50); break;
case "N05": SistemaActual = "N06"; ini_open("pilot.ini"); ini_write_string("1", "0", SistemaActual); ini_write_real("1", "3", y); ini_write_real("1", "2", 50); break;
case "N06": SistemaActual = "N07"; ini_open("pilot.ini"); ini_write_string("1", "0", SistemaActual); ini_write_real("1", "3", y); ini_write_real("1", "2", 50); break;
case "N07": SistemaActual = "N08"; ini_open("pilot.ini"); ini_write_string("1", "0", SistemaActual); ini_write_real("1", "3", y); ini_write_real("1", "2", 50); break;
case "N08": SistemaActual = "N09"; ini_open("pilot.ini"); ini_write_string("1", "0", SistemaActual); ini_write_real("1", "3", y); ini_write_real("1", "2", 50); break;
case "N09": SistemaActual = "N10"; ini_open("pilot.ini"); ini_write_string("1", "0", SistemaActual); ini_write_real("1", "3", y); ini_write_real("1", "2", 50); break;
case "N10": SistemaActual = "N01"; ini_open("pilot.ini"); ini_write_string("1", "0", SistemaActual); ini_write_real("1", "3", y); ini_write_real("1", "2", 25); break;
ini_close()
}
//Reinicia el room y ejecuta el script que lee el archivo ini que crea los elementos del "nivel"
room_restart();
script_execute(sys_generator)
}


¿Alguna sugerencia al respecto? A ver si podéis ayudarme y así nos ahorramos que abra otro nuevo tema cuando empiece con las filas verticales :P

¡Saludos!

EDITO: Supongo que tendré que guardar dirección y empuje en variables, el problema es que no sé qué funciones usar para esto :S

EDITO 2: Me autorespondo, es phy_rotation, si es que ha sido postear el mensaje y dar con la solución :)
5
Preguntas y respuestas / Problema con ruta de archivos INI
Noviembre 07, 2014, 06:33:58 AM
Buenas, tengo un "problema" con los archivos ini, la cosa es que tengo un archivo de guardado llamado pilot.ini, a la hora de leerlo, lo lee de la carpeta del juego pero a la hora de escribirl con ini_read_real lo hace en C:\Users\XXXXX\AppData\Local\Galactic_Trader

mmmm he probado con program_directory sin éxito

Este es el código que uso para ambas cosas:

Lectura: (Cuando se carga el objeto encargado de cargar los datos de la cantidad de mienral que hay en las bodegas de carga)
ini_open("pilot.ini");

plati = ini_read_real("2","3a", 0)
oro = ini_read_real("2","3b", 0)
plata = ini_read_real("2","3c", 0)
metal = ini_read_real("2","3d", 0)
agua = ini_read_real("2","3e", 0)
ini_close();


Escritura: (En el evento colisión de cada mineral)
ini_open("pilot.ini");
ini_write_real("2","3a", plati)
ini_write_real("2","3b", oro)
ini_write_real("2","3c", plata)
ini_write_real("2","3d", metal)
ini_write_real("2","3e", agua)
ini_close();


¿Qué hago mal?

Saludos!
6
Preguntas y respuestas / Crear instancias usando variables
Noviembre 03, 2014, 06:20:52 AM
Buenas.

Aquí vuelvo con las dudas, en este caso estoy intentando "cacharrear" en un juego de naves, la cosa es que sólo tengo un room, el fondo y la idea es que pueda cambiar el contenido mediante archivos INI,(Esto viene dado por una variable global y el lugar por el que salga el jugador del room, si sale por la derecha se eliminan todos los objetos y se carga el mapa que supuestamente estaría a la derecha usando un archivo INI) tengo el número de asteroides de cada sistema, por ejemplo, que funciona bien y la info de cada sistema.

Mi problema viene cuando intento crear los planetas, actualmente tengo 8 clases de planetas diferentes y me gustaría crearlos desde una variable usando el archivo INI.

Para explicarme mejor, este es el código de generación del primero, por ejemplo:

globalvar p1n;
p1 = ini_read_string("Planetas", "p1tipo", "z")
p1n = ini_read_string("Planetas", "p1nombre", "null")

primerplaneta = "obj_Planeta" + p1
instance_create(Player.x, Player.y, primerplaneta)


Los objetos de los planetas se llaman:
obj_Planeta_a
obj_Planeta_b
obj_Planeta_c...

Imagino que véis la idea, la cosa es que me devuelve este mensaje de error siempre, no sé, ¿Qué hago mal? Ya me imagino que es que no puedo crear objetos usando una variable, al menos de este modo, así que... ¿A álguien se le ocurre cómo hacerlo?

Citar___________________________________________
############################################################################################
ERROR in
action number 1
of <Unknown Event>
for object creador_asteroides:

instance_create( ) error: Illegal type
at gml_Script_sys_generator (line 51) - instance_create(Player.x, Player.y, primerplaneta)
############################################################################################

Saludos!
7
Buenas.

Estoy haciendo un juego de naves PvP, de naves con físicas (Al estilo Asterois) (Usando el motor de físicas de GMS) y tengo un problema con los disparos, no sé cómo hacer que disparen, por lo pronto rotan a la vez que la nave, ya sé que con las físicas activadas el movimiento normal no funciona en el step, así que si alguien es tan amable de comentarme qué función usar para hacer que las balas avancen en el ángulo actual de la nave estaría MUY agradecido.

Aunque creo que usando physics_apply_impulse se podría pero aún así sigo sin saber cómo hacer que dispare exactamente en el ángulo actual de la nave. Llevo varias horas planificando el proyecto sobre el papel e implementando cosas, ya veréis como luego es una chorrada.... xD

Muchas gracias.

EDITO: Por dar más datos, en la pulsaciónd e Espacio de la nave tengo un code con lo siguiente:

disparo = instance_create (x, y,bala);
with (disparo){
phy_rotation = other.phy_rotation;
}


Que es loque gira la bala, ahora me falta saber cómo hacer que avance :D

¡Saludos!
8
¡Buenas!

Estoy intentando hacer un reproductor para un podcast en el que estoy empezando a trabajar junto a algunos amigos, pero Google Play no ofrece las mismas "facilidades" para subir un podcast que iTunes así que he pensado en hacer una aplicación para hacerlo fácilmente accesible.

No lo tengo muy claro aún pero la idea sería usar un archivo INI o de texto plano como "guía" para la lista de archivos necesarios:

- El número de podcast
- La url de la imagen de portada
- La pequeña descripción de texto
- La url del archivo de audio.

Esto se ejecutaría en el arranque del programa, si GMS no tiene limitaciones al respecto. Así que mi pregunta es:

¿Puedo hacer algo así desde GMS con los http_get y los htt_get_file? ¿Puedo reproducir el archivo de audio en streaming?

Eso es, muchas gracias de antemano.

Saludos.
9
Buenas.

Estoy con un pequeño proyectillo y tengo problemas con las colisiones.

son bloques que caen y rebotan en el suelo y entre si, cuando rebotan en el suelo no tengo problemas, cuando rebotan entre si, a veces se quedan parados un momento, uso los eventos de D&D para el tema pero me imagino que debería usar algo como esto:

http://docs.yoyogames.com/source/dadiospice/002_reference/movement%20and%20collisions/collisions/collision_rectangle.html

Pero no me queda claro su uso, ¿Álguien puede ayudarme a entender esta función o indicarme si no es la que debo usar?

¡Saludos!
10
Buenas, veo que el subforo de preguntas y respuestas está lleno de cosas repetidas, con lo que se podría crear un subforo con algunos temas solucionados, por ejemplo:

Puntuaciones, cómo crear un archivo INI y trabajar con el (Cosa que ya hizo ocarina en su día) y cuando alguien entre y pregunte, que se le envíe a ese hilo y se cierre el que ha abierto, ¿No es más fácil poder tener así la sección medio ordenada sin tener uno o dos temas que pregunte por las puntuaciones en cada página?

Luego a esos hilos se le pueden asignar una serie de "situaciones hipotéticas" donde ser utilizadas.

Por ejemplo, volviendo al tema de los ini, valen tanto para la puntuación, como para las opciones, como para una localización del juego en otros idiomas, para el dinero del player, para el número de vidas, para el número de enemigos por nivel, para el número de enemigos derrotados, para guardar o cargar la partida, para establecer una cuenta atrás o un tiempo límite, etc.

Se pueden añadir estos "tags" en el hilo y así saldrían rápidamente en el buscador.

¿Qué opina el staff sobre esto? Creo que no es mala idea :)

Yo, dentro de mis limitaciones de conocimiento sobre GML, podría escribir algo y me ofrezco como voluntario para añadir algunas cosillas básicas. :)

¡Saludos!
11
Buenas, la verdad es que desde ayer me estoy peleando con esto y ya no sé que he hecho mal.

Todo esto en el step del personaje, en el create está radio declarada.

distancia_x = mouse_x - N4_Player.x;
distancia_y = mouse_y - N4_Player.y;
distancia = sqrt ( distancia_x*distancia_x  + distancia_y*distancia_y );

if (radio < distancia)
    {
anguloDelRatonRespectoAlPlayer = arctan2(distancia_y,distancia_x);
anguloDelRatonRespectoAlPlayer = radtodeg(anguloDelRatonRespectoAlPlayer);

if (anguloDelRatonRespectoAlPlayer > 22.5)&&(anguloDelRatonRespectoAlPlayer<=67.5) sprite_index = N4_diagonal_abajo_izq; //bueno
if (anguloDelRatonRespectoAlPlayer > 67.5)&&(anguloDelRatonRespectoAlPlayer<=112.5) sprite_index = N4_Jugador_Abajo; // bueno
if (anguloDelRatonRespectoAlPlayer > 112.5)&&(anguloDelRatonRespectoAlPlayer<=157.5) sprite_index = N4_diagonal_abajo_der; // bueno
if (anguloDelRatonRespectoAlPlayer > 157.5)&&(anguloDelRatonRespectoAlPlayer<=202.5) sprite_index = N4_Jugador_Izq; //Bueno
if (anguloDelRatonRespectoAlPlayer > 202.5)&&(anguloDelRatonRespectoAlPlayer<=247.5) sprite_index =  N4_diagonal_arriba_der;
if (anguloDelRatonRespectoAlPlayer > 247.5)&&(anguloDelRatonRespectoAlPlayer<=292.5) sprite_index =  N4_Jugador_Arriba;
if (anguloDelRatonRespectoAlPlayer > 292.5)&&(anguloDelRatonRespectoAlPlayer<=337.5) sprite_index = N4_diagonal_arriba_izq;
if (anguloDelRatonRespectoAlPlayer < 22.4)||(anguloDelRatonRespectoAlPlayer>=337.5) sprite_index = N4_Jugador;
    }


Funciona bien si el ratón está por debajo del player, pero por encima ya no funciona... ¿Qué estoy haciendo mal?

¡Saludos!
12
Hola.

Para mi juego, en uno de los niveles (en varios, de hecho) he creado un minimapa usando views y mi pregunta es si puedo deshabilitar un background en concreto de una view en concreto:

He probado esto:

if(view_current = 0)
    {
    background_visible[0] = true;
    }


Pero obviamente lo que hace es que lo pone visible y se muestra en ambos...

También he probado cargarlo en el editor de rooms y hacer el if a la inversa y tampoco funciona así que...

¿Qué estoy haciendo mal?  :-[

¡Saludos!
13
Juegos en desarrollo / Space Cadet - Windows/Linux -
Abril 04, 2014, 05:11:27 PM



Otro

GM: Studio

En el año 3308 la humanidad alcanzó las estrellas. La Luna, Titán y Marte fueron colonizados. Cada colonia dispone de un único piloto de defensa que proteje a los planetas y estaciones orbitales de asteroides en rumbo de colisión.

Cada uno de estos pilotos es conocido por un indicativo unico:

Cadete del Espacio.





-


Tráiler

Space Cadet es un juego inspirado en la paleta de la GameBoy Clásica, con diferentes tipos de niveles de corte arcade, en esta demo podréis jugar al primer nivel de naves y al primer runner.

El juego también está disponible en Español y en Inglés. (Al menos todo lo que engloba esta demo.)

Actualmente el desarrollo está en fase alpha y la demo comprende los dos primeros niveles del mismo. Agradecería todo el feedback posible porque también estoy a la espera de la aprobación de Desura y todos los comentarios que ayuden a mejorar el juego serán de vital importancia.

Y si, es difícil  ;)

¡Saludos!

14
Buenas.

Seguramente sea una chorrada pero llevo 2 días intentándolo sin ningún resultado positivo:

La cosa es que tengo a mi player, que al pulsar espacio activa un jetpack y baja salud, hasta ahí bien.

La cosa es que el jetpack está animado y si uso el evento keyboard aunque añada el image_index o el change sprite no se anima y si uso el keyboard_press si se anima, pero no baja la salud por aquello de necesitar una pulsación cada vez...

¿Qué puedo hacer para que se anime el sprite?

¡Saludos!
15
Buenas.

Se me ha ocurrido la idea de crear una cuenta de twitter y que al finalizar la partida de mi juego se auto-postee en esa cuenta el user y el score..

Tipo "Tal ha conseguido "tantos puntos" ("Tal nivel")

Se me ha ocurrido guardar el user/pass de la cuenta y el nombre del jugador en variables y luego postearlo de alguna manera automáticamente...

¿Es esto posible de alguna manera?

¡Saludos!
16
Buenas.

En un nivel los enemigos deben seguir al jugador y tal y esto lo hacen bien, el problema es el bounce, ya que cuando colisionan con algún objeto sólido más o menos grande se ponen ahí a rebotar "infinitamente" hasta puedan superar el obstáculo...

¿Hay alguna manera de hacer esto de una forma menos "cochambrosa"?

Saludos y gracias gmakeros :)
17
Preguntas y respuestas / Problema con sprite_add
Marzo 06, 2014, 09:33:06 AM
Buenas,

Estoy intentando cargar sprites externos para mi juego y no va...

Tengo esto en el create del jugador:

var n1_nave = sprite_add("Graphics/Level01/l1_player.png",16,0,0,16,16);

show_message(n1_nave);
image_index = n1_nave;


He puesto un show_message para que me muestre la variable y me muestra -1. Debería (creo) mostrar la ruta completa del sprite, no?

El nivel se carga pero no tengo sprite...

¿Qué puede ocurrir? :S

Gracias y Saludos.
18
Buenas.

A ver, quiero que mi juego tenga una carpeta \Sounds\ donde poner los sonidos y la música, para que al descomprimirlo/instalarlo no estén todos los archivos de sonido en el directorio raiz de la instalación.

La cosa es la siguiente:

He creado una carpeta \Music en mi directorio de trabajo (Donde tengo el proyecto)

La cosa es que no sé cómo cargar esto:

Creo una variable al iniciar el room tal que así: (En el creation Code, no sé por qué va aquí, lo ví en un tuto)

globalvar musicanivel1;
musicanivel1 = sound_add(working_directory + "\Music\L1_Musica.mp3",0,true);


Y en el create del personaje (que se crea con el room, tengo lo siguiente)

audio_play_sound(musicanivel1,10,true);

Y sonar suena, pero me suena otra canción... y si, he comprobado que el archivo sea el que yo quiera.

Entonces, ¿Cuál sería la manera (Correcta) de cargar archivos de música externos?

Lo tengo añadido en Included Files también, tanto el archivo como el directorio (Group)

¡Saludos!

EDITO: Mi primera idea era usar zip_unzip pero si intento usarlo el juego no arranca...

Citar
___________________________________________
Error on load
Unable to find function zip_unzip
19
Preguntas y respuestas / Cómo sería esto en código?
Febrero 28, 2014, 07:19:40 PM
Vale, hoy estoy saturadísimo de GameMaker, disculpadme  :-[

A ver, la cosa es que tengo esto, lo del archivo adjunto, y quisiera crear todo el tema por código usando el evento step para discriminar si el evento es keyboard o keypress (Auto fire o no), la cosa es que no sé cómo leches he intentado hacerlo que no me arranca el juego o me peta porque el if que creo está mal formado...

¿Álguien me echa una mano?

Saludos, gracias y os juro que es la última pregunta de la semana.
20
Hola.

A ver, tengo un mapa con una view activada, que funciona bien, lo que me gustaría es poner enemigos estáticos a lo largo del mapa y que al alcanzar la vista de cámara empezaran a moverse...

Tengo un enemigo y en el event create tengo un start moving in a direction en 0 y detenido.

Luego tengo un evento Boundary View 0 y ahí tengo que empiece a moverse

La cosa es que se mueven antes de que llegue al view.....

Para más info:

el nivel tiene 9000 * 240 y en el view 0 (Que es el que sigue al jugador) tengo estos parámetros:

View in Room:
X0, Y0, W320, H240

Port on Screen:
X0, Y0, W320, H240

Object Following: Mi Jugador
Hbor: 160
VBor: 120
Hsp -1
VSp -1

¿Álguien sabe qué hago mal o qué me falta? Mientras tanto voy a mirar las referencias de Views en la ayuda, a ver si encuentro algo.

¡Saludos!