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

1
hey gracias brunoxzx y JuanD, desarrolle un peque?o script, lo pongo tal vez a alguien tambien le pueda servir:

Script para saber el tama?o de un archivo

[gml]//argument0 = ruta completa del archivo (externo)

//Determina si existe el archivo
if !file_exists(argument0)
{
    show_message
    (
        string("Archivo: ") +
        string(argument0) +
        string(" no existe!")
    )
    exit;
}

//Abre el archivo
game_file = file_bin_open(argument0,0);

//Obtiene el tama?o del archivo
game_size = file_bin_size(game_file);

//Agrega el tama?o y cantidad de archivo a la variable memoria
global.game_memory += game_size;
global.game_files += 1;

//Cierra el archivo
file_bin_close(game_file);

[/gml]

Gracias y Saludos.
2
la diferencia la hacen los detalles:

- en la ruta del modelo a?ade working_directory (si es que el modelo esta dentro de la carpeta del juego)
- las barras diagonales las pusiste invertidas: "/" en ves de "\"
- creo que por d3d te refieres a "gmmod", si ese es el caso necesitas reconvertirlo, recuerda que GM8 solo carga modelos con extension gmmod, desconozco si GM7 carga d3d, puedes cargar otros tipos de modelos pero con ayuda de DLL's.

En el evento create, prueba con esto:

[gml]
pote=d3d_model_create();
d3d_model_load(pote,string(working_directory)+"\data\pote.gmmod");
[/gml]

esto carga un modelo 3d (con extension gmmod) y lo guarda en la variable "pote".

Saludos.
3
Me refiero a un archivo que desde GM y con algun script regrese el valor del tama?o del archivo (y de paso la extension), es que tengo una rutina que durante el juego el usuario puede cargar una imagen externa, pero necesito que la imagen no exceda 64kb y que sea exclusivamente png.

Citar
seleccionas el archivo > clic derecho > propiedades
Hay te aparese...
:-X
4
pues eso, alguien sabe como obtener el tama?o de un archivo png externo al ejecutable en kb?
5
CitarTen en consideraci?n que al incluir el evento DRAW en un objeto este deja de dibujarse a si mismo...
ir?nico, nunca acabe de entender porque Mark lo definio asi, en fin...

CitarHe ah? el detalle. No se me ocurre muy claro c?mo uso el evento DRAW si esta linea debe ser pintada cuando se detiene una alarma precisamente.

las alarmas no se detienen, se ejecutan en tiempos...

El evento Draw es muy similar al evento step,...para profundizar un poco mas este es el orden en como se ejecutan los eventos (seg?n el manual):

Begin step ==> Alarmas ==> Teclado ==> Rat?n ==> Step ==> Colisiones ==> End Step ==> Draw

Los eventos Create, room create, room end etc., se ejecutan cuando son llamados por el sistema.

puedes ejecutar codigo en las alarmas que afecten otros codigos en el evento Draw, como puedes ver en la cadena anterior las alarmas se ejecutan antes que un evento draw, esto es importante ya que aqui puedes definir que y como ejecutar acciones o codigos en Draw, como en el siguiente ejemplo:

En el evento Create de alg?n objeto pones:
[gml]
variable = 0;
[/gml]

En un evento Draw de ese mismo objeto

[gml]
if variable = 1
{
   draw_line(0,24,300,24);
}
[/gml]

este codigo evaluara en cada step si la variable "variable" = 1, y cuando asi sea dibujara la linea y para eso puedes auxiliarte con una alarma:

[gml]
objeto.variable = 1;
[/gml]

ahora solo te quedar?a ejecutar la alarma.

Saludos.
6
lo primero que se me viene a la mente es que la barrita esta siendo afectada por un evento colision con los bloques (cuadros) tal vez eso impide que no puedas moverla libremente..., o tal vez no haz programado bien la forma en que se mueve la barra...

te seria de m?s ayuda si pones el codigo que usas o el orden de acciones (si no usas GML).

Saludos.
7
puedes usar draw_line(); pero recuerda que esto solo funciona en un evento draw y no en alarm, create, step, etc., ademas asegurate de que la instancia que la dibuja sea visible
8
Preguntas y respuestas / Sprites en modo 3d
Septiembre 26, 2010, 04:34:54 AM
Ok, he conseguido con mucho esfuerzo hacer que mi sprite (usandolo como textura) y aplicandolo a una d3d_draw_wall() -esto obviamente en modo 3D- mire siempre a la camara, bien hasta ahora eso me ha servido para objetos estaticos como plantas, arboles, rocas, etc....

Ahora el problema es aplicarlo a elementos (enemigos) que se mueven alrededor de la camara y que cambian de sprite segun la direccion desde donde se les mira...no he encontrado nada de utilidad ni siquiera en yoyo, alguna idea o un script completo de como lograrlo  :-\?

Se que la wall siempre debe mirar a la camara pero el caso es poderle cambiar el sprite segun la direccion en la que se mueve tomando en cuenta la direccion de la camara
9
Preguntas y respuestas / Re: ?Donde aprediste el GML?
Septiembre 19, 2010, 06:58:36 AM
bueno yo parendi de los tutoriales de los desaparecidos Dark Angel y Josepho todas unas eminencias del GM cuando andabamos en los tiempos de version 4 y 5...

si mal no recuerdo Josepho fue el pionero y fundador de la comunidad GM en espa?ol, cuando el decidio retirarse Fenris tomo su puesto (corriganme si me equivoco).

Tambien me vienen a la mente otros como Odin, NinjasuperK, Makerhack, Uva_r, Soueoueofans aunque ellos pertenecian a la comunidad RPG Maker de la cual tambien fui un adicto.

ah los viejos buenos tiempos :'(
10
prueba este adjunto...

hice algunas modificaciones al object18 y object19.

Saludos.
11
descarge el adjunto

mmm......

puse este "piece of code" al final del evento step

Citar
if collision_line(112,168,240,168,object1,true,true)
{
   speed = 5;
}

cambia el valor de speed a lo que necesites, mira el archivo de ayuda para que verifiques como funciona collision_line()

Edit: te pongo el archivo con el cambio que le hice

Saludos.

12
No es recomendable poner alarmas en un evento step ya que estas se resetean cada step y si lo haces asegurate de que no se reinicien

lo correcto seria

if canshoot = 0
{
   alarm[0] = 1;
   canshoot = 1; //<--- Esta variable impide que la alarma se resete?
}

y al final del codigo de la alarma 0, vuelves a poner

canshoot = 0;

asi puedes volver a disparar en el siguiente loop de animacion.

Algunas veces GM no maneja enteros en el image_index, es decir:

image_index = 11.1

?

image_index = 0.3, etc.

tal vez en tu caso image_index nunca es igual a 12 (12.0) sino a alguna fraccion menor o mayor, para verificar esto corre el juego en debug mode, y verifica las propiedades de tu objeto poniendo especial atencion en "image_index";

Saludos

13
Preguntas y respuestas / Re: Estoy bien si hago esto?
Septiembre 17, 2010, 08:07:15 AM
Citar
...yo quiero hacer algo similar, pero quiero que eso este en otra habitacion...

GM no permite el uso de mas de un room a la vez.

Sin embargo lo que quieres hacer es bastante sencillo y no se necesitan el uso de dos rooms, solo debes crear un objeto que administre el juego como "obj_game" o "obj_control" y que sea este el que maneje las variables y el dibujado del HUD, ponerlo de modo "persistent" asi estara presente en todas las rooms a las que vayas
14
Preguntas y respuestas / Re: como usar sprite add?
Septiembre 15, 2010, 07:37:00 AM
Citar
Ahora, la funci?n por s? sola es inutil, debes asignarla a una variable, algo asi:

global.varspr1=sprite_add("directoriocompleto\nombredelaimagen.extension",imgnumb,removeback,smooth,xorig,yorig)

mmm...tampoco es necesario asignarlo a otra variable (local o global), de manera directa podria ser:

sprite_index = sprite_add("directoriocompleto\nombredelaimagen.extension",imgnumb,removeback,smooth,xorig,yorig);


Citar
...y al apretar derecha camina y quiero que se muestre ese sprite...

un consejo, usalo (sprite_add) en un evento create antes que todo, ya que si lo usas cuando lo necesitas (al presionar derecha como lo indicas en tu pregunta) cada que presiones la flecha se cargara una y otra y otra vez saturando la memoria...

Saludos.
15
Preguntas y respuestas / Re: Estoy bien si hago esto?
Septiembre 15, 2010, 07:33:06 AM
Citarpuse en un objeto global.coin = 0 , y tengo otro que cada vez que mi personaje pilla un moneda puse global.coin  + = 1 entonces haria que cada vez que mi personaje pille una moneda , global.coin aumente uno, ?esta bien esto hasta ahora?

Es correcto, sip.

Citarlo otro : ahora que tengo el objeto con global.coin = 0 , quiero ponerlo en una habitacion (llamemosla x1) entonces puse a mi personaje en otra habitacion con monedas (llamemosla x2). entonces si en la habitacion x2 pillo las monedas que puse, en la habitacion x1 ?cambiaria global.coin aumetnando uno mas?
?esta bien todo lo que dije, me funcionaria

Sip...

Recuerda que al usar una variable con global no importa el cambio de room ya que la variable seguira existiendo con el ?ltimo valor que le asignaste en el room anterior, ademas ten en cuenta no resetear el valor al iniciar el siguiente room (error humano com?n) por ejemplo que pongas global.coin = 0 nuevamente.

Saludos.