Proyecto Ballon Figh

Hola a todos.
Tengo la ilusión de hacer un Remake de este juegazo.
Sé programar en Visual Basic, incluso, podría hacer este juego para Pc.
Pero quería poder jugarlo en wii, como una aplicación más del HBC.
Querría saber por donde empezar, que programas se usan para hacer estas aplicaciones (cualquiera).
Estoy un poco perdido, cuando me digais que necesito, me pondré manos a la obra.
Muchas gracias
Necesitas el devkitPPC y saber programar en C.

Lo primero te lo puedes bajar desde aqui:

http://sourceforge.net/project/showfile ... _id=306949

Si no saber programar en C lo mejor es que lo dejes de lado, porque ademas de aprender a programar tendras que aprender a usar el API de la libogc (o el de alguna libreria que quieras usar por encima, altamente recomendable), y ademas con el problema de que no puedes depurar (Menos mal que por lo menos existen los CodeDump y el gdb).
Al igual que el compañero te recomiendo que primero aprendas C. Empieza a programar cosas sencillas para PC y cuando cojas soltura métete de cabeza con C++. Te llevará meses cojer un nivel intermedio/bajo (el que tenemos el 99% de los programadores de C/C++), pero si de verdad te interesa programar videojuegos es un paso obligado.

Mucha suerte y no te desanimes, al final merece la pena.
xD, si, primero aprende c al igual que lo estoy haciendo yoo... xD, ya mas o menos voy cogiendo nivel en c, pero me da un poco duro parte del tema de punteros... Apenas termine de aprender c, me dedico a c++ y luego si a programar en la wii..
En realidad es mas sencillo programar en C++ que en C, aunque es necesario saber C para poder programar en C++.

La programación con clases hace la vida mucho mas sencilla, si quieres programar un juego con buen nivel es casi obligatorio crearte una buena jerarquia de clases.

Y si, los punteros cuesta aprender a manejarlos, pero una vez que los dominas son muy utiles para hacer una buena gestión de la memoria.
chipan está baneado por "troll maleducado"
Los punteros son un puñetero dolor de muelas que se inventó una persona que odiaba mucho a los programadores.
Carlos_js16 está baneado por "troll"
A mi me interesaria ayudarte, aunque tambien tendria que aprender a programar pero el juego es fantastico. Ponte en contacto conmigo y lo vemos- Saludos
Pues es que yo no he podido hacer una cosa, por si me pueden y quieren ayudar:
Me enseñaron a declarar un puntero, a darle el valor en memoria necesario, a recorrerlo como puntero (i+1 creo que era) y a recorrerlo como array (puntero[i]), me enseñaron como liberar la memoria ocupada, me enseñaron para que sirve un puntero, me enseñaron tambien a usarlo en una estructura...
Listo, ahora me piden mejorar la primera version de una agenda que ya habia hecho, pero que por desgracia no guarde la copia de su primera version, asi que me toco volver a escribir su codigo (sencillo, la verdad).. La agenda lee datos desde un archivo y los guarda al cerrar el programa (es su primera version, en las demas guarda cuando se requiere y lee cuando se requiere), listo, eso es sencillo, el problema es que la agenda segun me acuerdo, debe soportar hasta 1000 datos, por ahi facil, simplemente un struct-array con una longitud de 1000 y con los datos necesarios, pero me piden que solo use la memoria necesaria, es decir, usando punteros...
Lo intente hacer pero ando mas perdido
Lo hice asi, pero esta muy mal y no se como arreglarlo...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    FILE* fichero;
    int i;
    int cont;
    int num;
    char cadena[51];
    struct
    {
          char nombre[51];
          char direccion[51];
          unsigned long telefono;
          char email[51];
          short dia;
          short mes;
          short anio;
    }agenda[1000];
    struct agenda *datos;
    struct agenda *dataTemp;
   printf("Bienvenido a la version clasica de la agenda. Esta es la version 1.b\n"
                      "En esta version, vamos a hacer uso de punteros para no "
                      "desperdiciar memoria. Esperamos el buen manejo del "
                      "programa. Iniciemos \n");
   printf("Lectura del inicio del programa: Intentando leer desde un archivo "
                   "agendav1.dat .....\n");
   fichero = fopen("agendav1.dat","rb");
   if (fichero==NULL)
    printf("Imposible leer datos, fichero agendav1.dat no encontrado. Continuando\n");
   else
   {
    printf("Fichero agendav1.dat encontrado. Comenzando a leer datos...\n");
    fread(&cont,sizeof(int),1,fichero);
    datos = (struct agenda*) malloc (cont * sizeof(agenda));
    for(i=0;i<cont;i++)
    {
     fread(datos[i]->nombre,51,1,fichero);
     fread(datos[i]->direccion,51,1,fichero);
     fread(datos[i]->telefono,sizeof(telefono),1,fichero);
     fread(datos[i]->email,51,1,fichero);
     fread(datos[i]->dia,sizeof(short),1,fichero);
     fread(datos[i]->mes,sizeof(short),1,fichero);
     fread(datos[i]->anio,sizeof(short),1,fichero);
    }
    fclose(fichero);
   }
   do
   {
    printf("Elija una opcion del menu:\n");
    printf("1. Añadir nuevos datos a la agenda\n");
    printf("2. Visualizar todos los datos almacenados\n");
    printf("3. Mostrar datos de una persona\n");
    printf("4. Salir\n");
    gets(cadena);
    sscanf(cadena,"%d",&num);
    switch(num)
    {
      case 1:
           fichero = fopen("agendav1.dat","wb");
           if(cont<1000)
           {
             printf("Introduzca el nombre: ");
             gets(datos[cont]->nombre);
             printf("\nIntroduzca la direccion: ");
             gets(datos[cont]->direccion);
             printf("\nIntroduzca el numero telefonico: ");
             gets(cadena);
             sscanf(cadena,"%ld",datos[cont]->movil);
             printf("\nIntroduzca el correo electronico: ");
             gets(datos[cont]->email);
             printf("\nIntroduzca el dia de nacimiento: ");
             gets(cadena);
             sscanf(cadena,"%hd",datos[cont]->dia);
             printf("\nIntroduzca el mes de nacimiento: ");
             gets(cadena);
             sscanf(cadena,"%hd",datos[cont]->mes);
             printf("\nIntroduzca el año de nacimiento: ");
             gets(cadena);
             sscanf(cadena,"%hd",datos[cont]->anio);
             cont++;
           }
           else
            printf("Limite excedido. No hay espacio para mas nombres\n");
           fclose(fichero);
           break;
      case 2:
           for(i=0;i<cont;i++)
           {
            printf("%s      %s      %ld, %s, %hd/%hd/%hd\n",datos[i]->nombre,
            datos[i]->direccion,datos[i]->movil,datos[i]->email,datos[i]->dia,
            datos[i]->mes,datos[i]->anio);
           }
           break;
      case 3:
           printf("Introduzca el nombre de la persona a buscar: \n");
           gets(cadena);
           for(i=0;i<cont;i++)
           {
            if(strcmp(cadena,datos[i]->nombre)==0)
            {
             printf("%s      %s      %ld, %s, %hd/%hd/%hd\n",datos[i]->nombre,
             datos[i]->direccion,datos[i]->movil,datos[i]->email,datos[i]->dia,
             datos[i]->mes,datos[i]->anio);
            }
           }
           break;
      case 4:
           printf("Guardando datos....\n\n");
           fichero = fopen("agendav1.dat","wb");
           fwrite(&cont,4,1,fichero);
           for(i=0;i<cont;i++)
           {
            fwrite(datos[i]->nombre,sizeof(agenda[i].nombre),1,fichero);
            fwrite(datos[i]->direccion,sizeof(agenda[i].direccion),1,fichero);
            fwrite(datos[i]->telefono,sizeof(agenda[i].movil),1,fichero);
            fwrite(datos[i]->email,sizeof(agenda[i].email),1,fichero);
            fwrite(datos[i]->dia,sizeof(agenda[i].dia),1,fichero);
            fwrite(datos[i]->mes,sizeof(agenda[i].mes),1,fichero);
            fwrite(datos[i]->anio,sizeof(agenda[i].anio),1,fichero);
           }
           fclose(fichero);
           printf("Fin de almacenamiento de datos....\nSaliendo....\n");
           break;
      default:
              printf("Opcion no identificada...\n");
    }
    while(num!=4);
    free(datos);
    printf("Programa terminado...\n");
    system("PAUSE");
    return 0;
}

Ah por cierto, he intentado compilar en linux pero me da bastantes problemas con cadenas y todo eso xD, se me cierra el programa al realizar muchas funciones de otro proyecto que hice de aprendizaje, y lo mejoro cada vez que avanzo en el curso..
Eso no es de mucha importancia, pero bueno..
Si me pueden ayudar se los agradeceria...
7 respuestas