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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: 1 ... 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 [27] 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 ... 46
261  Programación / Programación C/C++ / Re: Aprender a programar animaciones 2D en: 10 Enero 2014, 05:49 am
Open gl no te puedo dar una respuesta tan técnica, pero te lo explico con mis palabras lo poco que se XD
Es lo mismo que directX pero libre, o sea que sirve para crear juegos 3d, o también se puede dar la impresión de ser un 2d aun que realmente sea un 3d al que ves solo por un lado.
Imaginas que tienes un cubo tridimensional, pero si solo le miras desde un lado pues solo le ves una cara.

Eso es lo que se encarga OpenGL, de las 3d.
¿Por que OpenGL y no directX?Por que DirectX es una librería exclusiva de windows a la que no vas a ver en otras plataformas como linux o diria que en ninguna otra.
Sin embargo OpenGL esta en una infinidad de dispositivos como móviles, windows, tabletas, Linux....
Realmente vas a cubrir una área mas amplia con OpenGL que con DirectX.
Su nombre traducido es algo como: librería de gráficos libre.
No te va hacer falta para un juego 2d, pero solo que sepas que hay esa posibilidad, y eso es lo que esta el juego: http://www.secretmaryo.org/

PD:Aqui un video simples para que veas que se puede usar 3d con opengl en sdl
http://www.youtube.com/watch?v=a3MACw5hB2Q
Otro juego en sdl copia de mario XD:
http://www.youtube.com/watch?v=BJXm_T_5g7c
También hay la librería Allegro que tienes muy buenos vídeos en este canal:
http://www.youtube.com/user/deividcoptero/videos?view=1&flow=list
Es bueno ver esos vídeos aun que no te interese la librería por que a la hora de resolver colisiones y otros problemas pues puedes aprender algo de esos videos.
Para un juego 2d quizá te interese mirar esto también:
http://en.wikipedia.org/wiki/Parallax_scrolling
Mire el fondo el efecto que tiene sobre las montañas:
262  Programación / Programación C/C++ / Re: Aprender a programar animaciones 2D en: 10 Enero 2014, 03:51 am
Que yo sepa sfml puedes crear un juego completo.
No la conozco bien pero creo que es como sdl y esta orientada a objetos.
Yo ando aprendiendo SDL que esta en su versión 2.0.
Es una librería que te permite no solo manejar el gráfico sino también entrada y salida( teclado, joystick, ratón...), aparte también maneja sonido y algo de red también.
Es bastante completa, puedes hasta hacerlo en 3d si sabes como hacerlo. XD
Creo que SFML hace lo mismo, yo no puedo comparar por que solo conozco SDL y me parece muy muy potente, creo que el limite es mi capacidad. XD
Prueba las las 2, prueba cargar imágenes con ambas o lo que sea.
 Esta pagina hace un repaso por lo que es la programación 2d sin referirse a ninguna librería en concreto, la librería es cuestión de gusto y necesidad.
Unas te hacen mas cómodo otras son mas difíciles pero mas potentes no vas a saber cual es la mejor para ti si no las pruebas ambas.
Cargar imágenes con una y con otra es fácil, crear ventanas, cargar letras.
La animación es similar a un gif animado, tienes varias imágenes que van cambiando en un determinado tiempo.
Te pongo referencias:
http://razonartificial.com/tag/teoria/
http://razonartificial.com/2012/02/guia-aprender-programar-videojuegos-con-cpp/
Para entender lo que es:
http://razonartificial.com/2010/08/introduccion-a-la-programacion-grafica-2d-i/
http://razonartificial.com/2010/08/introduccion-a-la-programacion-grafica-2d-ii/
http://razonartificial.com/2010/08/introduccion-a-la-programacion-grafica-2d-iii/

Con lo de arriba eres perfectamente capaz de comprender el concepto de creacion de un juego en 3d.

No se mucho sobre programación en SFML pero te dejo vídeos sobre SDL.
No creo que sea muy difícil encontrar sobre SFML tampoco

https://www.youtube.com/playlist?list=PLTd5ehIj0goPWUzoZ7hi8v61SEpkA6AsM
Esta pagina es una muy buena referencia, aun esta imcompleta sobre la SDL 2.0, pero el dueño va subiendo a pasos alijerados y ya tiene lo basico para manejar imagenes y texto.
http://lazyfoo.net/tutorials/SDL/index.php

Te dejo un ejemplo de un juego echo en sdl y opengl:
http://www.secretmaryo.org/

ni que decir de detrás de SDL viene financiando su desarrollo la plataforma Steam y una de sus intenciones es hacer una librería altamente portable y que pretende dar mayor soporte a los juegos en linux.
Steam va lanzar o ya lo ha echo su consola que va competir con la play y xbox.
Creo que uno de los motivos es este.
Hay muchos mas juegos echos en sdl, esta el freeciv
Esta también este: http://store.steampowered.com/app/233450/, prision architect

Bueno mucha lectura.
Como dije antes, si ya sabes programar algo pues bájate ambas librerías y prueba lo básico, carga una imagen, escribe algo en pantalla, crea ventanas, intenta hacer una animación básica....
En la pagina de Lazyfoo esta varios ejemplos de código es solo descargar y compilar.
Suerte ;)

263  Programación / Programación C/C++ / Re: Duda con heap, stack en: 9 Enero 2014, 08:48 am
Sin embargo si vas a reservar grandes cantidades de memoria no te queda otra que usar el heap.
A no ser que te guste los fuegos artificiales de Windows  :laugh:
Aquí un poco de explicación sobre la memoria en vídeo.
Este es muy importante:
1-http://minidosis.org/C++/Punteros%20y%20Referencias/Mapa%20de%20la%20Memoria%20de%20un%20Proceso/
2-http://minidosis.org/C++/Punteros%20y%20Referencias/El%20Operador%20new/
ya de paso pongo el delete XD
3-http://minidosis.org/C++/Punteros%20y%20Referencias/El%20Operador%20delete/

Este tiene una buena y detallada explicación sobre la memoria:
-http://www.youtube.com/watch?v=DYXBBFai8Eg

PD no se si ya lo has visto, o ignoro por completo si ya sabes como funciona la memoria, no obstante son buenas referencias para saber el por que se usa el tipo de memoria que se usa.
Tu duda es sobre la velocidad, pero creo que no solo de eso se trata la memoria.
Como dije esta también el problema de la cantidad.

Si vas usar pocas variables pues el método de la pila te sirve muy bien, pero si necesitas varios megas la cosa cambia.
Fíate que en uno de los vídeos (el primer si no me equivoco)Pau hace saltar los fuegos artificiales al reservar nama 16 megas  :silbar:
Yo particularmente nunca eh reservado tannnta memoria pero puede pasar.
Espero que te sirva de algo la info, a mi me servio bastante :D
Suerte!



264  Programación / Programación C/C++ / Re: Algunas dudas básicas en Code Blocks en: 5 Enero 2014, 17:54 pm
No creo que te falte nada mas aparte del codeblocks XD
A mas tiempo te tira con esa función mas te va doler quitarte.  :laugh:
265  Programación / Programación C/C++ / Re: Algunas dudas básicas en Code Blocks en: 5 Enero 2014, 17:34 pm
Eclipse no estaba para linux :huh:
266  Programación / Programación C/C++ / Re: Algunas dudas básicas en Code Blocks en: 5 Enero 2014, 02:28 am
Hola.
Me parece que esas chuletillas no te lo hace el codeblocks por que eso es una característica de los compiladores echo sobre los frameworks.
Lo tiene el eclipse por que me parece que esta echo en java, y el otro que mencionas esta echo en net.
O sea que literalmente tienes un programa ahí cuidando que no te equivoques.
Lo unico que te da es una chuleta que cuando empiezas a escribir pues te sale el autocompletado.
Que yo sepa no te avisa nama cuando lo compilas el código.
Sobre el código de inicio si se puede incluir un código completo o incluso partes como una clase o un bucle for...
Lo del código por defecto esta en setings/editor/default code.
Y los trozos están en abbreviations creo un poco mas abajo.
Es bastante configurable el CodeBlocks

Sobre la chuletilla no estoy 100% seguro si hay plugin, así que si alguien sabe algo a mi también me interesa XD
El code tambien te da nombre de clases, variables, funciones que esten presentes en el código."Chuletillas vamos" :D

Otro IDE que te da chuletillas a lo bestia es el Netbeans, pero no se lo vi muy aparatoso(decenas de opciones que no se pa que sirven vamos XD).
Tal vez deberías acostumbrarte sin las chuletas, pues te obliga a que se te meta a la fuerza a la cabeza.
267  Programación / Programación C/C++ / Re: Ayuda con programa urgente! en: 4 Enero 2014, 17:24 pm
Pues gracias man, me lo imaginaba pero no tenia certeza XD  ;-)
268  Programación / Programación C/C++ / Re: Ayuda con programa urgente! en: 4 Enero 2014, 16:08 pm
Que dice jaja es un peazo de código jeje
Para que no repitiera el camino, y digo camino sin salida fue hacer una especie de backup del trayecto XD
Primero hice una for para contar todos los números 2 que hay. después  hice un par de tablas con esa cantidad, una para x y una para y.
luego un contador y y le fue grabando a cada vuelta el valor de la posición actual.
Bien...eso solo se activa cuando el punto se encuentra con números 1, o sea ya explorado.
Entonces en ese momento empieza una cuenta atrás del contador y voy imprimiendo lo que había guardado en backupx y backupy :D
Funciona de perfectamente y es capaz de hacer el personaje volver por todo el camino.
Para marcar ese camino lo relleno con ceros, o sea que se vuelve hasta la primera intercesión hasta encontrar un 2 nuevamente y lo rellena el camino sin salida con ceros para no meterse mas por ahí XDD

hay unos bugcitos jaja

Pero bueno, no soy tan bueno con los punteros jaja
Pero hace el apaño.

Bueno lo pongo aquí:
No se compara con el vuestro pero llego al final.
tampoco le hice que se rompiera el bucle así que si me lo vaes a echar como fallo arreglad vosotros jajaja

Código
  1. #include <iostream>
  2. #include <windows.h>
  3. #include <stdio.h>
  4. #include <time.h>
  5.  
  6. # define udir mapa[y-1][x]
  7. # define ldir mapa[y][x-1]
  8. # define rdir mapa[y][x+1]
  9. # define ddir mapa[y+1][x]
  10. # define po mapa[y][x]
  11. using namespace std;
  12.  
  13. const int TAMY = 29;
  14. const int TAMX = 29;
  15.  
  16. int contapasos = 0;
  17.  
  18. void mostrar(char mapa[TAMY][TAMX]){
  19. system ("cls");
  20.  
  21.     for(int y=0;y<29;y++)
  22.     {
  23.     for(int x=0;x<29;x++)
  24.     {
  25.     printf("%c",mapa[y][x]);
  26.     //Sleep(5);
  27.     }
  28.     printf("\n");
  29.     //Sleep(5);
  30.     }
  31.  
  32. }
  33.  
  34. int rand4 (){
  35. srand(time(NULL));
  36. int n = (0 + rand() % 4);
  37. return n;
  38. }
  39.  
  40. void go_up ( char mapa[TAMY][TAMX], int &x , int &y ){
  41. po = '1';
  42. y--;
  43. po = 'X';
  44. }
  45.  
  46. void go_le ( char mapa[TAMY][TAMX], int &x , int &y ){
  47. po = '1';
  48. x--;
  49. po = 'X';
  50. }
  51.  
  52. void go_ri ( char mapa[TAMY][TAMX], int &x , int &y ){
  53. po = '1';
  54. x++;
  55. po = 'X';
  56. }
  57.  
  58. void go_do ( char mapa[TAMY][TAMX], int &x , int &y ){
  59. po = '1';
  60. y++;
  61. po = 'X';
  62. }
  63.  
  64.  
  65. int main (){
  66. //variables iniciales
  67. int pasos = 0;
  68. bool nodir = true;
  69. bool fin = true;
  70. int x = 1; //posicion x inicial
  71. int y = 1; //posicion y inicial
  72. int rand;
  73. char mapa[TAMY][TAMX]={
  74.   //0123456789012345678901234567
  75. "000000000000000000000000000",//0
  76. "020222222222222222222222220",//1
  77. "020200000000000000000000020",//2
  78. "020222222222222200000000020",//3
  79. "020200000000000000000000020",//4
  80. "020222222222222200022222220",//5
  81. "020000000000000200020000020",//6
  82. "020222222222200200000000020",//7
  83. "020200000000200222222222020",//8
  84. "020222222200200000000002020",//9
  85. "020000000200222222222222020",//10
  86. "022222220200000000000000020",//11
  87. "020000020200222222222222220",//12
  88. "020000022200200000000000000",//13
  89. "000000000000200222222222220",//14
  90. "022222222222200200000000020",//15
  91. "020000000000000222222202020",//16
  92. "020000000000000200000202020",//17
  93. "022222222222222200000202020",//18
  94. "000000000000000000000202220",//19
  95. "022222222222222222222200000",//20
  96. "020000000000000000000000000",//21
  97. "02222222222222222222222FIN0",//22
  98. "000000000000000000000000000" //23
  99.  
  100. };
  101. //obtenr cantidad maxima de pasos pocibles.
  102. for ( int fory = 0; fory <= TAMY; fory++  ){
  103. for ( int forx = 0; forx <= TAMX; forx++  ){
  104. if ( mapa[fory][forx] == '2' )
  105. pasos++;
  106. }
  107. }
  108. int xbackup[pasos];
  109. int ybackup[pasos];
  110.  
  111.  
  112. while ( fin ){
  113. while ( udir == '1' || ldir == '1' || rdir == '1' || ddir == '1' ){
  114. if ( udir == '2' || ldir == '2' || rdir == '2' || ddir == '2' ){
  115. break;
  116. }
  117.  
  118. contapasos--;
  119. mapa[y][x]='0';
  120. x = xbackup[contapasos];
  121. y = ybackup[contapasos];
  122. mapa[y][x]='X';
  123. mostrar( mapa );
  124. Sleep ( 100 );
  125. }
  126.  
  127. contapasos++;
  128. xbackup[contapasos]= x;
  129. ybackup[contapasos]= y;
  130.  
  131. if( udir == '2' || ldir == '2' || rdir == '2' || ddir == '2' ){
  132.  
  133. do{
  134.  
  135. rand = rand4();
  136.  
  137.  
  138. if ( udir == '2' && ldir != '2' && rdir != '2' && ddir != '2' ){
  139. go_up( mapa, x, y );
  140. break;
  141. }
  142. else if ( udir != '2' && ldir == '2' && rdir != '2' && ddir != '2' ){
  143. go_le( mapa, x, y );
  144. break;
  145. }
  146. else if ( udir != '2' && ldir != '2' && rdir == '2' && ddir != '2' ){
  147. go_ri( mapa, x, y );
  148. break;
  149. }
  150. else if ( udir != '2' && ldir != '2' && rdir != '2' && ddir == '2' ){
  151. go_do( mapa, x, y );
  152. break;
  153. }
  154.  
  155. else if ( rand == 0 ){
  156. if ( udir == '0' || udir == '1' ){
  157. nodir = true;
  158. break;
  159. }
  160. else {
  161. go_up( mapa, x, y );
  162. nodir = false;
  163. }
  164.  
  165. }
  166. else if ( rand == 1 ){
  167. if ( ldir == '0' || ldir == '1' ){
  168. nodir = true;
  169. break;
  170. }
  171. else {
  172. go_le( mapa, x, y );
  173. nodir = false;
  174. }
  175.  
  176. }
  177. else if ( rand == 2 ){
  178. if ( rdir == '0' || rdir == '1' ){
  179. nodir = true;
  180. break;
  181.  
  182. }
  183. else {
  184. go_ri( mapa, x, y );
  185. nodir = false;
  186. }
  187.  
  188. }
  189. else if ( rand == 3 ){
  190. if ( ddir == '0' || ddir == '1' ){
  191. nodir = true;
  192. break;
  193. }
  194. else {
  195. go_do( mapa, x, y );
  196. nodir = false;
  197. }
  198.  
  199. }
  200.  
  201. }while( nodir );//FIN DOWHILE
  202.  
  203. }//FIN IF
  204. mostrar( mapa );
  205. Sleep ( 100 );
  206. }//FIN DEL LOOP
  207.  
  208. }
  209.  
  210.  

Otra cosa, que me gusta ver la x andando por el mapa jaja
Asi puedo analizar lo que va haciendo XD
As veces se queda un rato parado en una intercesión, eso lo hace hasta que obtiene un numero aleatorio correcto.
Podía mejorarlo pero bua lo dejo así que soy mu vaguito XD
Como dije no es como el vuestro pero me sirve.
Saludos a todos, me lo paso bomba con esos códigos  ;-)

Como diga que no anda os grabo un video jajaj
Otra cosa que tengo problemas es con la declaracion de las tablas.
No se por que demonios tengo que poner un numero mayor que lo que voy usar.
creo que es por los ceros, a lo mejor si sustituyo los 0 po X o otra cosa.
Creo que es así por que creo que termina la tabla con char( 0 ) no?
Si saben por que, pasa eso me gustaría saber si declaro char tabla[10]
no le puedo meter de 0 a 9 por que me dice no sequela de fpermisive los webos.
Me parece que en el caso de char la ultima letra es 0 no es ¿así?
La cosa es que veo vuestro código funcionar y el mio pues no anda.
es raro pero me esta pasando pffff
269  Programación / Programación C/C++ / Re: Ayuda con programa urgente! en: 4 Enero 2014, 02:45 am
¡waaa eso ya es tecnología punta!
Tengo echo unos pinitos jaja, pero no es nada comparado a esto. XD
Tampoco es a colores como lo de leo y el tuyo.
Un par de ajustes y lo subo si prometéis no reír de mi. ><
Ando algo desanimado pero estoy en ello. :)
Saludos  ;-)

270  Programación / Programación C/C++ / Re: Ayuda con programa urgente! en: 30 Diciembre 2013, 19:54 pm
a mi si me funciono guardando en .c
Páginas: 1 ... 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 [27] 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 ... 46
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines