Fusion_X escribió:La verdad es que he visto cosas interesante, pero no encuentro nada que enseñe 3D para la ds, alguna manita? Tampoco consigo compilar nada de nada :/
Fusion_X escribió:La verdad es que he visto cosas interesante, pero no encuentro nada que enseñe 3D para la ds, alguna manita? Tampoco consigo compilar nada de nada :/
if (PA_SpriteTouched(0)) PA_PlaySimpleSound(0,nombredelsonido);
kakashi1000 escribió:Ahora bien, mientras mantenga pulsado encima del sprite continúa reproduciéndose desde 0 el sonido una vez tras otra parándose a mitad. Yo lo que quiero es que pulses una vez, suene, y hasta que no vuelvas a pulsar no vuelva a sonar, a ver si me podéis ayudar.
También quería hacer que si tras pulsar por ejemplo el botón A, mientras el sonido suena, si vuelvo a pulsar el mismo botón antes de que acabe la reproducción del sonido concluya, el sonido se vuelva a escuchar desde el principio.
Si no habéis entendido nada lo comprenderé xD.
Alber_h escribió:kakashi1000 escribió:Ahora bien, mientras mantenga pulsado encima del sprite continúa reproduciéndose desde 0 el sonido una vez tras otra parándose a mitad. Yo lo que quiero es que pulses una vez, suene, y hasta que no vuelvas a pulsar no vuelva a sonar, a ver si me podéis ayudar.
También quería hacer que si tras pulsar por ejemplo el botón A, mientras el sonido suena, si vuelvo a pulsar el mismo botón antes de que acabe la reproducción del sonido concluya, el sonido se vuelva a escuchar desde el principio.
Si no habéis entendido nada lo comprenderé xD.
Podrias calcular cuanto dura cada sonido y hacer que al sonar se active una variable durante X segundos, que dure hasta justo antes dejar de sonar el sonido que has ejecutado, para asi conseguir lo que quieres, que mientras esta sonando no se pueda volver a pulsar pero si justo antes de que acabe.
Salu2!
kakashi1000 escribió:Alber_h escribió:kakashi1000 escribió:Ahora bien, mientras mantenga pulsado encima del sprite continúa reproduciéndose desde 0 el sonido una vez tras otra parándose a mitad. Yo lo que quiero es que pulses una vez, suene, y hasta que no vuelvas a pulsar no vuelva a sonar, a ver si me podéis ayudar.
También quería hacer que si tras pulsar por ejemplo el botón A, mientras el sonido suena, si vuelvo a pulsar el mismo botón antes de que acabe la reproducción del sonido concluya, el sonido se vuelva a escuchar desde el principio.
Si no habéis entendido nada lo comprenderé xD.
Podrias calcular cuanto dura cada sonido y hacer que al sonar se active una variable durante X segundos, que dure hasta justo antes dejar de sonar el sonido que has ejecutado, para asi conseguir lo que quieres, que mientras esta sonando no se pueda volver a pulsar pero si justo antes de que acabe.
Salu2!
La verdad es que con lo que sé de programación no estoy capacitado para hacer algo así. No tengo prácticamente ni idea, sólo sé lo básico, así que ya si hablamos de variables no entiendo nada. De todas formas, muchas gracias, tendré que ponerme en serio a aprender algo más en serio programación, y no a lanzarme a las Palib sin saber nada xD.
nazareth escribió:Judelco, te as fijado k puedes andar por encima de todo, no? Por certo, se espera nova beta, del zelda y de lo k kerais
judelco escribió:nazareth escribió:Judelco, te as fijado k puedes andar por encima de todo, no? Por certo, se espera nova beta, del zelda y de lo k kerais
Joder.... para no fijarse en eso......
Bueno, al menos digo que ya tengo algo parecido a colisiones, pero hasta que no lo tenga en condiciones NO sacaré otro binario con el que se pueda moverse.
Además si recordais, dije que hasta esta mañana, he estado ESTUDIANDO, por lo que no he podido hacer nada.
Así que esta tarde me puse de nuevo (aunque no mucho, me dais demasiado la vara por el msn ¬¬) y me voy a concentrar ahora en el visor de sprites que aunque parezca una chorrada, lo que hago es crear el sistema de animaciones, para luego portarlo al juego en si, y así link se moverá igualito que en el juego de verdad...
void func_pausa(float segundos)
{
for(segundos *= 60; segundos > 0; segundos --)
PA_WaitForVBL();
}
Alber_h escribió:Está muy bien eso del visor que te has hecho, justamente por lo que dices, cuando lo tengas terminado solo tienes que portar el codigo al juego en si y es mucho mas facil de implementar que ir probandolo todo en el juego directamente.
judelco escribió:Alber_h escribió:Está muy bien eso del visor que te has hecho, justamente por lo que dices, cuando lo tengas terminado solo tienes que portar el codigo al juego en si y es mucho mas facil de implementar que ir probandolo todo en el juego directamente.
Claro, no te puedes ni imaginar el LIO y el estrés que causa el crear nuevo código en un juego e ir probando.... con los errores que te van saliendo y tal ,te vuelves loco.
Por eso es mejor crear la base primero (como ya la tengo), luego ir metiendole y creando las cosas por separado (como estoy haciendo, con el "visor" que mas que nada es el código de la animación y el comportamiento de los sprites de los personajes (de TODOS, lo que pasa es que aún no le he metido apenas nada....)
Pero quiero que ese visor contenga todos los sprites de Link, zelda, los enemigos, las acciones (tirar de , empujar, atakar con la espada, TODO)
Ya vereis cuando acabe.... será dificilillo, pero lo conseguiré....
Alber_h escribió:Claro que si tio, echale ganas que seguro que consigues algo molón. Y si necesitas ayuda con cualquier cosa no dudes en decirlo .
Salu2!
judelco escribió:Alber_h escribió:Claro que si tio, echale ganas que seguro que consigues algo molón. Y si necesitas ayuda con cualquier cosa no dudes en decirlo .
Salu2!
Si, de momento estoy creando de nuevo las imagenes, porque la he liado.... creé las animaciones en sprites de 32x32 y fué un error, porque hay posiciones de link (cuando está con la espada desnvainada) que son más largos que 32 pixels, por lo que aohra estoy recostruyendo todo a 64x64 para que me ocupe POR FUERZA, así ya no tendré que liarla más.... jejejejejje
Rigle escribió:para cuando lo tendrás ?
judelco escribió:Rigle escribió:para cuando lo tendrás ?
Mmmmm...... pues ya lo he solucionado... la verdad es que me he matado durante horas y horas escribiendo el código de nuevo de mil formas distintas para ver si lo conseguía..... y listo.
He conseguido que me OBEDEZCA a las diagonales tal y como si fuera un zelda (no es perfecto perfecto, pero por mi lo veo GENIAL).
IMAGEN:
DESCARGAR:visorsprites.rar
A ver que le hago ahora.....
Rigle escribió:judelco escribió:Rigle escribió:para cuando lo tendrás ?
Mmmmm...... pues ya lo he solucionado... la verdad es que me he matado durante horas y horas escribiendo el código de nuevo de mil formas distintas para ver si lo conseguía..... y listo.
He conseguido que me OBEDEZCA a las diagonales tal y como si fuera un zelda (no es perfecto perfecto, pero por mi lo veo GENIAL).
IMAGEN:
DESCARGAR:visorsprites.rar
A ver que le hago ahora.....
dios, k bien te ha quedado
a ver si le implementas leer sprites desde FAT . Ya se que costaría :S
Alber_h escribió:Y eso para que? Es mas, segun tengo entendido, no se podria hacer ya que cada sprite esta definido en un fichero (esto lo hace el pagfx)
u32 tamano;
char* Data_Buffer[64]; //Numero de slots donde almacenar archivos
FILE* datafile;
char* FAT_Load_Data(char* filename, u8 slot)
{
if(Data_Buffer[slot] != NULL) free(Data_Buffer[slot]);
datafile = fopen (filename, "rb");
if(datafile != NULL) // Make sure there is a file to load
{
fseek (datafile , 0 , SEEK_END);
tamano = ftell (datafile);
rewind (datafile);
Data_Buffer[slot] = (char*) malloc (sizeof(char)*tamano);
if(Data_Buffer[slot] != NULL)
{
fread (Data_Buffer[slot],1,tamano,datafile);
fclose (datafile);
}
else
{
fclose (datafile);
return NULL; //O mensaje de error
//no hay memoria suficiente
}
}
else
{
return NULL; //O mensaje de error
//archivo no encontrado
}
return Data_Buffer[slot];
}
bool FAT_Free_Data(u8 slot)
{
if(Data_Buffer[slot] != NULL)
{
free(Data_Buffer[slot]);
return TRUE;
}
return FALSE;
}
char* pointer;
pointer = FAT_Load_Data("sprite_pal.bin",0);
PA_LoadSpritePal(0, 0, (void*)pointer);
pointer = FAT_Load_Data("sprite.bin",0);
PA_CreateSprite(0, 0, (void*)pointer, OBJ_SIZE_32X32, 1, 0, 50, 50);
FAT_Free_Data(0);
ANTONIOND escribió:Para cargar sprites desde FAT tienes que usar los bin que genera el PAgfx.
Una ayudita, jejeje.Esto te devuelve el puntero de donde se almacena el archivo del FAT en la memoria de la ds. Puedes almacenar hasta 64 archivos (puedes cambiarlo si quieres) mientras no llenen la memoria de la ds. Si ya estas usando ese slot se borra la información que había antes. También puedes liberar la memoria que esté ocupada con la segunda función.u32 tamano;
char* Data_Buffer[64]; //Numero de slots donde almacenar archivos
FILE* datafile;
char* FAT_Load_Data(char* filename, u8 slot)
{
if(Data_Buffer[slot] != NULL) free(Data_Buffer[slot]);
datafile = fopen (filename, "rb");
if(datafile != NULL) // Make sure there is a file to load
{
fseek (datafile , 0 , SEEK_END);
tamano = ftell (datafile);
rewind (datafile);
Data_Buffer[slot] = (char*) malloc (sizeof(char)*tamano);
if(Data_Buffer[slot] != NULL)
{
fread (Data_Buffer[slot],1,tamano,datafile);
fclose (datafile);
}
else
{
fclose (datafile);
return NULL; //O mensaje de error
//no hay memoria suficiente
}
}
else
{
return NULL; //O mensaje de error
//archivo no encontrado
}
return Data_Buffer[slot];
}
bool FAT_Free_Data(u8 slot)
{
if(Data_Buffer[slot] != NULL)
{
free(Data_Buffer[slot]);
return TRUE;
}
return FALSE;
}
Por ejemplo:char* pointer;
pointer = FAT_Load_Data("sprite_pal.bin",0);
PA_LoadSpritePal(0, 0, (void*)pointer);
pointer = FAT_Load_Data("sprite.bin",0);
PA_CreateSprite(0, 0, (void*)pointer, OBJ_SIZE_32X32, 1, 0, 50, 50);
FAT_Free_Data(0);
Como puedes ver, teniendo estas funciones es facil.
ANTONIOND escribió:Para cargar sprites desde FAT tienes que usar los bin que genera el PAgfx.
Una ayudita, jejeje.Esto te devuelve el puntero de donde se almacena el archivo del FAT en la memoria de la ds. Puedes almacenar hasta 64 archivos (puedes cambiarlo si quieres) mientras no llenen la memoria de la ds. Si ya estas usando ese slot se borra la información que había antes. También puedes liberar la memoria que esté ocupada con la segunda función.
Alber_h escribió:Vamos, viene a ser como el fopen de C.
Pues gracias por la informacion, aun no he llegado a esa parte de la wiki, que me la quiero leer enterita y bien, asi que no sabia que se podian cargar asi.
Salu2!
ANTONIOND escribió:Por cierto, judelco, es mejor no malgastar la memoria que luego liberar los datos. De todos modos, si cargas muchos datos con PAlib lo mejor es que uses las funciones de PAlib para eliminar sprites y todo eso. Yo suelo usar PA_ResetBgSys(); por ejemplo mientras las pantallas están negras.
judelco escribió:Y el MP3 y el MIDI tengo el mismo problema, no se meter librerias ajenas a palib..... >.<
ANTONIOND escribió:judelco escribió:Y el MP3 y el MIDI tengo el mismo problema, no se meter librerias ajenas a palib..... >.<
Si tienes la última versión de las PAlib es tan facil como mirarte los ejemplos de ASlib. Eso te vale para usar MP3.
EDIT: C:\devkitPro\PAlibExamples\Sound\ASLib_General
judelco escribió:ANTONIOND escribió:judelco escribió:Y el MP3 y el MIDI tengo el mismo problema, no se meter librerias ajenas a palib..... >.<
Si tienes la última versión de las PAlib es tan facil como mirarte los ejemplos de ASlib. Eso te vale para usar MP3.
EDIT: C:\devkitPro\PAlibExamples\Sound\ASLib_General
Lo siento, pero va a ser que tengo una versión de finales de 2007.
Que hago?
nazareth escribió:Pues o convertir la musica a raw o midi, o descargarte el nuevo, nose si abra mas opciones
PD: ANTONIOND, como lo yevas? supongo k va poco a poco, no?
nazareth escribió:PD: ANTONIOND, como lo yevas? supongo k va poco a poco, no?
judelco escribió:He corregido una BURRADA de bugs y problemas. Ahora está increible. Am! Y tambien he cambiado el logo a petición de Rigle (si, a mi tambien me parecía cutre)
ZELDA (Motor de animación) (JuDelCo) v0.26b
Screenshot:
-------------------------------------------------------------------visorsprites 0.26b.rar
-------------------------------------------------------------------
PD: Proxima actualización -> Más sprites y/o personajes
Bye!
ANTONIOND escribió:¿Sabes que te falta, que es esencial? ¡¡El ataque giratorio!!
ANTONIOND escribió:¿Sabes que te falta, que es esencial? ¡¡El ataque giratorio!!
Fusion_X escribió:Bueno, he estado mirando lo del 3D y la verdad es qu solo he aprendido algunas cosas para cargar modelos, pero y para moverlos?
No tengo las ideas claras... Como siempre...
Perdón por allanar otra vez el hilo y gracias.
ANTONIOND escribió:¡¡La madre que me p...!!
Todavía me acuerdo de cuando yo metía tiras de sprites parecidas a esas al game maker de pc... Que me llevaba muchiiisimo tiempo... Pues en la DS no me lo quiero imaginar.
judelco escribió:Bueno, pues tranquilo que seguro que de alguna forma lo meto...... (me va a costar una vida, pero POR COJONES que, aunque sea de modo chapuzero, lo meto)
De que tamaño metías tu las tiras? La tira de sprites de link con la espada de este homebrew tiene creo unas 100 posiciones...
ANTONIOND escribió:judelco escribió:Bueno, pues tranquilo que seguro que de alguna forma lo meto...... (me va a costar una vida, pero POR COJONES que, aunque sea de modo chapuzero, lo meto)
De que tamaño metías tu las tiras? La tira de sprites de link con la espada de este homebrew tiene creo unas 100 posiciones...
Jejeje, ok. ¿Sabes que puedes hacer? Buscar un programa para hacer gifs animados, creas uno con la animación y usas este programa (PAlib 080203) C:\devkitPro\PAlib\Tools\Gif2Frames
ANTONIOND escribió:Ok. Normalmente hacia tiras de 10 a 20 frames (en torno a 60x60 pixels cada imagen), pero llegue a las 50 una animacion... Me llevo una hora o asi.
judelco escribió:Bueeeno..... después de MUUUUUUUCHO TRABAJO gráfico, ya tengo el spin attack entero!!!! (El ataque circular).
Han sido más de 200 SPRITES nuevos y el png medía mas o menos 64 pixels de ancho por.... MÁS DE ONCE MIL PIXELS de largo!!!!
Yo me he matado, pero ya está liiiiistooooooo !!!!! ^^
Mirad el primer post para descargaroslo.
EDIT: He AÑADIDO 2 links para descargaros las versiones anteriores en un paquete (y la actual). Así podeis ver la evolución del motor.
Rigle escribió:EDIT: Si no mal recuerdo tiene un ataque secreto