• Martes 30 de Abril de 2024, 00:29

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - ifmaster

Páginas: [1] 2 3
1
C/C++ / Re: Duda Del Preprocesador
« en: Martes 25 de Septiembre de 2007, 23:10 »
Okys muchas gracias :)

2
C/C++ / Duda Del Preprocesador
« en: Lunes 24 de Septiembre de 2007, 23:23 »
Hola a todos, tengo una pequeña duda al usar los comandos del preprocesador, lo que quiero hacer es incluir cierto codigo cuando la configuración de proyecto sea debug o release, pero no se si lo siguiente esta permitdo en c++:

Código: Text
  1. #ifdef _DEBUG || _RELEASE
  2.     //Codigo
  3. #endif
  4.  

Supongo que alguno pesanara que no hace falta que defina esto, pero es que tengo otras configuraciones en las que no quiero que se compile el codigo que incluyo aqui.

Muchas gracias de ante mano.

3
Programación de Videojuegos / Re: Ayuda Programacion Videojuegos(novato)
« en: Sábado 8 de Septiembre de 2007, 10:43 »
Si lo que quieres es hacer videojuegos "de verdad" (animo!) aprende C++, sera duro y deberas de decirarle muchas horas, pero hoy en dia la mayoria de juegos se programan en C++.
De todos modos para principiantes y a modo mucho mas resumido, Microsoft a creado la plataforma XNA que se puede programar con C#, un lenguaje menos denso que c, al igual que XNA es mucho mas facil y rapido que Direct X(ahunque tire de ella).

Ademas puedes obtener las herramientas de forma gratuita para hacer cosillas, pues descargar simplemente Visual C# express y XNA Express edition, ambos de las paguinas de microsoft.

Un saludo.

4
Programación de Videojuegos / Re: [ayuda] Necesito Opiniones Sobre Tge(torque)
« en: Sábado 8 de Septiembre de 2007, 10:38 »
Como bien a dicho Angel38, olvidate del Unreal Engine, pues es un motor profesional y puramente comercial, y oviamente no es instalar y tiene un unreal, pues su documentación es densa y extensa xD, eso si trae ejemplos, pero vamos, si tus conocimientos de programación son mas bien limitados, te aconsejo que empiezes con algo simple.
Tienes dos opciones:

Empezar mirandote una api grafica como Direct X o OpenGL, y asi entender como funciona un sistema 3D y como podrias diseñarte tu propio codigo para hacer un juego o proyecto. Yo te recomiendo que empiezes por aqui, ahunque sea mirando ejemplos y entendiendo las bases, a elegir: yo prefiero Direct X, pero por la cantidad de documentación y ejemplos que trae, pero vamos encontraras de todo para las dos.

Empezar usando un motor gratuito, si ya tienes conocimientos y lo que quieres es ahorrar tiempos y posiblemente obtener mejores resultados, esta es seguramente la mejor opción, personalmente recomiendo Ogre, pues tiene una gran comunidad y documentación a mansalva, a demas de cantidades ingentes de plugins y utilerias. Pero ten en cuenta que Ogre solo es un motor grafico, la logica, colisiones, sonido, etc... te las tienes que programar tu a pelo.

Bueno no se si te abre ayudado o te e liado mas, pero sinceramente, si estas empezando, empieza con ejemplos y demos muy pequeñas, y sobretodo con una api grafica pues en un motor al igual es mucha información para un newby.

Saludos.

5
C/C++ / Re: ¿la Pregunat De Oro?
« en: Miércoles 16 de Agosto de 2006, 01:16 »
Si te sirve de algo, yo empeze a muy temprana edad con el QBasic (programacion no estructurada) y al cabo de 10 años me pase al C/C++, fue un cambio brutal (Programacion estructurado, orientada a objetos, polimorfismo, herencia...) pero ahora veo lenguajes de script o incluso lenguajes orientados a objetos y por programacion estructurada y poco se alejan del C/C++, algunos detallitos en la gramatica y algunas sentencias especificas del lenguaje.
Al final y al cabo (segun mi opinion) los lenguajes se engloban en tipos, si dominas bien un lenguaje, no te costara mucho aprender los que esten dentro de ese mismo tipo.

6
C/C++ / Re: Como Converir Un Float A Una String?
« en: Miércoles 16 de Agosto de 2006, 01:11 »
Muchas gracias a todos por vuestra ayuda, supongo que no me queda otra que utilizar las cadenas de C :P, la verdad es que poca cosa uso de C, y trabajar con  STL es muy comodo, pero bueno, muchas gracias de nuevo.

7
C/C++ / Re: Como Converir Un Float A Una String?
« en: Martes 15 de Agosto de 2006, 18:57 »
E encontrado una forma, pero me parece un poco "tocha" para la tonteria que es, funciona, pero si alguien sabe de alguna funcion de la string o alguna funcion que me aga la conversion... mejor xD

Pongo aqui lo que e echo:
Tengo dos funciones:

std::string intToString(int number)
{

std::vector <char> number_digits;

do
{
int temp_number = number / 10;
number_digits.push_back(number % 10);

if (temp_number == 0)
break;

number /= 10;
}
while(true);

std::string number_string;

number_string.resize(number_digits.size());
   
int mark = number_digits.size() - 1;

for (size_t i = 0; i < number_digits.size(); i++)
{
number_string = number_digits[mark] + '0';
mark--;
}

return number_string;
}

Esta primera funcion ya te la tenia echa y convierte un entero a una string, aqui va la segunda y al que me quiero ahorrar de alguna forma:

std::string floatToString(float number, int decimals)
{
int first_number = 0;
int second_number = 0;
std::string number_string;

first_number = number / 1;
   
number_string = intToString(first_number);
int count = number_string.size();
number_string += '.';

int i = 0;
float current_number = number;
   
while (i < decimals)
{
current_number *= 10;
std::string s_temp = intToString(current_number);
number_string += s_temp[count];
count++;
i++;
}
   
return number_string;
}

Funcionan bien, pero me parecen muy tochas, espero que alguien pueda echarme una mano, gracias nuevamente.

8
C/C++ / Como Converir Un Float A Una String?
« en: Martes 15 de Agosto de 2006, 18:28 »
Hola, e estado buscando por ahi la forma de convertir un float a una string pero no lo consigo ><, lo que yo quiero es lo siguiente:

std::string s = "Float: ";
float f = 12.3456;

s += f;

Y que el resultado de la string imprimida por pantalla sea:

Float: 12.3456

Necesito hacerlo con la string de stl y ya e probado un monton de cosas pero no lo consigo, me podeis ayudar?
Gracias de antemano.
Salu2

9
DirectX / Problemas Con Direct Input
« en: Sábado 1 de Abril de 2006, 14:51 »
Hola, tengo problemas usando un "control pad" con direct Input, me crea los devices bien, pero a la hora de actualizar la aplicación peta xD.
Os dejo la clase que gestiona Direct Input y un archivo .h de utlierias.
La clase es un signelton, habria que usarla asi:

En el WinMain:

C_DIManager::getMe()->init(hWnd, hInst, false (bool exclusive_mode);

y el bucle de la aplicación hay que actualizarlo para ver el estado del game pad, es aqui donde me peta y no se porque.

C_DIManager::getMe()->update();

Por cierto, esta clase todavia lo estoy haciendo, de momento solo gestional el control pad, ahunque mas adelante le tengo que implementar el teclado tambien, pero todavia no esta.

Espero me puedan ayudar pues llevo mucho tiempo con esto y no tengo ni idea de porque me ocurre.
Un saludo y muchas gracias de antemano.

10
Programación de Videojuegos / Re: Que Es Un Archivo .x
« en: Sábado 1 de Abril de 2006, 14:34 »
Mmmmm, no havia leido todo el mensjae, oviamente puedes "animar" tu malla directamente desde programación (ya sea alterando las posiciones de los vertices, o "transformando" las matrizes de los huesos), pero eso no es muy buena idea, porque no tienes un resultado visual imedianto hasta que no compilas y ejecutas. Oviamente la mejor forma de diseñar y animar una malla es desde un editor 3D medianamente potente.

No se, por ejemplo, en un juego, el tipico personaje, k mueve la cabeza mirando al personaje mas cercano (o al player en caso de ser un NPC), la "roación" de la cabeza si la arias por programación, restringiendo el movimiento (para que no de toda la vuelta la cabeza xDD) y calculando la rotación en función de las posiciones.

Un saludo.

11
Programación de Videojuegos / Re: Que Es Un Archivo .x
« en: Sábado 1 de Abril de 2006, 14:30 »
Hola, un archivo .x es un archivo que contiene los datos de una malla 3D (de echo, los .x es el formato de directX para mallas), direct X conta con exportadores para 3DStudio Max (y creo que para Malla tambien) para que puedas exportar una malla a tu aplicación.
No e trabajado con el formato .x, pero supongo que debe de tener algun objeto que lea este archivo.
Al fin y al cabo internamente se crea una estructura para cada vertice de la malla, mas o menos asi:

struct VERTEXTYPE
{
float x, y, z;
DWORD color;
float u1, v1;
float u2, v2;
float nx, ny, nz;
}

Donde XYZ son la posición del vertice, color, es el color del vertice (con los componentes ARGB), u1 y v1 son las coordenadas de texturizado para el vertice, u2 y v2 es un segundo canal de texturizado para el vertice (por ejemplo por si quieres poner otra textura por encima con transparencias), y nx, ny e nz son los normales del vertice. Un vertice no necesita de todos estos datos, supongo que habra alguna forma de decirle a direct x cuantos datos quieres tomar. Ademas de estos, debes indicarle a DirectX los datos que as tomado mediante los flags FVF (Felixble Vertex Format).
En cuanto a la animación, creo que el formato .x no la soporta (ahunque no estoy seguro, nunca e usado este formato), y también depende de que tipo de animación quieras (por vertice o por huesos (animación esqueletal)), pero si la idea es la que tu dices, tu haces una malla en un editor como 3DS Max, luego animas esa malla, y luego exportas esos datos a un fichero .x.
Espero haberte sido de ayuda por lo menos a nivel teorico xD.
Un saludo.

12
C/C++ / Nuevamente Problemas Con Los Templates :(
« en: Sábado 18 de Marzo de 2006, 22:10 »
Hola, en el mensaje anterior pues que ya lo havia solucionado, de echo la clase complia y todo funciona correctamente, hasta que la instancio.
Cuando hago una instancia de esa clase, por ejemplo asi:

typedef CTemplate <int> template_int;

template_int *tint;

Cuando intento usar alguno de los metodos de la clase template, el compilador me da un error externo, me dice que es culpa del metodo que estoy llamando y que se usa en un metodo de la clase que instanció la clase del template (k lio :S)

En cambio si quito el .cpp y pongo todas las definiciones en el .h, la aplicación funciona perfectamente.
E mirado por la red y e visto un pequeño tutorial al respecto en el que ponia que cuando se usa una clase con templates, las definiciones de los metodos deben de estar en el mismo .h, sin embargo explican como definir un .cpp de una clase con template y ponen ejemplos.

A ver si alguien ya se a encontrado con esto antes y me puede echar una mano... porque llevo un monton de tiempo con esto y no se porque me ocurre.
Muchas gracias de antemano.

13
C/C++ / Re: Problemas Con Los Templater
« en: Sábado 18 de Marzo de 2006, 14:16 »
Hola, perdon ya encontre la respuesta, la pongo aqui por si a alguien le ocrrue lo mismo.

En el archivo .cpp la definición de los metodos (funciones miembro) debe hacerse asi

template < class T > CTemplate<T>::CTemplate()
{

}

y asi con todas las definiciones de metodos de la clase.

Un saludo.

14
C/C++ / Problemas Con Los Templater
« en: Sábado 18 de Marzo de 2006, 14:04 »
Hola, quiero hacer una clase con un Template y tengo un problema, si ago la clase solo en un archivo .h, me funciona todo bien, pero si intento que esa clase tenga un .cpp, me dan cuatro errores (el uso de plantillas de clase requiere una lista de argumentos de plantilla, los cuatro errores son iguales y son dos para el constructor y dos para el destructor)

Lo que e echo es lo siguiente:

Archivo .h:

#ifndef __TEMPLATE__INC__
#define __TEMPLATE__INC__

template < class T >
class CTemplate
{
private:
public:
CTemplate();
~CTemplate();
}

#endif

Archivo .cpp

#include "CTemplate.h"

CTemplate::CTemplate()
{

}

CTemplate::~CTemplate()
{

}

Si elimino el cpp, entonces no me da ningun error, pero yo quiero tener el .h y el .cpp. No se si alguien sabe porque me pasa esto y si me puede ayudar.

Muchas gracias.

15
Visual C++ / Re: Visual C++ .net. Opcion "add" Class View No Sale
« en: Martes 21 de Febrero de 2006, 17:57 »
Hola, yo tambien uso el .net y e tenido los mismos problemas, casi todos los tutoriales usan los ejemplos de Visual 6 y constantemente dicen usa class wizard y ale xDD
El .net (por lo menos el 2003 k es el k yo uso) tiene ciertos asistentes, por ejemplo si tu quieres agregar una clase, selecciona el proyecto con el botón derecho (o abre el menu proyecto) y selecciona añadir clase, de esta forma puedes añadir distintos tipos de clases (tambien puedes añadir clases MFC e indicalres de k clase quieres k derive) y el asistente te generara la clase automaticamente.
Tambien puedes añadir funciones y variables miembro a las clases... basicamente todos los asistentes funcionan igual, ahunque no e probado nunca el class wizard de Visual 6, x lo que e leido funciona bastante mejor a los asistentes del .net.

Espero averte sido de ayuda :P

16
Visual C++ / Re: Numero Aleatorio
« en: Miércoles 8 de Febrero de 2006, 21:31 »
Hola solo me gustaria añadir, que el time(NULL) devuelve en tiempo en segundos, por lo que si haces un for para generar varios numeros aleatorios, es probable que todos sean los mismos (por que en el srand, la semilla es el mismo segundo), en cambio si usas la función timeGetTime() (debes incluir windows.h creo) dentro del srand( srand(timeGetTime()) ) el tiempo te es devuelto en milisegundos y el valor "random" sera mas creible.
Tambien me gustaria decir que este metodo de conseguir numeros aleatorios es bastante lento y si se necesita que la aplicación sea lo mas rapida posible (como es un videojuego) es mejor crearse arrays con numeros aleatorios previamente creados (ya sea a mano o usando lo anterior solo una vez al construir el objeto) y luego tener una variable que te indique la posicion del array en la que te encuentras y al pedir un numero aleatorio, devuelves el valor del array con la posición del entero, y sumas uno a esa variable, este metodo es mas fastidioso pero es mas rapido.
Espero a ver sido de ayuda, salu2.

17
Visual C++ / Ayuda Con La Programación Para Windows
« en: Miércoles 8 de Febrero de 2006, 13:35 »
Hola, soy nuevo programando bajo widnows y estoy siguiendo un libro (la biblia de Visual C++ 6), y esoty tratando de hacer alguna aplicación usando MFC, uso el asistente para crear una aplicación de una sola ventana y todo funciona bien, pero cuando incluyo un nuevo elemento a los menus y los registro en los ficheros de script, no se como hacer para que cuando se pulse esa opción se ejecute codigo de una clase mia o de algun metodo, tampoco entiendo muy bien la estructuración que se sigue en este tipo de aplicaciónes, pues yo solo havia programado aplicaciones de consola y videojuegos con direct X usando la API de Windows limitandome a crear una ventana y poco mas.
Alguien me puede echar una mano con esto o si sabeis de alguna pagina con algun tutorial, pues lo agradeceria.
Saludos.

18
C/C++ / Re: Manejo Vectores
« en: Sábado 4 de Junio de 2005, 17:51 »
Esta muy aprender a utilizar los arrays y toda la sintaxys basica del lenjuague, pero yo te recomiendo que uses vectores de STL.
Usando vectores de stl copiar un vector a otro es tan sencillo como:
std::vector <int> int_vector; //Creamos un vector de enteros
std::vector <int> int_vector_copy; //Creamos otro vector de enteros

ahora puedes ir insertando numeros en el vector de varias formas, por ejemplo:
int_vector.push_back(5);
esto inserta el entero 5 en la posicion 0 del vector, para usarlo, simplemente:
int cinco = int_vector[0];

Lo bueno de los vectores es que se pueden redimensionar en tiempo real y no tienen porque tener un tamaño fijo, ahunque tb los puedes redimensionar:

int_vector.resize(5);

Esto te permite que tu vector tenga 5 posicones.

Y para igual un vector a otro es tan facil como:

int_vector_copy = int_vector;

Y el vector al que transeriras los datos ya tendra las mismas dimensiones que el vector original.

19
DirectX / Propuesta Para Hacer Un Tutorial
« en: Sábado 4 de Junio de 2005, 17:44 »
Hace mucho tiempo que no pasava por este foro, y veo que hay gente que tiene problemas a la hora de exportar mallas con el formato .x de directX.
Yo nunca e usado este formato pero cuando empeze, empeze usando el formato .ASE, max puede exportar mallas .ASE sin necesidad de tener plugins externos a max :P
Entonces si os interesa, os puede escribir un tutorial de como funciona el formato .ASE y de como importar y pintar mallas en formato .ASE.

20
DirectX / Re: Mis Objetos Directx Se Ven Mal
« en: Sábado 4 de Junio de 2005, 17:41 »
Eso de activar el culling es una buena idea, activa el Counter Clock Wise (CCW).
Yo nunca e renderizado mallas con formato .x pero x lo k tengo entendido son 1 poco coñazo, si eres nuevo en directX te recomendaria que usaras el formato .ASE, ademas Max exporta directamente a este formato sin necesidad de plugins.
Te sugiero lo mismo que JuanK, usa direct X 9.0 (o superior), Visual Studio .net y sobretodo el lenguaje de programación C++

21
DirectX / Re: Exportar .x Con El 3dmax 5
« en: Sábado 4 de Junio de 2005, 17:35 »
Para poder exportar mallas con extension .x desde Max 5 (o otras versiones ahunque no sabria asegurarte cuales de ellas) debes usar un plugin de direct x para max (creo que antes debes compilarlo), tiene que estar en alguna de las carpetas de direct x.
Una vez tengas esto debes meter esta dll en la carpeta de plugins de 3D Max. Al abrir max, este reconocera automaticamente la dll y la cargara, ahora simplemente seleciona la malla y le das a file>export
y en la ventana que te se abrira, te vas a la ventana en cascada para seleccionar el formato y seleccionas el .x
Yo nunca e usado este formato, pero para empezar si no tienes mucha experiencia te recomiendo que uses el formato .ASE, si no tienes conocimientos sobre este formato o quieres que te ayude a hacer un importador de este formato... simplemente contesta este post :P

22
C/C++ / Re: Dudas Con Visual C++
« en: Miércoles 8 de Septiembre de 2004, 21:59 »
Ok muchas gracias por vuestra ayuda, una ultima cosa, me as dicho que e incluido varias veces la libreria iostream.h, entonces esta libreria supongo k solo la tengo que incluir en un archivo, pero cual de ellos? en otra galeria que yo creo, por ejemplo la operaciones.h o en el archivo principal calcu.h?
De nuevo gracias por vuestra ayuda :)

23
C/C++ / Re: Dudas Con Visual C++
« en: Miércoles 8 de Septiembre de 2004, 19:58 »
Sorry, no se que son los tag de codigo :P pero os incluyo los archivos en un zip de todas formas voy a probar lo que Ruben me a dicho. Muchas gracias por vuestra ayuda   :kicking:

24
C/C++ / Re: Dudas Con Visual C++
« en: Martes 7 de Septiembre de 2004, 22:50 »
Otra duda, e echo una calculadora usando tres archivos de la forma anterior para practicar, pero no me funciona, os pongo el codigo:  :comp:
archvio operaciones.h
Código: Text
  1.  
  2. #include &#60;iostream.h&#62;
  3.  
  4. int sum(int, int);
  5. int res(int, int);
  6. int mul(int, int);
  7. int div(int, int);
  8. int module(int, int);
  9. void error(void);
  10.  
  11.  

archivo operaciones.cpp
Código: Text
  1.  
  2. #include &#60;iostream.h&#62;
  3. #include &#34;operaciones.h&#34;
  4.  
  5. int sum(int a, int B)
  6. {
  7.   return a + b;
  8. }
  9.  
  10. int res(int a, int B)
  11. {
  12.   return a - b;
  13. }
  14.  
  15. int mul(int a, int B)
  16. {
  17.   return a * b;
  18. }
  19.  
  20. int div(int a, int B)
  21. {
  22.   return a / b;
  23. }
  24.  
  25. int module(int a, int B)
  26. {
  27.   return a % b;
  28. }
  29.  
  30. void error(void)
  31. {
  32.   cerr &#60;&#60; &#34;La operacion seleccionada no esta disponible&#34; &#60;&#60; endl;
  33. }
  34.  
  35.  
archivo calcu.cpp
Código: Text
  1.  
  2. #include &#60;iostream.h&#62;
  3. #include &#34;operaciones.h&#34;
  4.  
  5. int main()
  6. {
  7.   int a, b;
  8.   short opcion;
  9.  
  10.   cout &#60;&#60; &#34;Introduce el primer numero: &#34;;
  11.   cin &#62;&#62; a;
  12.   cout &#60;&#60; &#34;Introduce el segundo numero: &#34;;
  13.   cin &#62;&#62; n;
  14.   cout &#60;&#60; &#34;Selecciona la operacion:&#34; &#60;&#60; endl;
  15.   cout &#60;&#60; &#34;1.Suma&#34; &#60;&#60; endl &#60;&#60; &#34;2.Suma&#34; &#60;&#60; endl &#60;&#60; &#34;3.Multiplicacion&#34; &#60;&#60; endl   &#60;&#60; &#34;4.Division&#34; &#60;&#60; endl &#60;&#60; &#34;5.Modulo&#34; &#60;&#60; endl
  16. cin &#62;&#62; opcion
  17.  
  18.   switch (opcion)
  19.   case 1:
  20.     sum(a, B);
  21.   break;
  22.   case 2:
  23.     res(a, B);
  24.   break;
  25.   case 3:
  26.     mul(a, B);
  27.   break;
  28.   case 4:
  29.     div(a, B);
  30.   break;
  31.   case 5:
  32.     module(a, B);
  33.   break;
  34.   default:
  35.     erorr();
  36.   break;
  37.  
  38.   return 0;
  39. }
  40.  
  41.  

Tras terminar cada uno de los archivos los e añadido al proyecto pulsando el boton de compilar (supongo que asi se unen los archivos para que se relacionen, es que como e dicho antes, no se muy bien como va esto de usar distintos archivos para una misma aplicacion :P)
Pero cuando le doi a ejecutar me salen 11 errores del tipo ilegal case o ilegal break use :P :hitcomp:
Alguien me pude ayudar, a cuando compilo los archivos .cpp el icono esta bien, pero el icono del archivo .h, es un icono de archivo de texto, e echo algo mal en ese archivo?
y bueno, e leido acerca de las instrucciones de preprocesador algo acerca de una instruccion ifndef y endif creo que era, que servia para no copiar las librerias muchas veces o para ponerla solo una vez (por ejemplo la iostream.h), jeje k lio :P, alguien me pude aclarar un poco todo esto?
Muchas  :gracias:  :hitcomp:  :hitcomp:

25
C/C++ / Re: Dudas Con Visual C++
« en: Martes 7 de Septiembre de 2004, 21:37 »
Hola a todos, a ver si algun alma caritativa se apiada de mi y me pude contestar esto, tengo un ejemplo de un libro que son tres archivos, hace poco que uso Visual Studio y todavia no se muy bien como va y tampoco se programar mucho :P, siempre e echo programillas de un solo archivo y lo ago con nuevo y entonces le doy a la primera pestaña "Files" y uso el Source C++ File, probe una vez a usar un proyecto, pero no se muy bien como va :P
Bueno tengo que hacer estos tres archivos:
dicionario.h -> contiene los prototipos de funciones
dicionario.c -> contiene las definiciones de las funciones del archivo anterior
main.c -> contiene el programa
Alguien me puede decir que tipo de archivos tengo que crear?

Gracias por todo  :kicking:

Páginas: [1] 2 3