News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

cpctelera 1.5 : sprite and background not funktion >>> is ok

Started by funkheld, 10:55, 21 January 21

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

funkheld

Hi good afternoon.
I come here with the order of x, x and nx, ny mixed up to set the background and set the sprite.
who can please help to set the order.


cpct_getScreenToSprite

thanks.
greeting



#include <cpctelera.h>
#include "sprite816.h"
#include "cpct_floppy.h"


#define SCR_W  80
#define SCR_H  200


u8 gScreenCapture[ G_TILE_SPRITE816_H * G_TILE_SPRITE816_W]; 


u16 nx,ny,x,y,w,h,ya,xa,xscr,yscr;
u8* pvmem;


setze_spr()

  pvmem = cpct_getScreenPtr(CPCT_VMEM_START, x,y);
  cpct_drawSprite(pvmem, gScreenCapture, G_TILE_SPRITE816_W, G_TILE_SPRITE816_H);
  cpct_drawSprite( gScreenCapture, pvmem,G_TILE_SPRITE816_W, G_TILE_SPRITE816_H);...... this is ok
 
  x=nx;
  y=ny;
 
  pvmem = cpct_getScreenPtr(CPCT_VMEM_START, x,y);
  cpct_getScreenToSprite(pvmem, gScreenCapture, G_TILE_SPRITE816_W, G_TILE_SPRITE816_H);
       
  pvmem = cpct_getScreenPtr(CPCT_VMEM_START, nx,ny);
  cpct_drawSpriteMasked(g_tile_sprite816, pvmem,  G_TILE_SPRITE816_W, G_TILE_SPRITE816_H);
}


void main(void) {
  cpct_disableFirmware();
  cpct_setPalette(g_tile_palette, 4);
  cpct_setVideoMode(0);
 
  StoreDriveLetter();
  InitializeAmsdos();
  cpct_loadBinaryFile("TEST.SCR", 0xc000);


  nx=20;
  ny=60;
 
  x=nx;
  y=ny;
 
  pvmem = cpct_getScreenPtr(CPCT_VMEM_START, x,y);
  cpct_getScreenToSprite(pvmem, gScreenCapture, G_TILE_SPRITE816_W, G_TILE_SPRITE816_H);
 
  pvmem = cpct_getScreenPtr(CPCT_VMEM_START, nx,ny);
  cpct_drawSpriteMasked(g_tile_sprite816, pvmem,  G_TILE_SPRITE816_W, G_TILE_SPRITE816_H);

   while(1) {
      cpct_scanKeyboard_f();


      if(cpct_isKeyPressed(Key_E) && nx < (SCR_W - G_TILE_SPRITE816_W ))
      {             
        nx=nx+1;
        setze_spr();
      } 
      else if (cpct_isKeyPressed(Key_Q)  && nx > 0)
      {       
         nx=nx-1;
         setze_spr();
      } 
      if(cpct_isKeyPressed(Key_W)    && ny > 0)
      {
        ny=ny-1; 
        setze_spr();         
      }
      else if (cpct_isKeyPressed(Key_S)  && ny < (SCR_H - G_TILE_SPRITE816_H) )
      {   
        ny=ny+1;
        setze_spr();
      }
   }
}

Powered by SMFPacks Menu Editor Mod