Bon voila,je suis sur un projet de shoot, et j'ai un gros problème

Donc en gros, j'arrive à diriger mon vaisseaux, mais j'arrive pas à lui mettre des limites...
On peut sortir de l'écran

Pourtant j'ai essayé çà:
if ( keydata & GPC_VK_LEFT & Xship>0) {Xship-=7;}
if ( keydata & GPC_VK_UP & Yship>0) {Yship-=5;}
if ( keydata & GPC_VK_RIGHT& Xship<320) {Xship+=7;}
if ( keydata & GPC_VK_DOWN & Yship<240) {Yship+=5;}
Mais là! gros problème!!! mon vaisseaux est bien limité sur le bord gauche de l'écran, mais il ne peut se déplacer qu'à gauche!!!!
POURQUOI???????????



Et si j'essaye de limiter que à gauche par exemple, ben je peut le déplacer comme je veux,mais il est limité mais que à gauche

Au SECOUR!!!!!!!!!!!
Déjà j'aimerais bien comprendre pourquoi il rest bloqué, ensuite si vous avez une solution...

Merci d'avance...
P.S dans mon exemple je ne tient pas compte de la taille du sprite, mais ça revien au meme, puisque j'ai toujours les memes problèmes...