friki_master escribió:Madre mia, lo que tiene que oir uno...
Basic es un lenguaje pasadísimo de moda. El que diga que Basic es más facil que C es que nisiquiera ha intentado hacer algo en C.
Y eso no es cuestión de opiniones ni gustos... buscad algo de información antes de decir barbaridades, se agradece.
Danielc escribió:friki_master escribió:Madre mia, lo que tiene que oir uno...
Basic es un lenguaje pasadísimo de moda. El que diga que Basic es más facil que C es que nisiquiera ha intentado hacer algo en C.
Y eso no es cuestión de opiniones ni gustos... buscad algo de información antes de decir barbaridades, se agradece.
Pues yo he intentado hacer algo en c y algo en basic, y por lo menos para computador, usando basic es mucho mas facil que con c ...
Salu2
#include "stdio.h" // para incluir la funcion printf
int main()
{
while(1)
{
printf("No se que coño tiene esto de complicado\n"); // el \n se usa para que salte una linea
}
return 0; // retorna con OK
}
#include "stdio.h" // para incluir la funcion printf
int main()
{
bucle:
printf("No se que coño tiene esto de complicado\n"); // el \n se usa para que salte una linea
goto bucle;
return 0; // retorna con OK
}
pinopop escribió:C es algo facil,solo k programar para wii se me hace un poco complejo,por el uso de librerias,k no se tiene tanta informacion,k no conosco para nada millones de funciones
Si tu ves que alguien llama a un puñado de funciones que inicializan todo esto, lo importante no es saber que es lo que hacen exactamente, si no saber que eso que se ve tan raro, el lo que inicializa el video, etc. Y a partir de ahí, hay que "jugar" con las cosas, estudiarlas un poco y llevarlas a nuestro terreno.
Danielc escribió:xD, claro, yo no le veo nada de complicado a escribir un texto que aparezca en un bucle infinito, de hecho es demasiado facil..
Lo que pasa es que lo que te digo, por lo menos en computador, utilizando el entorno grafico que nos da visual studio es demasiado facil programar en basic..
Danielc escribió:
El problema con c, es como tu ya lo dijiste el tema de los punteros.. Lo entendí y logre hacer algo sencillo con ellos, pero luego me plantearon un ejercicio de mejorar una agenda que había hecho antes utilizando punteros y ahi me fregué ..
De todos modos, voy a ver si un dia de estos me animo y programo para wii xD, lo que pasa es que programar para una consola y programar para un computador no tiene punto de comparación ....
Salu2
Hermes escribió:Danielc escribió:xD, claro, yo no le veo nada de complicado a escribir un texto que aparezca en un bucle infinito, de hecho es demasiado facil..
Lo que pasa es que lo que te digo, por lo menos en computador, utilizando el entorno grafico que nos da visual studio es demasiado facil programar en basic..
Yo nunca he programado en Visual Basic, pero no creo que sea tan 'facil'. Lo que pasa es que para Visual Basic, tienes libros, tienes documentación abundante y te has acostumbrado a ello. Yo por ejemplo, he programado en Visual C++, incluso usando las Microsoft Fundation Class y no es tan sencillo hacer cosas: si, te monta todo lo necesario para tener una aplicación 'tonta' con una serie de clases para manejar ventanas y puedes hacer muchas cosas que facilitan el trabajo desde el IDE, pero eso es cosa del IDE en sí y no del lenguaje empleadoDanielc escribió:
El problema con c, es como tu ya lo dijiste el tema de los punteros.. Lo entendí y logre hacer algo sencillo con ellos, pero luego me plantearon un ejercicio de mejorar una agenda que había hecho antes utilizando punteros y ahi me fregué ..
De todos modos, voy a ver si un dia de estos me animo y programo para wii xD, lo que pasa es que programar para una consola y programar para un computador no tiene punto de comparación ....
Salu2
Pues no, programar para consola o para ordenador, no tiene ni punto de comparación, no: Yo empecé con un Spectrum y a los tres meses de tenerlo, ya estaba trabajando en ASM porque si, el interprete BASIC era moderno para la época, pero bastante inutil para hacer cualquier cosa con cierta entidad. En mi 8088, era la mar de divertido utilizar el modo EGA, que habia que programarlo usando registros para cambiar de bancos y que tuve la 'potra' de obtener esa información de un libro de Pascal en el Corte Ingles, que por aquella época, no existía Internet y como no te fueras al extranjero a por libros, poco había aqui. El día que me hice con el 'PC Interno', que me costó 10 mil pesetas, pensé que era una ganga y que había venido Dios a visitarme
Ahora, si por ordenador te refieres a 'Windows' y al uso de herramientas de Microsoft, obviamente, parece mas facil aparentemente, pero eso no es mas que por que el IDE te da ciertas facilidades. Y te sales de ahí y no sabes hacer nada, porque en realidad, estás en una vía muerta.
Dime, ¿que juego complejo has creado en Visual Basic para pensar que sería mejor realizarlo ahí que por ejemplo, en Wii, programando en C?.
Porque si resulta que para hacer el juego vas a tener que conocer el uso de 500 funciones y de librerías externas, crear otras 500 funciones que conformen el juego, yo no veo una ventaja tan real, si no metodos diferentes de hacer las cosas. No creo que el acceso a DirectX desde Visual Basic sea mas facil que acceder a las GX, al pad o a la ASNDLIB en Wii desde C. Otra cosa es que para tí resulte extraño porque es algo nuevo que tienes que aprender, pero es que el programador es una persona que está constantemente aprendiendo a hacer cosas, porque es una persona creativa y que s etiene que adaptar al entorno, no el entorno a el.
El lenguaje C no tiene esa proteccion de punteros de la que hace uso BASIC, e incluso en consola, hay que tener un cuidado extra con el tamaño de los datos porque el procesador necesita que estén alineados en memoria en relacion a su tamaño (un int ocupa 4 bytes y se debe cargar o guardar desde una direccion alineada a 4 bytes, si se usan punteros). Todo eso no debe ser problema desde BASIC pues el compilador lo hace por ti, pero a cambio, pierdes rendimiento y te limitas a un lenguaje que es como si dijéramos, para "torpes" y que se circunscribe a un circulo muy limitado y que tampoco tiene una distancia tan grande con C, salvo que en C, uno tiene que ser mas cuidadoso con lo que se hace (pero eso es solo cuestión de acostumbrarse. Es el precio de tener tanta libertad )
El caso es que C es algo así como una llave maestra y que si se quiere, se puede adaptar al uso de personas que se están iniciando en la programación o que no quieren complicarse demasiado la vida, pero quieren hacer cosas en Wii: si se me pide, puedo preparar lo necesario para manejar graficos 2D de forma sencilla y sonido acelerado en forma de una librería, crearos una plantilla para que sepais utilizar los PADs de forma clasica, la inicializacion de la libfat, alguna funcion para leer/escribir ficheros, si es necesario.
Por suerte os puedo proporcionar todo eso de forma que solo necesitaréis conocer el uso de unas pocas funciones para poder trabajar realmente. Las unicas condiciones que os pido serían:
1) Que no me lo pida uno solo, si no que sea mas gente. Por lo menos 10 personas que tengan las suficientes nociones de C como para poder hacer algo, por simple que sea
2) Que no vayais con la idea de hacer cosas muy complejas, si no pequeñas cosas para divertiros y aprender. Nada de humo en la cabeza, ni de videojuegos que requieran un equipo de personas detrás: sprites simples, simpáticos y cutres . Si podeis utilizar mi utilidad Spritegen, aunque solo sea para exportar finalmente los graficos, mejor. Recordad los tiempos del spectrum y maquinas así, y si no habíais nacido, da igual: esto es para aprender o para realizar pequeños videojuegos con el fin de divertirse. Cuanto mas corto sea el tiempo de realización de lo que hagais, mas facil es que se haga realidad. No trateis de llegar a metas inalcanzables, ni os disanimeis por que otros trabajos tienen mas nivel que el vuestro, que eso carece de importancia.
3) Que seais serios: no quiero gente que se ilusione rápidamente y que luego pase de todo, se rinda a las primeras de cambio o que me lo pida para "a ver si dentro de tres meses, me pongo con ello"
4) Que mostreis vuestros trabajos en publico, aunque sea un "hola mundo". Si podeis proporcionar el código fuente, mejor. Esto es muy importante para mí porque obviamente, me llevará tiempo y trabajo preparar todo: la única recompensa que obtengo es ver que os sirve para hacer algo. Mi interés es facilitar el acceso a gente que tiene dificultades para hacer algo que a mi me apasiona. Si no veo nada o solo veo que lo usan 3, pensaré que estoy perdiendo el tiempo
Y por mi parte ofrecería:
1) Un entorno común con todo preparado para utilizar graficos 2D, sonido y uso de pads, de forma que podais empezar a trabajar desde ya, con todo lo mas sencillo posible, con librerías actualizadas
2) Algunos ejemplos practicos comentados, para estudiarlos. Si veo interés, la cosa irá en aumento y poco a poco aprendereis a controlar cosas mas complejas: todo depende de como vuestro interés despierte el mío.
3) Soporte en vuestro idioma, lo cual no es poco. Mi experiencia de 24 años, en programación de varias máquinas, mi conocimiento sobre Wii... cosa que podré ejercer mejor si compartimos algunos métodos de trabajo.
"Esto es una oferta por tiempo limitado" con dicen en la TV, asi que si os interesa el tema, decidlo ya
ringfstork escribió:Oooh LA PURI !!!!!
Eso no es una librería .... es una WiiAPI megasencilla ..... Me pensaba que había que picar bastante más código del que indicas para hacer lo que dices en el post. Por ejemplo para hacer únicamente lo que tu haces con Screen_flip() pensaba que había que hacerlo parecido a como se hace en el PC (sin las APIs de Windows, claro) , leyendo los registros de control de la VGA para esperar el signal retrace, etc.
Me estás picando, Hermes, me estás picando ......
MMM, voy a tratar de hacer algo en estos dias... Por cierto, como hago para abrir un archivo png y dibujarlo en pantalla?..
Hermes escribió:A lo mejor no es el hilo mas apropiado para ello, ni tampoco las horas, pero de veras que me gustaría que hubiera mas gente que muestre su interés, antes de hacer nada
Para que sepais de lo que estamos hablando, en cuestión de graficos la cosa sería:
InitScreen(); // esto es todo lo que tendras que hacer para tener el video en funcionamiento
extern int SCR_WIDTH,SCR_HEIGHT; // aqui se devuelve el tamaño de la pantalla, si el alto es igual 480, refresca a 60Hz
Screen_flip(); // esta es la funcion que espera a que se dibuje todo, al sincronismo vertical y que cambia el buffer de la pantalla
CreateTexture(GXTexObj *texture, int format, void *mem, int width, int height, int repeat); /* esta funcion sirve para crear una textura en memoria: se puede utiliza esta memoria como superficie de dibujado, solo que hay que tener en cuenta que a la salida de esta funcion, la memoria estará organizada como tiles */
DrawSurface(GXTexObj *surface,int x,int y, int width, int height, int layer, u32 color); /* dibuja una textura como superficie en pantalla, haciendo uso de profundidad Z (parametro layer) y aplicando un color con componente alpha (permite translucidez o transparencia total) */
Solo con estas funciones, ya teneis todo lo necesario para inicializar el video, dibujar un porron de sprites acelerados por hardware o crear una especie de ventana donde dibujar a 'POKE' seco lo que os de la gana
El audio:
ASND_Init(); // inicializa el audio
ASND_Pause(0); // quita la pausa general: a partir de aqui podemos utilizar 16 voces aceleradas con el DSP
/* ejecuta la voz 1, monofonica PCM de 8 bits (con signo) a 8000 Hz con un retardo inicial de 20 ms y volumen izquierdo y derecho al maximo valor */
ASND_SetVoice(1, VOICE_MONO_8BIT, 8000, 20, audio2_raw, size_audio2_raw, 255, 255, NULL);
Ya está: esto es todo lo que tienes que hacer para ejecutar una de las 16 voces para efectos que tienes. Lo del retardo sirve para poder crear efectos de reverberacion o eco y por ejemplo, en este caso se usaba para potenciar el sonido de una Magnum en uno de los ejemplos de la ASNDLIB.
No parece tan dificil visto asi ¿verdad?
Puyover escribió:Joder a mi con eso me estás poniendo los dientes largos de mala manera xDDD
Desde luego como al final lo hagas en mi casa te monto un altar o algo
Salu2!!
Hermes escribió:Con estas sencillas herramientas, mas alguna utilidad grafica (como el Paint! DD) me las apaño bastante bien (si, mis utilidades quiza no rebosan una belleza gráfica apabullante, pero ¿acaso eso tiene tanta importancia? . Si me perdiera en detalles "superfluos" acabaría por no sacar nada )
ANTONIOND escribió:Hermes escribió:Con estas sencillas herramientas, mas alguna utilidad grafica (como el Paint! DD) me las apaño bastante bien (si, mis utilidades quiza no rebosan una belleza gráfica apabullante, pero ¿acaso eso tiene tanta importancia? . Si me perdiera en detalles "superfluos" acabaría por no sacar nada )
Ains... de cuantos apuros me habrá sacado a mi el paint...
ANTONIOND escribió:EDIT: Aunque ahora también uso bastante tu spritegen por el tema de la optimización de paletas
Hermes escribió:ANTONIOND escribió:Hermes escribió:Con estas sencillas herramientas, mas alguna utilidad grafica (como el Paint! DD) me las apaño bastante bien (si, mis utilidades quiza no rebosan una belleza gráfica apabullante, pero ¿acaso eso tiene tanta importancia? . Si me perdiera en detalles "superfluos" acabaría por no sacar nada )
Ains... de cuantos apuros me habrá sacado a mi el paint...
Ya te digo: yo tengo el Photo Paint y he probado el Photo Shop y para ciertos usos, prefiero el Paint. Hay veces que uso el copy /paste desde el Photo Paint al Paint para manipular algo, luego al reves para hacer reescalado y luego de ahí a Spritegen, ya adaptado
Danielc escribió:Hermes, si no es mucha molestia, me puedes explicar que es eso de big endian ? Eso tiene que ver con los colores? No se, me suena a que lo vi por entuwii que hablaban de que en wii se invertian no se que cosas de los colores, pero no me quedo muy claro....
Hermes escribió:
Ademas, teneis otras funciones de dibujo para lineas, cajas, cajas redondeadas, elipses con o sin relleno. Dibujado de caracteres en pantalla con tamaño redimensionable (usa una fuente interna de 16x32 pixeles). Y hay mas funciones para el sonido, etc.
manny2008 escribió:Hermes escribió:
Ademas, teneis otras funciones de dibujo para lineas, cajas, cajas redondeadas, elipses con o sin relleno. Dibujado de caracteres en pantalla con tamaño redimensionable (usa una fuente interna de 16x32 pixeles). Y hay mas funciones para el sonido, etc.
Hola Hermes, perdona que te moleste, estoy haciendo un juego con gráficos vectoriales (o poligonales.. según se vea), he probado con GRRLIB, y no me esta gustando mucho.. por lo que ve, aunque la última versión utiliza GX, lo hace todo en su propio frambuffer y solo utiliza GX al final.. si uso tu librería (screen.c) usando DrawLine me ira mas rápido?
Gracias,
Manny
GX_SetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA,GX_BL_INVSRCALPHA, GX_LO_CLEAR);
// activa la transparencia de texturas: los colores con alpha<8 no se dibujan
GX_SetAlphaCompare(GX_GEQUAL, 8, GX_AOP_AND, GX_ALWAYS, 0); // esto deja pasar solo valores entre 8 y 255
GX_SetNumTevStages(1);
GX_SetTevOrder(GX_TEVSTAGE0, GX_TEXCOORDNULL, GX_TEXMAP_NULL, GX_COLOR0A0);
GX_SetTevOp(GX_TEVSTAGE0, GX_PASSCLR);
GX_SetVtxDesc(GX_VA_TEX0, GX_NONE);
GX_ClearVtxDesc(); // borra los descriptores
GX_SetVtxDesc(GX_VA_POS, GX_DIRECT); // selecciona Posicion como directo
GX_SetVtxDesc(GX_VA_CLR0, GX_DIRECT); // selecciona Color como directo
GX_SetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ,GX_S16, 0); // formato de posicion S16 para X, Y ,Z
GX_SetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); // color RGBA8 para color0
GX_Begin(GX_LINES, GX_VTXFMT0, 2); // el 2 es el numero de vertices
GX_Position3s16(x1, y1, z1); // primer vertice (recuerda que x1,y1 y z1 son enteros con signo de 16 bits)
GX_Color1u32(color);
GX_Position3s16(x2, y2, z2); // segundo vertice
GX_Color1u32(color);
GX_End();