
, 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] Plata escribió:Habemus chincheta... ohhhhhhhhhhhhh!!!
eGladiator escribió:
No fijas, que sabías de sobras que la iba a poner cuando te sugerí por MP hacer este hilo recopilatorio![]()
)
------------------------------------------------------------------------
--------------------------*-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
---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.
judelco escribió:Estooo.... Plata!!! Has puesto mi aporte de C++!!!
Que sorpresa!![]()
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)
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...) :
Espero que sirva para algo! No es PALib pero se parece BASTANTE al lenguaje de programacion de la ds.
Bueno, gracias por contar conmigo!![]()
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.
J uDelCo dame tu unas clasecillas de C++
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??
J uDelCo dame tu unas clasecillas de C++
![]()
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)
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)
[qmparto]) sin tener ni puñetera idea de C++.
#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();
}
}
}
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![]()
Y al compilar:
. Seguiré intentando a ver qué falla, gracias!! 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.![]()
judelco escribió:
....no te preocupes todavia del primer tuto si no has hecho el primero... XO
Ya veras cuando lleges al sexto...![]()
¡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![]()
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.
---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)
Plata escribió:espero que te sirva, si sigues si tener algo claro, vuelve a preguntar.
Salu2
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
XTRminator escribió:¿Es normal que encima de un Background no pueda escribir letras?
Plata escribió:
no...
mira que las letras esten delante del bg...
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:![]()
PA_InitText(0,0);
PA_OutputSimpleText(0,35,35,"NUEVA PARTIDA");
PA_EasyBgLoad(0,3,bgstd);
Senzo escribió:Una pekeña duda se pueden usar metodos?
Si es asi como?
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.![]()
PA_OutputSimpleText(0,35,35,"NUEVA PARTIDA");
PA_EasyBgLoad(0,3,bgstd);
PA_EasyBgLoad(0,3,bgstd);
PA_OutputSimpleText(0,35,35,"NUEVA PARTIDA");
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++?.
vjinete escribió: // cargando paletas
PA_SetBrightness(0, -31); // pantalla negra
PA_SetBrightness(1, -31);
vjinete escribió:// Iniciar un fondo de 8 bits en ambas pantallas
PA_Init8bitBg(0, 3);
PA_Init8bitBg(1, 3);
XTRminator escribió:Probado de ambas formas y nada. Pued...
Luisinho escribió:
Hola... hace ya algún tiempo que intenté...