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();
}
}
}