elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: [1] 2 3 4 5 6 7 8
1  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Sobre la sección de programación C++ en: 6 Mayo 2014, 18:42 pm
Hola a todos

Yo he sufrido en alguna ocasión el cierre de varios temas por parte de Eternal Idol, y si bien me a sentado mal, como nos sucede a todos o la gran mayoría de los que estamos en este foro, he de decir que no es culpa de Eternal Idol, no hay que pagarlo con el, de lo único que tendría culpa seria de ser demasiado estricto a la hora de aplicar las normas del foro, pero todos aceptamos esas normas cuando posteamos en este foro.

Por otro lado dichas normas deberían de revisarse y modificarse, pues si de un tema hay mil mensajes eso no significa que dicho tema este mas que solucionado y haya que cerrarlo sino que ese tema es un tema interesante y habría que motivar incluso mas la participación.

Yo echo en falta quizás un poco mas de libertad a la hora de crear temas interesantes que por no ser una pregunta o por incluir código completo son cerrados.

Un saludo
Kaltorak.

2  Programación / Programación C/C++ / Re: SERIES DE TAYLOR C++ en: 12 Septiembre 2013, 03:53 am
Hola alguien me puede ayudar con la siguiente serie de taylor porfavor, sin−1  x =x+1/2.x^3/3+1/2.3/4.x^5/5+1/2.3/4.5/6.x^7/7.... (el punto significa multiplicacion) lo que necesto es un programa que la resuelva incluyendo recursividad. Muchas gracias de antemano y espero respuestas.

Nos encantaría ayudarte, pero no hacerte la tarea, si subes el código que llevas hasta el momento y nos dices donde tienes el problema, estaríamos encantados de ayudarte  ;)

Un saludo
Kaltorak.
3  Programación / Programación C/C++ / Re: Librería de apoyo para la creación de videojuegos SDL/OpenGL en: 12 Septiembre 2013, 03:43 am
Como bien te a dicho amchacon poner NULL o poner 0 es exactamente lo mismo.

Una opción es poner -1 y así decirle al programa que no lo use poniendo este código.

Código
  1.    void Entity::setCoords(int X, int Y)
  2.    {
  3.     if (X >= NULL) box.x = X;
  4.     if (Y >= NULL) box.y = Y;
  5.    }
  6.  

O crear 2 nuevas funciones para definir cada una de las coordenadas por separado así.

Código
  1.    void Entity::setCoordX(int X)
  2.    {
  3.     box.x = X;
  4.    }
  5.  

Código
  1.    void Entity::setCoordY(int Y)
  2.    {
  3.     box.y = Y;
  4.    }
  5.  

Una comprobación que incluiría también en estas funciones, es que la coordenada introducida no exceda los limites de la pantalla, para evitar futuros errores a la hora de visualizar los objetos.

Y por ultimo y no con ello menos importante  ;D

Aquí te dejo un código para que veas como hacer un cuadro con dos triángulos en Opengl, tanto con color, como con texturas  ;)

Código
  1. #ifdef __cplusplus
  2.    #include <cstdlib>
  3. #else
  4.    #include <stdlib.h>
  5. #endif
  6.  
  7. #include <SDL/SDL.h>
  8. #include <SDL/SDL_opengl.h>
  9. #include <SDL/SDL_Image.h>
  10.  
  11.  
  12. int main ( int argc, char** argv )
  13. {
  14.  
  15. //Definimos las variable box y box1 del tipo SDL_Rect
  16. SDL_Rect box,box1;
  17.  
  18. //Inicializamos los valores de box para posicionarlo en las posicion 100,100 y le damos un ancho y un alto de 100.
  19. box.x = 100;
  20. box.y = 100;
  21. box.w = 100;
  22. box.h = 100;
  23.  
  24. /*Inicializamos los valores de box1 para posicionarlo en las posicion 300,200
  25.    y le damos el ancho y un alto de la imagen que vamos a cargar como textura.*/
  26. box1.x = 300;
  27. box1.y = 200;
  28. box1.w = 34;
  29. box1.h = 26;
  30.  
  31. //Inicializamos el modo de video de las SDL.
  32. SDL_Init(SDL_INIT_VIDEO);
  33.  
  34. //Creamos la Surface principal del juego, la que se va a mostrar en pantalla.
  35. SDL_SetVideoMode(640, 480, 32, SDL_OPENGL | SDL_GL_DOUBLEBUFFER | SDL_HWSURFACE | SDL_HWACCEL );
  36.  
  37. //Cambiamos el titulo de la ventana por "Cuadro Hecho con triangulos".
  38. SDL_WM_SetCaption ("Cuadro Hecho con triangulos", NULL);
  39.  
  40. //Activamos el modo Interpolado de Opengl
  41. glShadeModel(GL_SMOOTH);
  42. //cargamos la matriz de proyección en modo ortográfico al solo usar 2D
  43. glOrtho(0, 640, 480, 0, -1, 1);
  44.  
  45. //Carmos la imagen que vamos a usar como textura.
  46. SDL_Surface *Image = IMG_Load("conejo.png");
  47.  
  48. //Definimos la variable Textura que contendra la ID de la textura.
  49. GLuint Textura;
  50.  
  51. //Generamos el ID de la Textura.
  52. glGenTextures(1, &Textura);
  53. //Referenciamos la TExtura para que todas las operaciones posteriores afecten a esa textura.
  54. glBindTexture(GL_TEXTURE_2D, Textura);
  55. //Aplicamos los filtros a la textura para que se escale en funcion de la distancia.
  56. glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  57. glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  58. //Creamos la Textura.
  59. glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, Image->w, Image->h, 0, GL_RGB, GL_UNSIGNED_BYTE, Image->pixels);
  60.  
  61. //Liberamos la imagen cargada por que ya no la vamos a usar mas.
  62. SDL_FreeSurface(Image);
  63.  
  64.    bool done = false;
  65.    //Bucle principal
  66.    while (!done)
  67.    {
  68.        /*Comprobamos los eventos del sistema para comprobar si la ventana a sido cerrada o si se
  69.           pulsa escape en caso de que asi sea ponemos El valor true en done para que finalice la
  70.           ejecucion del programa.*/
  71.        SDL_Event event;
  72.        while (SDL_PollEvent(&event))
  73.        {
  74.            switch (event.type)
  75.            {
  76.            case SDL_QUIT:
  77.                done = true;
  78.                break;
  79.  
  80.            case SDL_KEYDOWN:
  81.                {
  82.                    if (event.key.keysym.sym == SDLK_ESCAPE)
  83.                        done = true;
  84.                    break;
  85.                }
  86.            }
  87.        }
  88.  
  89. ////////////Primer cuadro sin texturizar pintado de verde.///////////////
  90.  
  91.  //Seleccionamos el color verde para Pintar el primer cuadro.
  92.  glColor3ub(0,255,0);
  93.  //Comenzamos a pintar el primer cuadro usando 2 triangulos.
  94.  glBegin(GL_TRIANGLES);
  95.  //Primer triangulo
  96.  glVertex2i(box.x, box.y);
  97.  glVertex2i(box.x, box.y + box.h);
  98.  glVertex2i(box.x + box.w, box.y);
  99.  
  100.  //Segundo Triangulo
  101.  glVertex2i(box.x, box.y + box.h);
  102.  glVertex2i(box.x + box.w, box.y);
  103.  glVertex2i(box.x + box.w, box.y + box.h);
  104.  glEnd();
  105.  
  106. ////////////Fin del primer cuadro sin texturizar.///////////////
  107.  
  108.  
  109. //////////////////Segundo cuadro aplicándole texturas./////////////
  110.  
  111.  //Especificamos el modo de aplicar la textura sobre el cuadro para que no le afecte el color del cuadro.
  112.  glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL );
  113.  
  114.  //Activamos la Textura para usarla en el cuadro
  115.  glEnable(GL_TEXTURE_2D);
  116.  //Comenzamos a pintar el segundo cuadro usando 2 triangulos.
  117.  glBegin(GL_TRIANGLES);
  118.  //Primer Triangulo
  119.  glTexCoord2i(0,0);glVertex2i(box1.x, box1.y);
  120.  glTexCoord2i(0,1);glVertex2i(box1.x, box1.y + box1.h);
  121.  glTexCoord2i(1,0);glVertex2i(box1.x + box1.w, box1.y);
  122.  //Segundo Triangulo
  123.  glTexCoord2i(0,1);glVertex2i(box1.x, box1.y + box1.h);
  124.  glTexCoord2i(1,0);glVertex2i(box1.x + box1.w, box1.y);
  125.  glTexCoord2i(1,1);glVertex2i(box1.x + box1.w, box1.y + box1.h);
  126.  glEnd();
  127.  //Desactivamos la textura.
  128.  glDisable(GL_TEXTURE_2D);
  129.  
  130.  ////////////////////Fin del Segundo cuadro usando texturas./////////////////////////
  131.  
  132.  //Mostramos el buffer en pantalla
  133.  SDL_GL_SwapBuffers();
  134.  
  135.    }
  136.  
  137. //Devolvemos 0 por que todo a salido bien.
  138. return 0;
  139. }
  140.  

Se que faltan muchas cosas, pero como era solo para que vieras como funcionaba lo de los dos triángulos no me he complicado mucho la vida  ;D

Aquí te lo dejo el código fuente, esta echo en Windows por que no puedo usar Opengl en Linux, por que lo tengo virtualizado con VirtualBox y no funciona  :-(

http://ultrashare.net/hosting/fl/38544fe607

Un saludo
Kaltorak.
4  Programación / Programación C/C++ / Re: Librería de apoyo para la creación de videojuegos SDL/OpenGL en: 11 Septiembre 2013, 17:01 pm
Hola SrCooper

he localizado un error a parte del que mencionas en el post mira.

Código
  1. void Entity::setCoords(int X, int Y)
  2. {
  3.  if (X != NULL) box.x = X;
  4.  if (X != NULL) box.y = Y;
  5. }

Aquí le dices que compruebe si X es distinto de 0 y le dices que ponga X, pero debajo no deberías comprobar si Y es 0 en vez de comprobar nuevamente X??

Aparte por que motivo no se puede colocar en la posición 0,0 ??

Esto no es un error pero si un mal habito de programación en opengl

Código
  1.  glBegin(GL_QUADS);
  2.  glTexCoord2i(0,0); glVertex2i(box.x, box.y);
  3.  glTexCoord2i(1,0); glVertex2i(box.x + box.w, box.y);
  4.  glTexCoord2i(1,1); glVertex2i(box.x + box.w, box.y + box.h);
  5.  glTexCoord2i(0,1); glVertex2i(box.x, box.y + box.h);
  6.  glEnd();

El motivo es que las tarjetas 3d mueven triángulos y no cuadrados, así que cuando le pasamos esto la tarjeta lo que hace es descomponer el cuadrado en 2 triángulos, con el gasto de recursos que ello con lleva, que si bien hoy en día es ínfimo, lo ideal para optimizar la librería seria que le pasaras los 2 triángulos en vez del cuadrado.

Haber si tengo un ratito esta noche y lo miro todo mas detenidamente  ;)

Un saludo
Kaltorak.
5  Media / Diseño Gráfico / Graficos para el mini juego hackear tiendas de saint row 4 en: 27 Agosto 2013, 02:22 am
Hola a todos

Me gustaría portar el minijuego de hackear las tiendas del saint row 4 a pc, alguno me ayuda con los gráficos son muy simples, no os llevaran mucho tiempo, los haria yo pero soy muy negado con el photoshop y demás programas de dibujo.

Aquí os pongo una captura de de dicho minijuego .


Un saludo
Kaltorak.
6  Programación / Programación C/C++ / Re: A TODOS LOS PROGRAMADORES EN "C" GENTE UNA CONSULTA PARA LOS QUE SABEN!!! en: 26 Agosto 2013, 18:02 pm
Hola chino_r

Lo primero, por favor no uses mayúsculas en los títulos de los post eso es como si nos estuvieras gritando  :rolleyes:

Yo si quieres te puedo echar una mano con los problemas que te surjan a la hora de programar en C/C++,lo primero es hacerte con un buen libro de programación en C++, yo por mi parte te aconsejo el libro de  Fco.Javier Ceballos "C/C++ Curso de programacion" es muy bueno y esta lleno de ejemplos y ejercicios para que desde el primer día empieces a programar en C/C++.

De forma gratuita te recomiendo que te pases por estas paginas


http://minidosis.org/C++/

en donde encontraras unos cursos muy buenos de programación en C/C++.

Un saludo
Kaltorak
7  Programación / Programación C/C++ / Re: ¿Que editor de codigo recomiendan? en: 26 Agosto 2013, 08:25 am
Hola Xedrox

En cuanto a un editor de textos bueno para programar, yo te recomiendo el ultraedit, yo lo he usado mucho cuando programaba para psp y es francamente espectacular y muy configurable, es de pago pero le da mil vueltas a los de mas y siempre puedes buscarlo en google  ;)

IDE para C/C++ voy a ser maltratado por decir esto pero soy un ferviente admirador de Dev-C++, pero no la versión abandonada, si no la versión de Orwell que es compatible con windows 8.

También he usado CodeBlocks y si bien no me disgusta no acabo de cogerle el punto.

Como todo cada uno se hace a usar un determinado programa y ese es el mejor, yo te aconsejo que pruebes los que te hemos dicho y te quedes con el que mas te guste, da igual lo que te digan por que siempre llegara alguno diciéndote de este es mejor y este no me gusta y encima mira he escrito un post poniéndolo verde,Etc.. son tonterías de niños el mejor IDE o Editor de textos es con el que mejor te apañes  ;)

Un saludo
Kaltorak

8  Programación / Programación C/C++ / Re: (MiProyecto) Librería para desarrollar en C++ Linux en: 22 Agosto 2013, 17:51 pm
Hola juan.valadez

Tiene muy buena pinta haber si saco un ratito luego  y la pruebo, pero por lo que he visto en los vídeos esta genial ;-)

un saludo
kaltorak.
9  Programación / Programación C/C++ / Re: estrucutras y funciones.... en: 22 Agosto 2013, 16:29 pm
Hola ramona98

Tu código tiene varios errores.

El primero a la hora de declarar el numero de elementos que tendrá el array "misfechas" pues has puesto que tendrá un solo elemento y como quieres que contenga dos elementos, tienes que poner 2, pues si pones uno el programa puede funcionar pero dará una error y se cerrara al perderse en la memoria.

Asi es como lo tienes puesto tu:

Código
  1. struct horayfecha misfechas[1];

y así es como tiene que ser:

Código
  1. struct horayfecha misfechas[2];

Otro error es a la hora de asignar valor a los arrays contenidos en la estructura.

Citar
 
Código
  1. misfechas[0].timz = { 23, 30};
  2.   misfechas[0].data = { 1, 7, 1998 };
  3.  
  4.   misfechas[1].timz = { 22, 32};
  5.   misfechas[1].data = { 2, 7, 1997 };

Este tipo de asignación de datos a aun array solo se pude hacer cuando es declarado no una vez que ha sido declarado, mira te pongo un ejemplo para que veas lo que digo.

Código
  1. int Tiempo[] = {23,30}; //Valido.

Código
  1. int Tiempo[2];
  2.  
  3. Tiempo[] = {23,30}; // No valido
  4.  
  5. //La forma correcta de hacerlo seria esta.
  6.  
  7. Tiempo[0] = 23;
  8. Tiempo[1] = 30;

Otro error que tiene tu código es cuando declaras la función, lo haces pidiendo que como argumentos se introduzcan 4 arrays de tipo " int", pero luego cuando llamas a la función le pasas 2 estructuras en vez de los 4 arrays de tipo " int" que espera recibir.

Código
  1. int tiemporeal(int tim1[1], int dat1[2], int tim2[1], int dat2[2])

Código
  1. tiemporeal(misfechas[0], misfechas[1])

La forma correcta de llamar a la función que has creado seria así.

Código
  1. tiemporeal(misfechas[0].timz,misfechas[0].data,misfechas[1].timz,misfechas[1].data)

Aquí te pongo tu código modificado y operativo  ;)

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5.  
  6.  
  7. // Exercise 12-2: Design a structure to store time and date. Write a function to find
  8. // the difference between two times in minutes.
  9.  
  10. int tiemporeal(int tim1[], int dat1[], int tim2[], int dat2[]) {
  11.    // Idea= calcular minutos desde fecha 0 para ambas fechas
  12.    // calcular diferencia entre ellas y return valor absoluto
  13.    int difmin=2; // valor dado para probar
  14.  
  15.    return difmin;
  16. }
  17.  
  18. int main(void)
  19. {
  20.    int i;
  21.  
  22.   struct horayfecha {
  23.    int timz[2]; // Hora, minutos
  24.    int data[3];  // dia, mes y ano en digitos
  25.    };
  26.  
  27.   struct horayfecha misfechas[2];
  28.  
  29.   misfechas[0].timz[0] = 23;
  30.   misfechas[0].timz[1] = 30;
  31.   misfechas[0].data[0] = 1;
  32.   misfechas[0].data[1] = 7;
  33.   misfechas[0].data[2] = 1988;
  34.  
  35.   misfechas[1].timz[0] = 22;
  36.   misfechas[1].timz[1] = 32;
  37.   misfechas[1].data[0] = 2;
  38.   misfechas[1].data[1] = 7;
  39.   misfechas[1].data[2] = 1997;
  40.  
  41.  
  42. printf ("numero de minutos entre ambas fechas es %d\n", tiemporeal(misfechas[0].timz,misfechas[0].data,misfechas[1].timz,misfechas[1].data) );
  43.  
  44.  
  45. return (0);
  46. }

Un saludo
Kaltorak.
10  Programación / Programación C/C++ / Re: [Ayuda] Estructuras en: 22 Agosto 2013, 07:53 am
Ups si fallo mio lo siento, cuando puse tu ejemplo no me di cuenta de que estaba mal puesto  :-[

Ya lo he corregido

Un saludo
kaltorak.

Páginas: [1] 2 3 4 5 6 7 8
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines