1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
| void MoveMap_Position(Map* m,SDL_Surface* screen,int direction,Config* C,NpcProp* pnjs){
int i;
Mix_Chunk *son;
// UP
if(direction==0){
if(m[C->idMap].sens==0){
if(!CollisionDecor(m,8,7,C)){
for(i=1;i<=m[C->idMap].HAUTEUR_TILE;i++){
m[C->idMap].fenetre.y-=1;
AfficherMap(screen,pnjs,m,C);
if(i<(m[C->idMap].HAUTEUR_TILE/2))
OrientationSprite(screen,direction,1);
else if(i>(m[C->idMap].HAUTEUR_TILE/2))
OrientationSprite(screen,direction,2);
else
OrientationSprite(screen,direction,0);
SDL_Flip(screen);
SDL_Delay(4);
}
OrientationSprite(screen,direction,0);
}else{
son = Mix_LoadWAV("son/bruit/collision.wav");
Mix_VolumeChunk(son, MIX_MAX_VOLUME);
Mix_PlayChannel(2, son,0);
SDL_Delay(200);
}
}else{
OrientationSprite(screen,direction,0);
m[C->idMap].sens=0;
}
}
// RIGHT
else if(direction==1){
if(m[C->idMap].sens==1){
if(!CollisionDecor(m,9,8,C)){
for(i=1;i<=m[C->idMap].LARGEUR_TILE;i++){
m[C->idMap].fenetre.x+=1;
AfficherMap(screen,pnjs,m,C);
if(i<(m[C->idMap].HAUTEUR_TILE/2))
OrientationSprite(screen,direction,1);
else if(i>(m[C->idMap].HAUTEUR_TILE/2))
OrientationSprite(screen,direction,2);
else
OrientationSprite(screen,direction,0);
SDL_Flip(screen);
SDL_Delay(4);
}
OrientationSprite(screen,direction,0);
}else{
son = Mix_LoadWAV("son/bruit/collision.wav");
Mix_VolumeChunk(son, MIX_MAX_VOLUME);
Mix_PlayChannel(2, son,0);
SDL_Delay(200);
}
}else{
OrientationSprite(screen,direction,0);
m[C->idMap].sens=1;
}
}
// DOWN
else if(direction==2){
if(m[C->idMap].sens==2){
if(!CollisionDecor(m,8,9,C)){
for(i=1;i<=m[C->idMap].HAUTEUR_TILE;i++){
m[C->idMap].fenetre.y+=1;
AfficherMap(screen,pnjs,m,C);
if(i<(m[C->idMap].HAUTEUR_TILE/2))
OrientationSprite(screen,direction,1);
else if(i>(m[C->idMap].HAUTEUR_TILE/2))
OrientationSprite(screen,direction,2);
else
OrientationSprite(screen,direction,0);
SDL_Flip(screen);
SDL_Delay(4);
}
OrientationSprite(screen,direction,0);
}else{
son = Mix_LoadWAV("son/bruit/collision.wav");
Mix_VolumeChunk(son, MIX_MAX_VOLUME);
Mix_PlayChannel(2, son,0);
SDL_Delay(200);
}
}else{
OrientationSprite(screen,direction,0);
m[C->idMap].sens=2;
}
}
// LEFT
else if(direction==3){
if(m[C->idMap].sens==3){
if(!CollisionDecor(m,7,8,C)){
for(i=1;i<=m[C->idMap].LARGEUR_TILE;i++){
m[C->idMap].fenetre.x-=1;
AfficherMap(screen,pnjs,m,C);
if(i<(m[C->idMap].HAUTEUR_TILE/2))
OrientationSprite(screen,direction,1);
else if(i>(m[C->idMap].HAUTEUR_TILE/2))
OrientationSprite(screen,direction,2);
else
OrientationSprite(screen,direction,0);
SDL_Flip(screen);
SDL_Delay(4);
}
OrientationSprite(screen,direction,0);
}else{
son = Mix_LoadWAV("son/bruit/collision.wav");
Mix_VolumeChunk(son, MIX_MAX_VOLUME);
Mix_PlayChannel(2, son,0);
SDL_Delay(200);
}
}else{
OrientationSprite(screen,direction,0);
m[C->idMap].sens=3;
}
}
// Juste pour le réafficher sans le bouger
else{
direction=m[C->idMap].sens;
OrientationSprite(screen,direction,m[C->idMap].sens);
}
AfficherMap(screen,pnjs,m,C);
OrientationSprite(screen,direction,0);
SDL_Flip(screen);
} |
Partager