Anuncios Google

Colisiones en rpg

Estoi haciendo un rpg estilo pokemon, me gustaria saber como se pone las colisones, por ejemplo cuando te chocas contra la pared, contra un arbol...


La muerte soluciona todos los problemas. No hay hombre, no hay problema (Joseph Stalin)


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Froskito

pero aclaralo mas

que no se entiende lo que quieres hacer..

Imagen de kNightFox

La pregunta es facil. La

La pregunta es facil. La respuesta tambien. O usar mapas de colisiones (un archivo donde dice que se puede o no se puede travesar, y es el metodo mas recomendado) o leyendo los pixeles del fondo, lo cual es lento y no lo recomiendo.


Nuestra web oficial:
http://www.nightfoxandco.com/
 
Siguenos en facebook:
http://www.facebook.com/pages/NightFox-Co/284338634917917
 
Por favor, no useis los MP para preguntas, usar el FORO:
http://www.nightfoxandco.com/forum/
Asi nos ahorramos de contestar lo mismo 20 veces.

 

Imagen de TheSylux

lo de mapa de colisiones

lo de mapa de colisiones es eso de otro mapa con partes negras y rosas?

Imagen de Froskito

si, es eso

see

Imagen de TheSylux

mapa de colisiones

que ai ke poner en la surce para ke caargue el mapa de colisiones?

Imagen de The Dark Master

Ajam...

Eso me da que preguntar xD, ¿cual usas, palib o nflib? (pregunto al usuario yo ya se cual usas tu jeje).

Imagen de TheSylux

palib

uso palib se como se tiene ke acer el mapa en rosa y negro pero no se ponerlo

Imagen de magicblack2009

y en negro que va, por que

y en negro que va, por que se puede pasar o lo que no?

Imagen de TheSylux

el negro no

el negro no puedes pasar el rosa se

Imagen de DRmack

Oye

¿Te importa explicarte un poco mejor?

Imagen de kNightFox

Video:

Video: http://www.youtube.com/watch?v=_E7Sp52X-ZI Y el codigo
  1. /*
  2. -------------------------------------------------
  3.  
  4.         NightFox's Lib Template
  5.         Ejemplo de mapas de colisiones
  6.  
  7.         Requiere DevkitARM R26
  8.         Requiere NightFox's Lib
  9.         Requiere EFS Lib
  10.  
  11.         Codigo por NightFox
  12.         http://blogs.gamefilia.com/knightfox
  13.         Inicio 10 de Octubre del 2009
  14.  
  15.         (c)2009 NightFox & Co.
  16.  
  17. -------------------------------------------------
  18. */
  19.  
  20.  
  21.  
  22.  
  23.  
  24. /*
  25. -------------------------------------------------
  26.         Includes
  27. -------------------------------------------------
  28. */
  29.  
  30. // Includes c/c++
  31. #include <stdio.h>
  32.  
  33. // Includes propietarios NDS
  34. #include <nds.h>
  35.  
  36. // Includes librerias propias
  37. #include <nf_lib.h>
  38.  
  39.  
  40.  
  41.  
  42.  
  43. /*
  44. -------------------------------------------------
  45.         Main() - Bloque general del programa
  46. -------------------------------------------------
  47. */
  48.  
  49. int main(void) {
  50.  
  51.         // Pantalla de espera inicializando la EFS
  52.         NF_Set2D(0, 0);
  53.         NF_Set2D(1, 0); 
  54.         consoleDemoInit();
  55.         iprintf("\n EFS init. Please wait.\n This can take up to 5 minutes.\n\n");
  56.         iprintf(" Iniciando EFS,\n por favor, espere.\n Puede tardar hasta 5 minutos.\n");
  57.         swiWaitForVBlank();
  58.  
  59.         // Define el ROOT e inicializa el sistema de archivos
  60.         NF_SetRootFolder("EFS");        // Define la carpeta ROOT para usar EFS
  61.  
  62.         // Inicializa el motor 2D
  63.         NF_Set2D(0, 0);                         // Modo 2D_0 en ambas pantallas
  64.         NF_Set2D(1, 0);
  65.  
  66.         // Inicializa los fondos tileados
  67.         NF_InitTiledBgBuffers();        // Inicializa los buffers para almacenar fondos
  68.         NF_InitTiledBgSys(0);           // Inicializa los fondos Tileados para la pantalla superior
  69.         NF_InitTiledBgSys(1);           // Iniciliaza los fondos Tileados para la pantalla inferior
  70.  
  71.         // Inicializa los Sprites
  72.         NF_InitSpriteBuffers();         // Inicializa los buffers para almacenar sprites y paletas
  73.         NF_InitSpriteSys(0);            // Inicializa los sprites para la pantalla superior
  74.         NF_InitSpriteSys(1);            // Inicializa los sprites para la pantalla inferior
  75.  
  76.         // Inicializa el motor de texto
  77.         NF_InitTextSys(0);                      // Inicializa el texto para la pantalla superior
  78.  
  79.         // Inicializa los buffers de mapas de colisiones
  80.         NF_InitCmapBuffers();
  81.  
  82.         // Carga los archivos de fondo desde la FAT/EFS a la RAM
  83.         NF_LoadTiledBg("bg/layer3", "moon", 256, 256);          // Carga el fondo para la capa 3, pantalla inferior
  84.         NF_LoadTiledBg("bg/colmap", "boxes", 768, 512);         // Carga el fondo para la capa 2, pantalla inferior
  85.  
  86.         // Carga los archivos de sprites desde la FAT/EFS a la RAM
  87.         NF_LoadSpriteGfx("sprite/puntero", 0, 8, 8);    // Puntero
  88.         NF_LoadSpritePal("sprite/puntero", 0);
  89.  
  90.         // Carga la fuente por defecto para el texto
  91.         NF_LoadTextFont("fnt/default", "normal", 256, 256, 0);
  92.  
  93.         // Carga el mapa de colisiones
  94.         NF_LoadColisionMap("maps/cmap", 0, 768, 512);
  95.  
  96.         // Crea los fondos de la pantalla superior
  97.         NF_CreateTiledBg(0, 3, "moon");
  98.         // Crea los fondos de la pantalla inferior
  99.         NF_CreateTiledBg(1, 3, "moon");
  100.         NF_CreateTiledBg(1, 2, "boxes");
  101.  
  102.         // Crea una capa de texto
  103.         NF_CreateTextLayer(0, 2, 0,     "normal");
  104.  
  105.         // Transfiere a la VRAM los sprites necesarios
  106.         NF_VramSpriteGfx(1, 0, 0, true);        // Puntero
  107.         NF_VramSpritePal(1, 0, 0);
  108.  
  109.         // Crea el Sprite del puntero en la pantalla inferior
  110.         NF_CreateSprite(1, 0, 0, 0, 124, 92);   // Crea el puntero en la pantalla inferior
  111.         NF_SpriteLayer(1, 0, 2);                                // Y la capa sobre la que se dibujara
  112.        
  113.         // Variable para la lectura del keypad
  114.         u16 keys = 0;
  115.  
  116.         // Variables para el control de movimiento
  117.         s16 x = 128;
  118.         s16 y = 96;
  119.         s16 spr_x = 0;
  120.         s16 spr_y = 0;
  121.         s16 bg_x = 0;
  122.         s16 bg_y = 0;
  123.  
  124.         // Buffer de texto
  125.         char mytext[32];
  126.  
  127.  
  128.  
  129.         // Bucle (repite para siempre)
  130.         while(1) {
  131.  
  132.                 // Lee el teclado
  133.                 scanKeys();
  134.                 keys = keysHeld();
  135.                 if (keys & KEY_UP) y --;
  136.                 if (keys & KEY_DOWN) y ++;
  137.                 if (keys & KEY_LEFT) x --;
  138.                 if (keys & KEY_RIGHT) x ++;
  139.  
  140.                 // Limites del movimiento
  141.                 if (x < 0) x = 0;
  142.                 if (x > 767) x = 767;
  143.                 if (y < 0) y = 0;
  144.                 if (y > 511) y = 511;
  145.  
  146.                 // Posicion del fondo
  147.                 bg_x = (x - 128);
  148.                 if (bg_x < 0) bg_x = 0;
  149.                 if (bg_x > 512) bg_x = 512;
  150.                 bg_y = (y - 96);
  151.                 if (bg_y < 0) bg_y = 0;
  152.                 if (bg_y > 320) bg_y = 320;
  153.  
  154.                 // Posicion del Sprite
  155.                 spr_x = (x - bg_x) - 4;
  156.                 spr_y = (y - bg_y) - 4;
  157.                 NF_MoveSprite(1, 0, spr_x, spr_y);
  158.  
  159.                 // Imprime la posicion del cursor
  160.                 sprintf(mytext,"x:%d  y:%d ", x, y);
  161.                 NF_WriteText(0, 2, 1, 1, mytext);
  162.  
  163.                 // Imprime el nº de tile
  164.                 switch (NF_GetTile(0, x, y)) {
  165.                         case 0:
  166.                                 sprintf(mytext,"Tile: Vacio / Void  ");
  167.                                 break;
  168.                         case 1:
  169.                                 sprintf(mytext,"Tile: Rojo / Red    ");
  170.                                 break;
  171.                         case 2:
  172.                                 sprintf(mytext,"Tile: Verde / Green ");
  173.                                 break;
  174.                         case 3:
  175.                                 sprintf(mytext,"Tile: Azul / Blue   ");
  176.                                 break;
  177.                 }
  178.                 NF_WriteText(0, 2, 1, 3, mytext);
  179.  
  180.                 NF_UpdateTextLayers();                  // Actualiza las capas de texto
  181.                 NF_SpriteOamSet(1);                             // Actualiza el Array del OAM
  182.  
  183.                 swiWaitForVBlank();                             // Espera al sincronismo vertical
  184.  
  185.                 oamUpdate(&oamSub);                             // Actualiza a VRAM el OAM Secundario
  186.  
  187.                 NF_ScrollBg(1, 2, bg_x, bg_y);  // Actualiza el scroll
  188.        
  189.         }
  190.  
  191.         return 0;
  192.  
  193. }


Nuestra web oficial:
http://www.nightfoxandco.com/
 
Siguenos en facebook:
http://www.facebook.com/pages/NightFox-Co/284338634917917
 
Por favor, no useis los MP para preguntas, usar el FORO:
http://www.nightfoxandco.com/forum/
Asi nos ahorramos de contestar lo mismo 20 veces.

 

Imagen de DRmack

Me referia...

A PiratearWii que no se le entendia lo que ponia.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.