[Programación en NDS][Recopilación de tutoriales Palib y Voc

Ofertas en PcComponentes: Top Verano y PcCom Days
1, 2, 3, 4, 5, 6
Recopilación de tutoriales

[NDS][Programación con Palib] 1. Instalación del entorno

[NDS][Programación con Palib] 1b. Instalación del entorno

[NDS][Programación con Palib] 2. Hola mundo

[NDS][Programación con Palib] 3.Texto y utilización de fondos

[NDS][Programación con Palib] 4.Texto, color, tamaño y fuentes

[NDS][Programación con Palib] 5.Sprites

[NDS][Programación con Palib] 6. Movimiento de sprites y utilización de stylus y pad

[NDS][Programación con Palib] 7. Utilización avanzada del stylus

[NDS][Programación con Palib] 8. Sonido y opciones avanzadas

[url=http://www.elotrolado.net/hilo_nds-programacion-con-palib-9-sistemas-de-entrada-salida-avanzados_965528?hilit=[nds]%209.#p1711006857][NDS][Programación con Palib] 9. Sistemas de entrada/salida avanzados[/url]

[NDS][Programación con Palib] 10. Menus, funciones y proyectos multiarchivo


-----2D-----

[NDS][Programación con Palib][2D] 1.Sprites y scroll



Proximamente...
[NDS][Programación con Palib][2D] 2. Colisiones matemáticas simples


Pdf con lo que llevamos dado gracias a Dr. Catz: http://www.megaupload.com/es/?d=9LCOTPLD





Vocabulario

Sprite: Se trata de un tipo de mapa de bits dibujado en la pantalla de ordenador, a menudo pequeños y pueden ser transparentes. Por ejemplo, el personaje de un juego en 2D como pokemon, es un sprite. Os pongo un sprite para que lo entendais mejor: Imagen

Stylus: El stylus es en si el lapiz para la pantalla tactil de la NDS. Cuando lo vemos en un if (condicion), por ejemplo, quiere decir, que si tocas en las cordenadas dadas, pasa lo que mandes/hayas programado. Se suele utilizar mucho en botones, animaciones, juegos, etc...






Aprendiendo C++ por Judelco
[URL=http://www.elotrolado.net/post_-Programacion-en-NDS--Recopilacion-de-tutoriales-Palib-y-Vocabulario-_1710120190#post1710120190]
Podeis ver un buen aporte sobre C++ aquí.[/URL]



NOTA:
NO ACEPTO MENSAJES PRIVADOS CON GILIPOLLECES, todos los dias me llega algun mensaje tipo: que mensaje de compilador es este? y en el codigo no an incluido los graficos, o no han declarado alguna variable, o muchas burradas que ni os imaginais (enserio, un dia hare una copia de mi lista de mps del estilo y lo colgare, no tiene desperdicio), NO es mi culpa que no sepais C, yo no enseño C, enseño a usar Palib. Y estoy tambien frito de tener que borrar un mensaje importante para leer uno nuevo y que ponga: me puedes hacer esta parte de mi juego? eske no lo se hacer... QUEMA xDDDD pues eso, un abrazo para los ke nunca me han incordiado y un tomo de c para los que me matan a mps... salu2
Muchas Gracias por este post... espero que lo pongan en hilos importantes.

5 Estrellas!!!
5 estrellas, espero que le pongan chincheta [plas]
Habemus chincheta... ohhhhhhhhhhhhh!!!
Chincheta, y un tornillo si hace falta XD, a ver por donde salimos con esto, ya postearemos aquí el "Gear of Wars DS", el "DS Effect" y el "DS Zone" que nos vamos a montar aquí [qmparto][qmparto][qmparto][qmparto][qmparto]
Plata escribió:Habemus chincheta... ohhhhhhhhhhhhh!!!


No fijas, que sabías de sobras que la iba a poner cuando te sugerí por MP hacer este hilo recopilatorio cawento
eGladiator escribió:
No fijas, que sabías de sobras que la iba a poner cuando te sugerí por MP hacer este hilo recopilatorio cawento


no finjo xd, lo digo pork me hace ilu.
salu2
Estooo.... Plata!!! Has puesto mi aporte de C++!!!

Que sorpresa! :-P

Bueno, la cosa es que ese aporte es de un txt que tenia cuando llevaba mas o menos 3 semanas con el C++, asi que está desactualizado.

Lo que he hecho a sido buscar el txt más reciente (el de acabar el curso) y me he encontrado que tenia 2 (Era demasiada info para 1 txt).

Pues eso, voy a remitirte aqui y ahora el txt para que puedas meter más info (aún asi el C++ que dí es baaaasico del todo, pero al menos las explicaciones que escribí a lo largo del curso me sirvieron para sacar un 10 X-D )

Aqui va el primer TXT actualizado (el que aporté pero con más cosillas...):

------------------------------------------------------------------------
--------------------------*-ESTRUCTURA-*--------------------------------

#include
#include

(Instrucciones de declaramiento de librerias)(Tomos de diccionario)
#include

------------------------------------------------------------------------

main()
{
cout<<"Este es mi primer programa"< cout<<":)";
getche();
}

(Programa) - main()
{
(Instrucciones)
}

-----------------------------------------------------------------------

#include
#include
main()
{
char nombre[10];
char apellidos[30];
int edad;
float altura;

cout<<"Cual es tu nombre?";
cin>>nombre;
cout<<"Cual es tu edad?";
cin>>edad;
cout<<"Hola"<getche(); variable nombre se mostrará)
}

-----------------------------------------------------------------------
--------------------------*-DEFINICIONES-*-----------------------------

COUT : Sirve para escribir un mensaje en la pantalla. Cuando el
ordenador ejecuta una instruccion cout sabe que en la pantalla debe
escribir una informacion. Por ahora, solo escribira texto, y para
yo indicarle adecuadamente el texto que quiero que escriba debo ponerlo
entre comilas dobles ("). Si le digo q escriba <el ordenador sabe que debe bajar el cursor a la linea siguiente.
Esta instruccion cuando tiene que escribir diferentes cosas, debe
ultilizar para separar unas de otras el simbolo <<
Esta instruccion se encuentra en la libreria iostream.h

GETCHE : Esta instruccion sirve para detener o bloquear la ejecucion del
programa hasta que se pulse una tecla. Nosotros normalmente la ultilizarmos
como ultima instruccion del programa para poder ver resultados. Esta
instruccion se encuentra en la libreria conio.h

CHAR : Es una variable con el nombre "example", que te permite guardar
letras. En los corchetes [x] el simbolo "x" indica el tope de letras que
permite guardar en la memoria principal
ejemplo: -- char example[x] --

INT : Es otra variable que sirve para guardar en la mem.principal un numero,
ojo, no permite guardar cualquier numero, solo permite guardar numeros
enteros (sin decimales). No debe sobrepasar el numero 32.000.

FLOAT : Es otra variable que sirve para guardar en la mem.principal un
numero real, esta vez permite las comas (las comas se ponen como puntos)

LONG : Otra variable, esta vez sirve para guardar un numero pero esta vez
sin la restriccion del numero 32.000

CIN : Sirve para entrar una variable, por ejemplo : cin>>nombre
La variable llamada nombre dará paso a la escritura del usuario para
escribir la variable que permita tales caracteres, Tambien detiene el
programa hasta que el usuario introduzca la informacion que le pida

GETS (x) : Sirve para que te pregunte la variable x y la informacion que
se guarde incluya más de una palabra (para los apellidos, por ejemplo)

**Las variables necesitan ser escritas antes de las instrucciones, ojo!**

OPERADORES ARITMÉTICOS : ( + - * / % ) (suma,resta,multiplicar,dividir,calcula
el resto de la division que se le indique -- 8%2=0 -- )

POW(x,y) : Calcula un potencia (x elevado a y)

SQRT(x) : Calcula una raiz de x

-------------------------------------------------------------------------------
-----------------------------*-LIBRERIAS-*-------------------------------------

#include
#include
#include



Y aqui va el segundo y último txt (ya no aprendí mas C++, se acabó el año... XD ) :

---OPERADORES RELACIONALES---

> mayor q
< menor q
>= mayor igual
<= menos igual
== igual
!= distinto

---OPERADORES LÓGICOS---

&& Y
|| o
! NO

------------------------

A="Hoy es Martes" (verdadero)
B="Está lloviendo" (falso)
C="Estamos en la clase" (verdadero)
D="Estamos en mates" (falso)

((A)&&(B)) falso
((A)&&(C)) verdadero
((B)&&(C)) falso
((B)||(D)) falso

------------------------

A="Hoy es Martes" (verdadero)
B="Está lloviendo" (falso)
C="Estamos en la clase" (verdadero)
D="Estamos en mates" (falso)

((A)||(B)) verdadero
((A)||(C)) verdadero
((B)||(C)) verdadero
((B)||(D)) falso

------------------------

A="Hoy es Martes" (verdadero)
B="Está lloviendo" (falso)
C="Estamos en la clase" (verdadero)
D="Estamos en mates" (falso)

((A)!(B)) falso
((A)!(C)) falso
((B)!(C)) falso
((B)!(D)) verdadero

------------------------

ELSE : En caso de que ninguna variable funcione, el ordeandor hará la orden que diga con el else.
...etc
if (a>0)
{
cout<<"es positivo"
}
else
{
...etc

------------------------

switch (letra) (Sirve para englobar los IF)
{
case 'a':cout<<"A";break; (case es para los casos distintos)
case 'e':cout<<"E";break; (break es para que termine el switch)
default:cout<<"Me querias engañar?"; (default es por si ningun case vale)
}

------------------------

Un contador es una variable que se ultiliza para contar cualquier evento o suceso
que pueda ocurrir dentro de un programa. En general cada contador que vaya a
ultilizar en mi programa, debe declararse con un valor inicial 0.


Espero que sirva para algo! No es PALib pero se parece BASTANTE al lenguaje de programacion de la ds.

Bueno, gracias por contar conmigo! [beer]
judelco escribió:Estooo.... Plata!!! Has puesto mi aporte de C++!!!

Que sorpresa! :-P

Bueno, la cosa es que ese aporte es de un txt que tenia cuando llevaba mas o menos 3 semanas con el C++, asi que está desactualizado.

Lo que he hecho a sido buscar el txt más reciente (el de acabar el curso) y me he encontrado que tenia 2 (Era demasiada info para 1 txt).

Pues eso, voy a remitirte aqui y ahora el txt para que puedas meter más info (aún asi el C++ que dí es baaaasico del todo, pero al menos las explicaciones que escribí a lo largo del curso me sirvieron para sacar un 10 X-D )

Aqui va el primer TXT actualizado (el que aporté pero con más cosillas...):



Y aqui va el segundo y último txt (ya no aprendí mas C++, se acabó el año... XD ) :



Espero que sirva para algo! No es PALib pero se parece BASTANTE al lenguaje de programacion de la ds.

Bueno, gracias por contar conmigo! [beer]


aun así no se parece casi nada...
las palib estan sobre c.
es mas, aveces se usa la libreria stdio, que se usa en c.
Plata escribió:
aun así no se parece casi nada...
las palib estan sobre c.
es mas, aveces se usa la libreria stdio, que se usa en c.


Bueno, pero al ser el único lenguaje de programacion que he tratado, le veo semejanza, aunque el C sea mas parecido...

En fin, solo trataba de ayudar [toctoc]
Joooooo que envidia me dais por saber programar!!! joooooo

haber si me busco un buen manual de C++ y cuando sepa las nociones basicas me pongo con las palib's ... me recomendais alguno??

[toctoc] J uDelCo dame tu unas clasecillas de C++ [toctoc]
mik0 escribió:Joooooo que envidia me dais por saber programar!!! joooooo

haber si me busco un buen manual de C++ y cuando sepa las nociones basicas me pongo con las palib's ... me recomendais alguno??

[toctoc] J uDelCo dame tu unas clasecillas de C++ [toctoc]


No te hace falta saber C++ para empezar con los tutoriales de Plata.
ya pero es mejor tener una base, y saber hacer algo, lo minimo...

o esque tu empezaste a hablar haciendo frases compuestas? ( es un ejemplo no kiero meterme con nadie ehhhh!!! ke luego pasa lo ke pasa)
mik0 escribió:ya pero es mejor tener una base, y saber hacer algo, lo minimo...

o esque tu empezaste a hablar haciendo frases compuestas? ( es un ejemplo no kiero meterme con nadie ehhhh!!! ke luego pasa lo ke pasa)


Claro! Quien no? Mi primera yuxtapuesta a los 2 años.... ¬_¬

[360º]
mik0 escribió:ya pero es mejor tener una base, y saber hacer algo, lo minimo...

o esque tu empezaste a hablar haciendo frases compuestas? ( es un ejemplo no kiero meterme con nadie ehhhh!!! ke luego pasa lo ke pasa)


No, pero si empecé a programar con PAlib (si lo que yo hago puede llamarse programar... [qmparto][qmparto]) sin tener ni puñetera idea de C++.
Seccion de dudas.

El que tenga dudas muy concretas sobre lo que vamos dando, ruego que las ponga aqui.

salu2
¿Puedo poner mi código y por qué me da una excepción? Es que me estoy desesperando, porque no me da error al compilar y sin embargo me dice que hay un archivo no encontrado. Si no es el lugar decídmelo, pero a ver si me podéis echar una mano [ayay]


#include // Include for PA_Lib
#include "gfx/all_gfx.c" //Incluimos los gráficos, gfx/all_gfx.c es uno de los archivos que secrearon antes
#include "gfx/all_gfx.h" //Incluimos los gráficos, se compone de dos archivos.


// Function: main()
int main(int argc, char ** argv)
{
PA_Init(); // Initializes PA_Lib
PA_InitVBL(); // Initializes a standard VBL

void intro();




// Infinite loop to keep the program running
while (1)
{
}
return 0;
} // End of main()


void intro()
{
PA_InitText(0,0);
PA_InitText(1,0);
PA_OutputSimpleText(0,5,12,"Creado por XTRminator");

PA_OutputSimpleText(0,3,20,"Pulsa START o presiona la");
PA_OutputSimpleText(0,1,21,"pantalla tactil para continuar.");

PA_EasyBgLoad(1,3,titulo);
while (1)
{
if (Pad.Newpress.Start)
{
void menu();

}
PA_WaitForVBL();
}

}

void menu_dos()
{
PA_EasyBgLoad(0,0,menu2);
while (1)
{
if ((Stylus.Newpress) && (Stylus.X < 64) && (Stylus.Y > 160))
{
void intro();
}

if ((Stylus.Newpress) && (Stylus.X > 64) && (Stylus.X < 128) && (Stylus.Y > 160))
{
void menu_dos();
}
}

}




void menu()
{
PA_EasyBgLoad(0,0,menus);
while (1)
{
if ((Stylus.Newpress) && (Stylus.X < 64) && (Stylus.Y > 160))
{
void intro();
}

if ((Stylus.Newpress) && (Stylus.X > 64) && (Stylus.X < 128) && (Stylus.Y > 160))
{
void menu_dos();
}
}


}


Y al compilar:

main.c
arm-eabi-g++ -g -mthumb-interwork -mno-fpu -L/c/devkitPro/PAlib/lib -specs=ds_arm9.specs main.o -Lc:/devkitPro/PAlib//lib -lpa9 -L/c/devkitPro/libnds/lib -lfat -lnds9 -ldswifi9 -o build.elf
Nintendo DS rom tool 1.33 - Jan 28 2007 21:02:20
by Rafael Vuijk, Dave Murphy, Alexei Karpenko
built ... SoccerDesigner.ds.gba
dsbuild 1.21 - Jan 28 2007
using default loader
Loading SoccerDesigner.nds
c:/devkitpro/no$gba/no$gba.exe
C:\devkitPro\SoccerDesigner\SoccerDesigner.sc.nds

Excepción no controlada: System.ComponentModel.Win32Exception: El sistema no puede hallar el archivo especificado
en System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
en System.Diagnostics.Process.Start()
en System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
en System.Diagnostics.Process.Start(String fileName, String arguments)
en NdsLauncher.NdsLauncher.Main(String[] Args)
XTRminator escribió:¿Puedo poner mi código y por qué me da una excepción? Es que me estoy desesperando, porque no me da error al compilar y sin embargo me dice que hay un archivo no encontrado. Si no es el lugar decídmelo, pero a ver si me podéis echar una mano [ayay]




Y al compilar:



eso es el emulador...
dale a la opcion que pone solo build.
despues vete a la carpeta del proyecto y correlo con el emu, si sige sin tirarte correlo en la flashcard.
compilar complila perfecto.
salu2

P.D: Para lo de toca la pantalla, mejor usa un bool que un void... xD ademas que ocupa menos codigo...
No me lo corre de ninguna forma, ni en el emu (iDeaS) ni en el flashcart. Hasta ahora no había tenido problemas a la hora de ejecutarlo. Lo de el emu ha sido una ida de olla mía, le daba a F6 en vez de a F5 [Ooooo] . Seguiré intentando a ver qué falla, gracias!!
PiratePila está baneado por "crearse clones para trollear"
¿ Se sabe de que será el siguiente tutorial ?

Yo este fin de semana empezaré a iniciarme, me parecen muy buenos tus tutoriales, 5 estrellas a todos. [oki]
PiratePila escribió:¿ Se sabe de que será el siguiente tutorial ?

Yo este fin de semana empezaré a iniciarme, me parecen muy buenos tus tutoriales, 5 estrellas a todos. [oki]


....no te preocupes todavia del primer tuto si no has hecho el primero... XO

Ya veras cuando lleges al sexto... X-D
PiratePila está baneado por "crearse clones para trollear"
judelco escribió:
....no te preocupes todavia del primer tuto si no has hecho el primero... XO

Ya veras cuando lleges al sexto... X-D


Llevo tiempo mirandolos.

¿ Que pasa con el sexto ? ¿ Se complica la cosa ?

Yo seguro que hago algo mal y no me funciona la cosa. XD XD
Para mi estos tutos son cuasi perfectos...solo faltarian 2 cosas x si las añades para proximos puntos.
1. Colision de sprites
2. Acceso a datos de slot1 o slot2 para poder guardar partidas, puntos, etc.

Y ya como algo con lo q soñar aunq nunca creo q llegase al nivel...algo basico de 3D.

1saludo, muchas gracias y felices reyes...a ver si os regalan muchas DS.
¡Feliz año nuevo a todos!

Enhorabuena por los tutos Plata. Se agradece que alguien dedique tantas horas de forma desinteresada a los que no sabemos de este tema [sonrisa]


Tengo algunas dudas que espero que me puedas aclarar:

- ¿Que opciones tenemos a la hora de programar homebrew para DS? ¿Es Palib la única herramienta disponible o hay otras? ¿Por ejemplo, el SDK oficial de la DS se puede conseguir? ¿Las aplicaciones homebrew de sobra conocidas por todos como moonshell y similares, con que herramienta están desarrolladas?

- Centrándonos ahora en Palib... ¿Que puede esperarse de esta herramienta? ¿Se puede acceder con ella a todo el hardware? ¿Tiene algún tipo de limitación si la comparamos con lo que se podría hacer usando el SDK de Nintendo?

- ¿Palib es sólo una librería que se usa desde el lenguaje de programación C, o es un lenguaje nuevo que deriva de este último?

- ¿Que hay de C++? ¿Podrían usarse clases, herencia, polimorfismo, etc, con la herramienta Palib?


Sé que son muchas preguntas, pero como neófito en desarrollo para DS se me vienen todas ellas a la cabeza nada más leer la primera entrega del tutorial. Quizás podrías elaborar un prefacio donde dieses una visión general del "state of the art" del desarrollo para DS y que ya de paso contestase a mis preguntas. Creo que vendría muy bien tanto para los que tenemos experiencia programando otras plataformas como para los que son nuevos en esto de desarrollar aplicaciones. Te doy las gracias de antemano, así como las 5 estrellitas :-p


Saludos.
¡Feliz año nuevo a todos!

Enhorabuena por los tutos Plata. Se agradece que alguien dedique tantas horas de forma desinteresada a los que no sabemos de este tema [sonrisa]


Tengo algunas dudas que espero que me puedas aclarar:


Gracias, intentare responder a todo

- ¿Que opciones tenemos a la hora de programar homebrew para DS? ¿Es Palib la única herramienta disponible o hay otras? ¿Por ejemplo, el SDK oficial de la DS se puede conseguir? ¿Las aplicaciones homebrew de sobra conocidas por todos como moonshell y similares, con que herramienta están desarrolladas?


hay cuatro opciones (que yo conozca):
- primero estaria programar en lua, personalmente, prefiero c.
- despues, en c ya estarian las palib, que es lo que estudiamos.
- tambien en c estan libnds, aunque sean un poco mejores que palib
- y por ultimo, hay unas librerias (no me acuerdo de su nombre) que son las que se usan para los ports (tambien en c)

ah! y se me olvidava, tambien tienes los estupidos makers esos, pero no los recomiendo para nada.

-----------------------------------------------

el sdk oficial de nintendo creo que era nitronoseke, pero supongo que es algo ilegal, ya ademas te da igual, porque eso lo unico que hace es compilar, aver si me entiendes, que sin las librerias el sdk es algo inutil... xD

-----------------------------------------------
el dsorganice esta en libnds, y moonshell creo que tambien.

seria capaz de hacer tutos de libnds, pero se de ello lo mismo que vosotros de palib (los que han aprendido con mis tutos) lo basico.


- Centrándonos ahora en Palib... ¿Que puede esperarse de esta herramienta? ¿Se puede acceder con ella a todo el hardware? ¿Tiene algún tipo de limitación si la comparamos con lo que se podría hacer usando el SDK de Nintendo?


como todas las librerias... no es perfecta... pero a pocas cosas mas que metiera, seria dios, yo creo que lo unico que le falta es el poder combinar texto con colores en 16bit (de momento solo se puede en 8) y mas 3d.

tampoco tiene mucho que envidiarle a libnds (tambien decir que libnds es mejor)



- ¿Palib es sólo una librería que se usa desde el lenguaje de programación C, o es un lenguaje nuevo que deriva de este último?


Es una simple libreria



- ¿Que hay de C++? ¿Podrían usarse clases, herencia, polimorfismo, etc, con la herramienta Palib?


Solo cosas de C



Sé que son muchas preguntas, pero como neófito en desarrollo para DS se me vienen todas ellas a la cabeza nada más leer la primera entrega del tutorial. Quizás podrías elaborar un prefacio donde dieses una visión general del "state of the art" del desarrollo para DS y que ya de paso contestase a mis preguntas.


No te entiendo... xD

espero que te sirva, si sigues si tener algo claro, vuelve a preguntar.

Salu2
Plata, a mi no me respondes???? :-(

Please, mira el post anterior sobre las 2 peticiones q he hecho...a ver q opinas y si lo ves viable.
Gracias
Bueno, la verdad es que me están viniendo de maravilla estos tutoriales. Geniales, de verdad. Creo que voy a hacer una recopilación de vocabulario, tanto de uso personal como para compartirlo con el foro, para que las funciones más básicas (pero a la vez que más se usan).

Creo que vendrá bien a la hora de buscar esa función que no recordamos como era, y perdemos un tiempo la mar de valioso.

Cuando lo tenga lo posteo ;-)

EDIT: Aquí está, de momento pongo estas solo, cuando vaya utilizando masivamente más, las iré poniendo. Id aportando también:

---TEXTO---

PA_InitText(0,0) // inicia el texto en la pantalla 0 (la táctil) y en la capa 0 (la más al frente de todas)

PA_OutputSimpleText(0,30,15,"Prueba") // escribe, en la pantalla 0, en las coordenadas 30,15, el texto "Prueba"



--IMAGENES--

PA_EasyBgLoad(1,0,foto) // carga la imagen "foto" como fondo en la pantalla 1 (superior), en la capa 0.

PA_ResetBg(0) // resetea el background de la pantalla táctil



---STYLUS---

Stylus.Newpress // pulsación de la pantalla táctil

PA_StylusInZone(64,160,128,192) // pulsación en la zona delimitada por las coordenadas (64,160),(128,192) (x1,y1),(x2,y2)

Una pekeña duda se pueden usar metodos?

Si es asi como?
Muchas gracias por responder tan rápido.

Plata escribió:espero que te sirva, si sigues si tener algo claro, vuelve a preguntar.

Salu2


Me ha quedado todo clarísimo.

En cuanto a lo último que te decía, pues nada, era sólo un consejo: Que hicieses una introducción previa a los tutoriales explicando las distintas opciones a la hora de programar para la DS y hasta donde se puede llegar con Palib. Creo que le vendría bien a la gente, que como yo, no tenga muy claro que librería escoger. Sería poco más o menos repetir lo que me has dicho a mi.

Saludos
Darkangel escribió:Plata, a mi no me respondes???? :-(

Please, mira el post anterior sobre las 2 peticiones q he hecho...a ver q opinas y si lo ves viable.
Gracias


ya lo vi pero me parecio que no necesitava respuesta...
lo de colisiones dentro de unos pocos tutoriales (2 o 3).
para lo que tu llamas acceso a slot 1 y 2, (fat) va vendra mas adelante...
Holas.

Estoy empezando a engancharme a tus tutoriales plata, pero ando buscando una 'libreria' o 'compendio' con todas las funciones, una breve explicación de su funcionamiento y los parámetros que aceptan. Estaría cojonudo si me dijeras algún enlace (si existe, claro), las ansias por aprender de uno no acaban jejeje, y me gustaría poder tener una referencia de todas las funciones/librerias que tiene palib así como su funcionamiento. Creo que debe de haber funciones la ostia de curiosas y útiles, que por muchos tutoriales que haya, no llegarán a cubrir jejeje.

un saludo.
Muchas gracias plata...
1saludo y sigue con el tema...
¿Es normal que encima de un Background no pueda escribir letras?
Aparte de la información que hay en la web de palib, ¿algo más al respecto del funcionamiento de las funciones de esta librería?.

por cierto, ¿cuán posible podría ser compilarlo en el devc++?.

un saludo.
XTRminator escribió:¿Es normal que encima de un Background no pueda escribir letras?


no...
mira que las letras esten delante del bg...
PiratePila está baneado por "crearse clones para trollear"
Plata, ya has decidido de que será tu proximo tutorial ?

Que conste que no hay prisa, solo curiosidad. XD

Por cierto, podrías explicarme un poco como podría hacer para que enseñar un fondo y al cabo de, por ejemplo, tres segundos se cambie por otro ?

Es que no tengo mucha idea de como hacerlo pero esto siempre sale en todos los juegos comerciales, siempre salen unas pantallas con el nombre de la empresa o compañia que ha desarrollado el juego.
Plata escribió:
no...
mira que las letras esten delante del bg...


Lo están. Te pongo una imagen para que veas qué ocurre exactamente. Está caputarada con el emu, pero está probado en la DS y le pasa exactamente lo mismo:

Imagen
XTRminator escribió:
Lo están. Te pongo una imagen para que veas qué ocurre exactamente. Está caputarada con el emu, pero está probado en la DS y le pasa exactamente lo mismo:

Imagen


eso es que as mezclado un fondo normal con texto de 8 bits (smarttext) o vicebersa.
mira que sea un easybg y usa outputext.
Es un EasyBg y uso OutputSimpleText :?
PiratePila está baneado por "crearse clones para trollear"
Quizas el problema es que pones el texto en una capa inferior a la del background. En los tutoriales de Plata, él siempre pone el fondo en la capa 3, así que si pones el texto en una capa superior (o el fondo en una inferior a la del texto) debería funcionar.
Pongo los dos cachos de código para que veais como están hechos:



PA_InitText(0,0);

PA_OutputSimpleText(0,35,35,"NUEVA PARTIDA");



PA_EasyBgLoad(0,3,bgstd);


Osea, que el background está en el 3 y el texto en el 0. [triston]
Senzo escribió:Una pekeña duda se pueden usar metodos?

Si es asi como?


Please XD

Problema solucionado ;)
XTRminator escribió:Pongo los dos cachos de código para que veais como están hechos:








Osea, que el background está en el 3 y el texto en el 0. [triston]


en tu codigo... as escrito primero y despues as iniciado el bg?

puede ser por eso, osea, si tienes esto:
PA_OutputSimpleText(0,35,35,"NUEVA PARTIDA");

PA_EasyBgLoad(0,3,bgstd);


en vez de esto:
PA_EasyBgLoad(0,3,bgstd);

PA_OutputSimpleText(0,35,35,"NUEVA PARTIDA");


igual es por eso.

mas no se me ocurre...

salu2
Autocitándome...

Holas.

Estoy empezando a engancharme a tus tutoriales plata, pero ando buscando una 'libreria' o 'compendio' con todas las funciones, una breve explicación de su funcionamiento y los parámetros que aceptan. Estaría cojonudo si me dijeras algún enlace (si existe, claro), las ansias por aprender de uno no acaban jejeje, y me gustaría poder tener una referencia de todas las funciones/librerias que tiene palib así como su funcionamiento. Creo que debe de haber funciones la ostia de curiosas y útiles, que por muchos tutoriales que haya, no llegarán a cubrir jejeje.

un saludo.

por cierto, ¿cuán posible podría ser compilarlo en el devc++?.


Un saludo.
Probado de ambas formas y nada. Puede que tenga algo que ver que cargue dos imagenes en la misma capa o algo así.

¿Cual es el comando para borrar un background? A lo mejor se superpone el fondo al anterior, y por ello no funciona bien el texto o algo...es que no se me ocurre nada más... ¬_¬
Con el tema de fondos llevo yo peleandome unos dias.

ideas:
- pon // para qe no ejecute la carga del fondo y asi ves si se ve el texto.

- si se ve, puede ser qe el color del fondo sea el mismo qe el color del texto, por eso, aunqe esta escrito, no lo ves.

- si no se ve, aparte del caso anterior, puede ser de algun fondo/color anterior qe te deja la cosa chunga.

- carga las paletas del texto despues de cargar el fondo. A mi me paso similar con unos checkbox (no se distinguian apenas) y lo corregi cargando la paleta de las PAPI antes de crear los cheks.

Comandos para eliminar fondos y el sistema de fondos:

PA_ResetBg(screen)
PA_ResetBgSysScreen (u8 screen)

menos radicales
PA_DeleteBg (u8 screen, u8 bg_select)
PA_ClearBg (u8 screen, u8 bg_select)

de todas formas, mirate en internet documentacion de palib, qe luego solo es cuestion de ir probando :)

http://www.palib.info/Doc/PAlibDoc%20Eng/main.html


Por cierto, al qe decia hacer transiciones de fondos, si se puede. Un ejemplo.
Yo trabajo con fondos 8bits. Lo qe hace este codigo es un fundido desde negro al fondo (en cada pantalla uno), pero puedes retocarlo para qe desde un fondo se funda a negro y cuando termine desde negro te carge otro fondo distinto (en la pantalla qe quieras)
Ejemplos hay muchos en la carpeta de palib.

// Iniciar un fondo de 8 bits en ambas pantallas
PA_Init8bitBg(0, 3);
PA_Init8bitBg(1, 3);

PA_Load8bitBgPal(0, (void*)colores_Pal);
PA_Load8bitBgPal(1, (void*)bitmap_Pal);
// cargando paletas

PA_SetBrightness(0, -31); // pantalla negra
PA_SetBrightness(1, -31);

// cargar fondo

PA_Load8bitBitmap(0, xxxxxxx_Bitmap);
PA_Load8bitBitmap(1,yyyyyy_Bitmap);


s8 i;
// fondo a visible
for(i = -32; i <= 0; i++){
PA_SetBrightness(0, i);
PA_SetBrightness(1, i);
PA_WaitForVBL();
}

s16 time = 120; // 120 frames = 2 segundos
while(time && (!Pad.Newpress.Anykey) && (!Stylus.Newpress)){ // hace hasta qe pulsas
time--;
PA_WaitForVBL();
}

PA_SetBrightness(0, 0); // normal
PA_SetBrightness(1, 0); // normal
Hola... hace ya algún tiempo que intenté leer y comprender los tutos que estáis desarrollando para C++ pero tuve problemas al instalar los "cacharros" en mi PC y finalmente desistí... no tengo grandes conocimientos en programación... php, actionScript, Lingo...

Tal vez, me entre el venazo de nuevo ya que tengo la CycloDS Evo. y me gustaría sacarla partido... esto me estoy enrollando demasiado...

He visto que vais a sacar un PDF con los tutos publicados... y me preguntaba si sacaréis algo para poder leerlo desde la DS directamente... es posible?? o es mucho pedir... ein? ein? ein?

Bueno, era sólo eso ^_^
vjinete escribió: // cargando paletas

PA_SetBrightness(0, -31); // pantalla negra
PA_SetBrightness(1, -31);


Porfavor... no pongas como "cargando paletas" a el principio de un fundido de pantalla cuando le quitas el brillo...

vjinete escribió:// Iniciar un fondo de 8 bits en ambas pantallas
PA_Init8bitBg(0, 3);
PA_Init8bitBg(1, 3);


a el no le interesa cargar un fondo en 8 bits (casualidad que lo doy en la leccion siguiente) sino en 256 colores...




----------------------------------------------------------------------



XTRminator escribió:Probado de ambas formas y nada. Pued...


como bien te an dicho, depura el codigo con la tecnica que te an dicho (usando lo de //)
Eso que decias de que usabas dos fondos... no los habras cargado a la vez, verdad???
az un simple if y que si pulsas a carge el otro fonfo (por si es por eso)

para borrar el fondo te remomiendo PA_DeleteBg (u8 screen, u8 bg_select)

u8 seria el valor.
en u8 screen tendrias que poner la pantalla donde esta el fondo, y en bgselect, deve de ser o el numero de capa o el nombre del bg (no me acuerdo ahora) que si no es una cosa es otra... xD



----------------------------------------------------------------



Luisinho escribió:
Hola... hace ya algún tiempo que intenté...


Usamos C, no C++

Pues lo de instalar el entorno si lo aces como yo digo, es imposible que salgan errores.
Todos los errores y dudas que tengas las puedes comentar aqui y intentaremos resolverlas.

Lo del pdf, ya llevo unos 5 capis, aver si lo termino.

Para leerlos en la ds puedes usar comickbookds, aunque hay que transformar el pdf con un programa que trae.

Tambien se puede hacer un homebrew con las lecciones, pero mas adelante...

Salu2

P.D: Para el lunes nuevo tuto
P.D.2: Vamos a abrir una web de programacion en palib dentro de poco, espero que nos visiteis, donde dejare alli tambien estos tutos...
Guay, esperamos ese nuevo tuto y la web.
1saludo y gracias
Perdon por los despistes :9

La verdad qe copie/pege del proyecto qe estoy haciendo y no me di cuenta.
Yo ya me entendia (se supone qe las paletas qe carga son las qe estan antes del comentario), pero has hecho bien en matizar pq se supone qe despues del comentario viene el codigo y no al rebes :)

Por cierto, estaria bien un tuto de gestion de archivos (para hacer saves de los datos qe quieras de tu aplicacion), qe la verdad qe no hay mucho por ahi a nivel de compresion facil (y no tengo nivel para entender los dificiles jeje)

Y luego, ya para redondear, un ejemplo de conexion wifi con transeferencia de esos archivos a PC y cuando te vea te doy un beso con lengua ;)
283 respuestas
1, 2, 3, 4, 5, 6