Advertisement
raulgarcia

primera prueba en c

May 2nd, 2021
455
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.30 KB | None | 0 0
  1. //Primera prueba en c
  2. //mueve alpersonaje con o y p
  3. //gracias a fran gallego y al grupo de telegram cpctelera
  4.  
  5. #include "cpctelera.h"
  6. #include "sprites/hero_left.h"
  7. #include "sprites/joya.h"
  8.  
  9. #define VMem (u8*)0xc000
  10.  
  11. typedef struct{
  12.    u8 x,y;        //valores x y del personaje (0-255)
  13. }DefinicionPersonaje;
  14. typedef struct{
  15.    u8 x,y;        //valores x y del personaje (0-255)
  16. }Definicion_Joya;
  17. //empieza el programa
  18. void main(void){
  19.  
  20.    init();
  21.    while (1) {
  22.    menu();
  23.    juego();  
  24. }
  25. }
  26. //
  27. //menu
  28. //
  29. void menu(){
  30.    u8* pvmem;  // Pointer to video memory
  31.  
  32.    pvmem = cpct_getScreenPtr(CPCT_VMEM_START, 10, 56);
  33.  
  34.    cpct_setDrawCharM0(1, 0);
  35.  
  36.    cpct_drawStringM0("Prueba en C", pvmem);
  37.    pvmem = cpct_getScreenPtr(CPCT_VMEM_START, 10, 120);
  38.    cpct_setDrawCharM0(1, 0);
  39.    cpct_drawStringM0("Pulsa espacio", pvmem);
  40.  
  41.    espera_espacio();
  42. cpct_clearScreen(0);
  43. }
  44. //
  45. //juego
  46. //
  47. void juego(){
  48.  
  49.      DefinicionPersonaje player = {10,10};  //mete losndatos x y del player
  50.    u8* locate_player;                     //define un puntero donde guarda x e y delplayer
  51.       Definicion_Joya joya = { 60,100};
  52.    u8* Locate_joya;
  53.                   Locate_joya = cpct_getScreenPtr(VMem,joya.x,joya.y);  //convierte x e y a posicion de memoria
  54.      
  55.                cpct_drawSprite(joya_sp,Locate_joya,4,8);
  56.  
  57.    while (1){
  58.       cpct_waitVSYNC();
  59.          locate_player = cpct_getScreenPtr(VMem,player.x,player.y);  //convierte x e y a posicion de memoria
  60.       cpct_drawSolidBox(locate_player,0,4,8);
  61.       //Comprobacion de teclado
  62.             cpct_scanKeyboard_f();
  63.          if (cpct_isKeyPressed(Key_O) && player.x > 0 ){ //si tecla 'o' esta pulsada y x mayor que 0, decrementa x
  64.             player.x -= 1;
  65.          }
  66.          else if (cpct_isKeyPressed(Key_P) && player.x <76 ){
  67.             player.x += 1;
  68.          }else if (cpct_isKeyPressed(Key_Esc)){
  69.             return;}
  70.  
  71.          locate_player = cpct_getScreenPtr(VMem,player.x,player.y);  //convierte x e y a posicion de memoria
  72.           //dibujar personaje
  73.          cpct_drawSprite(hero_left,locate_player,4,8);
  74.    }
  75. }
  76.  
  77.  
  78.  
  79. // fichero init.c
  80.  
  81. #include "cpctelera.h"
  82. //
  83. //inicio de juego.
  84. //pone modo,desabilita firmware,borde
  85.  
  86. void init(){
  87.    cpct_disableFirmware();
  88.    cpct_setVideoMode(0);
  89.    cpct_setBorder(0);
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement