Accueil > > > JEUX AVEC UN LOUP V1.3 (DIRCTX DRAW 2D)
JEUX AVEC UN LOUP V1.3 (DIRCTX DRAW 2D)
Information sur la source
Description
JEUX AVEC UN LOUP (DIRCTX DRAW 2D) Permettra de mieux connaître DirectX Draw 2D ( New vesion du Jeux ) Langage : Borland C++ Bulder V5
Source
- #include <vcl.h>
- #include <ddraw.h>
- #pragma hdrstop
- #include "Main.h"
- #include "Unit2.h"
- #include "ddutil.h"
- #pragma resource "*.dfm"
- #include <mmsystem.h>
-
- char szBackground[] = "C6401000"; // BMP
- AnsiString lpo;
- int ty=0;
- int x=32*3; int y=32*3; // cordoné du Loup
- int ligne=0;
- int tmpx=0; int tmpy=0;
- int NbrLigne=0;
- int movD=1; int times=0;
- int LingMaxY=0; int LingMaxX=0;
-
- TFormMain *FormMain;
- int key =0;
- int MiaMiam=0;
- int xteleporte;
- int yteleporte;
-
- //-----------------------------------------------------------
- __fastcall TFormMain::TFormMain(TComponent* Owner) : TForm(Owner)
- {
- Timer1->Enabled = false;
- Form2 = new TForm2(Application);
- Form2->ShowModal();
- Start();
- }
- //-------------------------------------------------------------------------
- void __fastcall TFormMain::Start()
- {
- HRESULT res = DirectDrawCreate(NULL, &pDD, NULL);
- pDD->SetCooperativeLevel(Handle,DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
- ddsd.dwSize = sizeof(ddsd);
- ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;
- ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE|DDSCAPS_FLIP|DDSCAPS_COMPLEX;
-
- ddsd.dwBackBufferCount = 1;
- pDD->SetDisplayMode(640,480, 16);
- pDD->CreateSurface(&ddsd, &pDDSPrim, NULL);
-
- ddscaps.dwCaps = DDSCAPS_BACKBUFFER;
- pDDSPrim->GetAttachedSurface(&ddscaps, &pDDSSec);
-
- pDDPal = DDLoadPalette(pDD, szBackground);
-
- pDDSImage = DDLoadBitmap(pDD, szBackground, 0, 0);
- DDSetColorKey(pDDSImage,RGB(0,0,0)); // Couleur de transparence
- pDDSPrim->Flip( NULL, 0 );
-
- Memo1->Lines->LoadFromFile("MAP.txt");
- Timer1->Enabled = true;
- }
- //--------------------------------------------------------------------------
- void __fastcall TFormMain::Timer1Timer(TObject *Sender)
- {
- ddscaps.dwCaps = DDSCAPS_BACKBUFFER;
- pDDSPrim->GetAttachedSurface(&ddscaps, &pDDSSec);
- rc.left=0; rc.top=0; rc.right=640; rc.bottom=480;
- pDDSSec->BltFast(0,0,pDDSImage,&rc,DDBLTFAST_NOCOLORKEY);
-
- if (LingMaxX>=14) {LingMaxX=14;}
- if (LingMaxY>=29) {LingMaxY=29;}
- if (LingMaxY<=0) {LingMaxY=0;}
- if (LingMaxX<=0) {LingMaxX=0;}
-
- for (int ty=LingMaxX;ty<LingMaxX+19; ty++) {
- for (int ligne=LingMaxY;ligne<=LingMaxY+14; ligne++) {
-
- lpo = Memo1->Lines->Strings[ligne]; //ligne
- Memo2->Lines->Clear(); Memo2->Lines->Add(lpo);
-
- AnsiString e1 (Memo2->Text.c_str()),e2; // Nb graph
- e2 = e1.SubString(1+2*ty,2); int nb = e2.ToInt();
-
-
- //////////////// teleportation //////////////////////
- if (nb == 78 ) { xteleporte=tmpx+32*ty; yteleporte=tmpy+32*ligne+32+16; }
-
- if (nb == 77 && (x-16<=tmpx+32*ty && x+16>=tmpx+32*ty)
- && (y-16<=tmpy+32*ligne && y+16>=tmpy+32*ligne))
- {
- x=xteleporte; y=yteleporte;
- }
- ///////////////////////// piége invisible /////////////
- if (nb == 88 && (x-16<=tmpx+32*ty && x+16>=tmpx+32*ty)
- && (y-16<=tmpy+32*ligne && y+16>=tmpy+32*ligne))
- {
- AnsiString s (lpo),tt;
- tt = s.Delete(1+2*ty,2);
- tt = s.Insert("64",1+2*ty);
-
- Memo3->Lines->Clear();
- for (int oo=0; oo<=ligne-1;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
- Memo3->Lines->Add(tt);
- for (int oo=ligne+1; oo<=45;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
-
- int Size = Memo3->GetTextLen();
- Size++;
- char *Buffer = new char[Size];
- Memo3->GetTextBuf(Buffer,Size);
- Memo1->Lines->Clear();
- Memo1->Lines->Add(Buffer);
- MiaMiam++;
- goto loop;
- }
-
- if (nb == 64 && (x-16<=tmpx+32*ty && x+16>=tmpx+32*ty)
- && (y-16<=tmpy+32*ligne && y+16>=tmpy+32*ligne))
- {
- AnsiString s (lpo),tt;
- tt = s.Delete(1+2*ty,2);
- tt = s.Insert("65",1+2*ty);
-
- Memo3->Lines->Clear();
- for (int oo=0; oo<=ligne-1;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
- Memo3->Lines->Add(tt);
- for (int oo=ligne+1; oo<=45;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
-
- int Size = Memo3->GetTextLen();
- Size++;
- char *Buffer = new char[Size];
- Memo3->GetTextBuf(Buffer,Size);
- Memo1->Lines->Clear();
- Memo1->Lines->Add(Buffer);
- MiaMiam++;
- goto loop; // Game Over
- }
- ////////////////////// pierre deplace a droite //////////////////////////
- if (nb == 16 && (x<=tmpx+32*ty && x+16>=tmpx+32*ty)
- && (y==tmpy+32*ligne))
- {
- AnsiString s (lpo),tt;
- tt = s.Delete(1+2*ty,2);
- tt = s.Insert("00",1+2*ty);
-
- Memo3->Lines->Clear();
- for (int oo=0; oo<=ligne-1;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
- Memo3->Lines->Add(tt);
- for (int oo=ligne+1; oo<=45;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
-
- int Size = Memo3->GetTextLen();
- Size++;
- char *Buffer = new char[Size];
- Memo3->GetTextBuf(Buffer,Size);
- Memo1->Lines->Clear();
- Memo1->Lines->Add(Buffer);
-
- tt = s.Delete(1+2*ty+2,2);
- tt = s.Insert("16",1+2*ty+2);
-
- Memo3->Lines->Clear();
- for (int oo=0; oo<=ligne-1;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
- Memo3->Lines->Add(tt);
- for (int oo=ligne+1; oo<=45;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
-
- Size = Memo3->GetTextLen();
- Size++;
-
- Memo3->GetTextBuf(Buffer,Size);
- Memo1->Lines->Clear();
- Memo1->Lines->Add(Buffer);
-
- goto loop;
- }
- ////////////////////// pierre deplace a gauche //////////////////////////
- if (nb == 16 && (x-16<=tmpx+32*ty && x>=tmpx+32*ty)
- && (y==tmpy+32*ligne))
- {
- AnsiString s (lpo),tt;
- tt = s.Delete(1+2*ty,2);
- tt = s.Insert("00",1+2*ty);
-
- Memo3->Lines->Clear();
- for (int oo=0; oo<=ligne-1;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
- Memo3->Lines->Add(tt);
- for (int oo=ligne+1; oo<=45;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
-
- int Size = Memo3->GetTextLen();
- Size++;
- char *Buffer = new char[Size];
- Memo3->GetTextBuf(Buffer,Size);
- Memo1->Lines->Clear();
- Memo1->Lines->Add(Buffer);
-
- tt = s.Delete(1+2*ty-2,2);
- tt = s.Insert("16",1+2*ty-2);
-
- Memo3->Lines->Clear();
- for (int oo=0; oo<=ligne-1;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
- Memo3->Lines->Add(tt);
- for (int oo=ligne+1; oo<=45;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
-
- Size = Memo3->GetTextLen();
- Size++;
- Memo3->GetTextBuf(Buffer,Size);
- Memo1->Lines->Clear();
- Memo1->Lines->Add(Buffer);
-
- goto loop;
- }
- /////////////////////// miam Miam //////////////////////////////////////////
- if (nb == 17 && (x-16<=tmpx+32*ty && x+16>=tmpx+32*ty)
- && (y-16<=tmpy+32*ligne && y+16>=tmpy+32*ligne))
- {
- AnsiString s (lpo),tt;
- tt = s.Delete(1+2*ty,2);
- tt = s.Insert("00",1+2*ty);
-
- Memo3->Lines->Clear();
- for (int oo=0; oo<=ligne-1;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
- Memo3->Lines->Add(tt);
- for (int oo=ligne+1; oo<=45;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
-
- int Size = Memo3->GetTextLen();
- Size++;
- char *Buffer = new char[Size];
- Memo3->GetTextBuf(Buffer,Size);
- Memo1->Lines->Clear();
- Memo1->Lines->Add(Buffer);
- MiaMiam++;
- goto loop;
- }
- /////////////////////// KEY ///////////////////////////////////////////////
- if (nb == 76 && (x-16<=tmpx+32*ty && x+16>=tmpx+32*ty)
- && (y-16<=tmpy+32*ligne && y+16>=tmpy+32*ligne))
- {
- AnsiString s (lpo),tt;
- tt = s.Delete(1+2*ty,2);
- tt = s.Insert("00",1+2*ty);
-
- Memo3->Lines->Clear();
- for (int oo=0; oo<=ligne-1;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
- Memo3->Lines->Add(tt);
- for (int oo=ligne+1; oo<=45;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
-
- int Size = Memo3->GetTextLen();
- Size++;
- char *Buffer = new char[Size];
- Memo3->GetTextBuf(Buffer,Size);
- Memo1->Lines->Clear();
- Memo1->Lines->Add(Buffer);
- key=1;
- goto loop;
- }
-
- /////////////////////// KEY porte Open ////////////////////////////////////////
- if (nb == 72 && (x-16<=tmpx+32*ty && x+16>=tmpx+32*ty)
- && (y-16<=tmpy+32*ligne && y+16>=tmpy+32*ligne) && key==1)
- {
- AnsiString s (lpo),tt;
- tt = s.Delete(1+2*ty,2);
- tt = s.Insert("79",1+2*ty);
-
- Memo3->Lines->Clear();
- for (int oo=0; oo<=ligne-1;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
- Memo3->Lines->Add(tt);
- for (int oo=ligne+1; oo<=45;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
-
- int Size = Memo3->GetTextLen();
- Size++;
- char *Buffer = new char[Size];
- Memo3->GetTextBuf(Buffer,Size);
- Memo1->Lines->Clear();
- Memo1->Lines->Add(Buffer);
- key=1;
- goto loop;
- }
- /////////////////////// Porte /////////////////////////////////////////////////
- if (nb == 73 && (x-16<=tmpx+32*ty && x+16>=tmpx+32*ty)
- && (y-16<=tmpy+32*ligne && y+16>=tmpy+32*ligne))
- {
-
- char const *Path = "Ir_new.wav";
- sndPlaySound(Path, SND_ASYNC | SND_FILENAME);
-
- AnsiString s (lpo),tt;
- tt = s.Delete(1+2*ty,2); // suprime 73
- tt = s.Insert("74",1+2*ty); // remplace par 74
-
- Memo3->Lines->Clear();
- for (int oo=0; oo<=ligne-1;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
- Memo3->Lines->Add(tt);
- for (int oo=ligne+1; oo<=45;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
- /////////////
-
- int Size = Memo3->GetTextLen();
- Size++;
- char *Buffer = new char[Size];
- Memo3->GetTextBuf(Buffer,Size);
- Memo1->Lines->Clear();
- Memo1->Lines->Add(Buffer);
-
- y=y+16;
- goto loop;
- }
- /////////////////////// porte Close ///////////////////////////////////////////
- if (nb == 74 && (x-16<=tmpx+32*ty && x+16>=tmpx+32*ty)
- && (y-16<=tmpy+32*ligne && y+16>=tmpy+32*ligne))
-
- {
- AnsiString s (lpo),tt;
- tt = s.Delete(1+2*ty,2); // suprime 74
- tt = s.Insert("75",1+2*ty); // remplace par 75
-
- Memo3->Lines->Clear();
- for (int oo=0; oo<=ligne-1;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
- Memo3->Lines->Add(tt);
- for (int oo=ligne+1; oo<=45;oo++)
- { Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
-
- int Size = Memo3->GetTextLen();
- Size++;
- char *Buffer = new char[Size];
- Memo3->GetTextBuf(Buffer,Size);
- Memo1->Lines->Clear();
- Memo1->Lines->Add(Buffer);
-
- y=y+16;
- goto loop;
- }
-
- /////////////////////////////////////////////////////////////////////////////
- if ((nb == 79 || nb==87 || nb==83 || nb==84 || nb==85 || nb==86 || nb==80 ||nb==81 || nb==82
- )
- && (x-16<=tmpx+32*ty && x+16>=tmpx+32*ty)
- && (y-16<=tmpy+32*ligne && y+16>=tmpy+32*ligne))
- {goto loop;}
- ////////////////// obstacle
- if (nb != 00 && (x-16<=tmpx+32*ty && x+16>=tmpx+32*ty)
- && (y-16<=tmpy+32*ligne && y+16>=tmpy+32*ligne))
- {
- switch (movD)
- { case 1 : x=x-16; movD=10; break;
- case 2 : x=x+16; movD=10; break;
- case 3 : y=y-16; movD=10; break;
- case 4 : y=y+16; movD=10; break;
- }
- }
- //////////////////////////////// décore
-
- loop:
-
- switch (nb)
- {
- case 00 : rc.left=1+33*0; rc.top=502+33*2; rc.right=33+33*0; rc.bottom=534+33*2;break;
- case 01 : rc.left=1+33*1; rc.top=502+33*2; rc.right=33+33*1; rc.bottom=534+33*2;break;
- case 02 : rc.left=1+33*2; rc.top=502+33*2; rc.right=33+33*2; rc.bottom=534+33*2;break;
- case 03 : rc.left=1+33*3; rc.top=502+33*2; rc.right=33+33*3; rc.bottom=534+33*2;break;
- case 04 : rc.left=1+33*4; rc.top=502+33*2; rc.right=33+33*4; rc.bottom=534+33*2;break;
- case 05 : rc.left=1+33*5; rc.top=502+33*2; rc.right=33+33*5; rc.bottom=534+33*2;break;
- case 06 : rc.left=1+33*6; rc.top=502+33*2; rc.right=33+33*6; rc.bottom=534+33*2;break;
-
- case 10 : rc.left=1+33*0; rc.top=502+33*3; rc.right=33+33*0; rc.bottom=534+33*3;break;
- case 11 : rc.left=1+33*1; rc.top=502+33*3; rc.right=33+33*1; rc.bottom=534+33*3;break;
- case 12 : rc.left=1+33*2; rc.top=502+33*3; rc.right=33+33*2; rc.bottom=534+33*3;break;
- case 13 : rc.left=1+33*3; rc.top=502+33*3; rc.right=33+33*3; rc.bottom=534+33*3;break;
- case 14 : rc.left=1+33*4; rc.top=502+33*3; rc.right=33+33*4; rc.bottom=534+33*3;break;
- case 15 : rc.left=1+33*5; rc.top=502+33*3; rc.right=33+33*5; rc.bottom=534+33*3;break;
- case 16 : rc.left=1+33*6; rc.top=502+33*3; rc.right=33+33*6; rc.bottom=534+33*3;break;
- case 17 : rc.left=1+33*7; rc.top=502+33*3; rc.right=33+33*7; rc.bottom=534+33*3;break;
- case 18 : rc.left=1+33*8; rc.top=502+33*3; rc.right=33+33*8; rc.bottom=534+33*3;break;
-
- case 20 : rc.left=1+33*0; rc.top=502+33*4; rc.right=33+33*0; rc.bottom=534+33*4;break;
- case 21 : rc.left=1+33*1; rc.top=502+33*4; rc.right=33+33*1; rc.bottom=534+33*4;break;
- case 22 : rc.left=1+33*2; rc.top=502+33*4; rc.right=33+33*2; rc.bottom=534+33*4;break;
- case 23 : rc.left=1+33*3; rc.top=502+33*4; rc.right=33+33*3; rc.bottom=534+33*4;break;
- case 24 : rc.left=1+33*4; rc.top=502+33*4; rc.right=33+33*4; rc.bottom=534+33*4;break;
- case 25 : rc.left=1+33*5; rc.top=502+33*4; rc.right=33+33*5; rc.bottom=534+33*4;break;
- case 26 : rc.left=1+33*6; rc.top=502+33*4; rc.right=33+33*6; rc.bottom=534+33*4;break;
- case 27 : rc.left=1+33*7; rc.top=502+33*4; rc.right=33+33*7; rc.bottom=534+33*4;break;
- case 28 : rc.left=1+33*8; rc.top=502+33*4; rc.right=33+33*8; rc.bottom=534+33*4;break;
- case 29 : rc.left=1+33*9; rc.top=502+33*4; rc.right=33+33*9; rc.bottom=534+33*4;break;
-
- case 30 : rc.left=1+33*0; rc.top=502+33*5; rc.right=33+33*0; rc.bottom=534+33*5;break;
- case 31 : rc.left=1+33*1; rc.top=502+33*5; rc.right=33+33*1; rc.bottom=534+33*5;break;
- case 32 : rc.left=1+33*2; rc.top=502+33*5; rc.right=33+33*2; rc.bottom=534+33*5;break;
- case 33 : rc.left=1+33*3; rc.top=502+33*5; rc.right=33+33*3; rc.bottom=534+33*5;break;
- case 34 : rc.left=1+33*4; rc.top=502+33*5; rc.right=33+33*4; rc.bottom=534+33*5;break;
- case 35 : rc.left=1+33*5; rc.top=502+33*5; rc.right=33+33*5; rc.bottom=534+33*5;break;
- case 36 : rc.left=1+33*6; rc.top=502+33*5; rc.right=33+33*6; rc.bottom=534+33*5;break;
- case 37 : rc.left=1+33*7; rc.top=502+33*5; rc.right=33+33*7; rc.bottom=534+33*5;break;
-
- case 40 : rc.left=1+33*0; rc.top=502+33*6; rc.right=33+33*0; rc.bottom=534+33*6;break;
- case 41 : rc.left=1+33*1; rc.top=502+33*6; rc.right=33+33*1; rc.bottom=534+33*6;break;
- case 42 : rc.left=1+33*2; rc.top=502+33*6; rc.right=33+33*2; rc.bottom=534+33*6;break;
- case 43 : rc.left=1+33*3; rc.top=502+33*6; rc.right=33+33*3; rc.bottom=534+33*6;break;
- case 44 : rc.left=1+33*4; rc.top=502+33*6; rc.right=33+33*4; rc.bottom=534+33*6;break;
- case 45 : rc.left=1+33*5; rc.top=502+33*6; rc.right=33+33*5; rc.bottom=534+33*6;break;
- case 46 : rc.left=1+33*6; rc.top=502+33*6; rc.right=33+33*6; rc.bottom=534+33*6;break;
- case 47 : rc.left=1+33*7; rc.top=502+33*6; rc.right=33+33*7; rc.bottom=534+33*6;break;
- case 48 : rc.left=1+33*8; rc.top=502+33*6; rc.right=33+33*8; rc.bottom=534+33*6;break;
-
- case 50 : rc.left=1+33*0; rc.top=502+33*7; rc.right=33+33*0; rc.bottom=534+33*7;break;
- case 51 : rc.left=1+33*1; rc.top=502+33*7; rc.right=33+33*1; rc.bottom=534+33*7;break;
- case 52 : rc.left=1+33*2; rc.top=502+33*7; rc.right=33+33*2; rc.bottom=534+33*7;break;
- case 53 : rc.left=1+33*3; rc.top=502+33*7; rc.right=33+33*3; rc.bottom=534+33*7;break;
- case 54 : rc.left=1+33*4; rc.top=502+33*7; rc.right=33+33*4; rc.bottom=534+33*7;break;
- case 55 : rc.left=1+33*5; rc.top=502+33*7; rc.right=33+33*5; rc.bottom=534+33*7;break;
- case 56 : rc.left=1+33*6; rc.top=502+33*7; rc.right=33+33*6; rc.bottom=534+33*7;break;
- case 57 : rc.left=1+33*7; rc.top=502+33*7; rc.right=33+33*7; rc.bottom=534+33*7;break;
- case 58 : rc.left=1+33*8; rc.top=502+33*7; rc.right=33+33*8; rc.bottom=534+33*7;break;
- case 59 : rc.left=1+33*9; rc.top=502+33*7; rc.right=33+33*9; rc.bottom=534+33*7;break;
-
- case 60 : rc.left=1+33*0; rc.top=502+33*8; rc.right=33+33*0; rc.bottom=534+33*8;break;
- case 61 : rc.left=1+33*1; rc.top=502+33*8; rc.right=33+33*1; rc.bottom=534+33*8;break;
- case 62 : rc.left=1+33*2; rc.top=502+33*8; rc.right=33+33*2; rc.bottom=534+33*8;break;
- case 63 : rc.left=1+33*3; rc.top=502+33*8; rc.right=33+33*3; rc.bottom=534+33*8;break;
- case 64 : rc.left=1+33*4; rc.top=502+33*8; rc.right=33+33*4; rc.bottom=534+33*8;break;
- case 65 : rc.left=1+33*5; rc.top=502+33*8; rc.right=33+33*5; rc.bottom=534+33*8;break;
- case 66 : rc.left=1+33*6; rc.top=502+33*8; rc.right=33+33*6; rc.bottom=534+33*8;break;
-
-
- case 70 : rc.left=1+33*0; rc.top=502+33*9; rc.right=33+33*0; rc.bottom=534+33*9;break;
- case 71 : rc.left=1+33*1; rc.top=502+33*9; rc.right=33+33*1; rc.bottom=534+33*9;break;
- case 72 : rc.left=1+33*2; rc.top=502+33*9; rc.right=33+33*2; rc.bottom=534+33*9;break;
- case 73 : rc.left=1+33*3; rc.top=502+33*9; rc.right=33+33*3; rc.bottom=534+33*9;break;
- case 74 : rc.left=1+33*4; rc.top=502+33*9; rc.right=33+33*4; rc.bottom=534+33*9;break;
- case 75 : rc.left=1+33*5; rc.top=502+33*9; rc.right=33+33*5; rc.bottom=534+33*9;break;
- case 76 : rc.left=1+33*6; rc.top=502+33*9; rc.right=33+33*6; rc.bottom=534+33*9;break;
- case 77 : rc.left=1+33*7; rc.top=502+33*9; rc.right=33+33*7; rc.bottom=534+33*9;break;
- case 78 : rc.left=1+33*8; rc.top=502+33*9; rc.right=33+33*8; rc.bottom=534+33*9;break;
-
- case 79 : rc.left=1+33*3; rc.top=502+33*9; rc.right=33+33*3; rc.bottom=534+33*9;break;
-
- case 80 : rc.left=1+33*0; rc.top=502+33*10; rc.right=33+33*0; rc.bottom=534+33*10;break;
- case 81 : rc.left=1+33*1; rc.top=502+33*10; rc.right=33+33*1; rc.bottom=534+33*10;break;
- case 82 : rc.left=1+33*2; rc.top=502+33*10; rc.right=33+33*2; rc.bottom=534+33*10;break;
- case 83 : rc.left=1+33*3; rc.top=502+33*10; rc.right=33+33*3; rc.bottom=534+33*10;break;
- case 84 : rc.left=1+33*4; rc.top=502+33*10; rc.right=33+33*4; rc.bottom=534+33*10;break;
- case 85 : rc.left=1+33*5; rc.top=502+33*10; rc.right=33+33*5; rc.bottom=534+33*10;break;
- case 86 : rc.left=1+33*6; rc.top=502+33*10; rc.right=33+33*6; rc.bottom=534+33*10;break;
- case 87 : rc.left=1+33*7; rc.top=502+33*10; rc.right=33+33*7; rc.bottom=534+33*10;break;
- case 88 : rc.left=1+33*0; rc.top=502+33*10; rc.right=33+33*0; rc.bottom=534+33*10;break; // piége
- }
-
- pDDSSec->BltFast(tmpx+32*ty,tmpy+32*ligne,pDDSImage,&rc,DDBLTFAST_SRCCOLORKEY);
-
- }
-
- }
-
- rc.left=1+33*0; rc.top=502+33*2; rc.right=33+33*0; rc.bottom=534+33*2;
- pDDSSec->BltFast(400,400,pDDSImage,&rc,DDBLTFAST_SRCCOLORKEY);
-
-
- ///////////////////// end Decore ///////////////////////////////////////////
-
- if (movD==1) { // ->
- if (times == 0){
- rc.left=1+33*0; rc.top=496+36*0; rc.right=33+33*0; rc.bottom=531+36*0;goto ooo;}
- if (times == 1){x=x+16;
- rc.left=1+33*2; rc.top=496+36*0; rc.right=33+33*2; rc.bottom=531+36*0;goto ooo;}
- if (times == 2){x=x+16;
- rc.left=1+33*0; rc.top=496+36*0; rc.right=33+33*0; rc.bottom=531+36*0;
- movD=10; times=0;goto ooo;}}
-
- if (movD==2) { // <-
- if (times == 0){
- rc.left=1+33; rc.top=496+36*1; rc.right=33+33; rc.bottom=531+36*1;goto ooo;}
- if (times == 1){x=x-16;
- rc.left=1+33*2; rc.top=496+36*1; rc.right=33+33*2; rc.bottom=531+36*1;goto ooo;}
- if (times == 2){x=x-16;
- rc.left=1+33; rc.top=496+36*1; rc.right=33+33; rc.bottom=531+36*1;
- movD=20; times =0;goto ooo;}}
-
- if (movD==3) { // dw
- if (times == 0){
- rc.left=1+33*6; rc.top=496+36*0 ; rc.right=33+33*6; rc.bottom=531+36*0;goto ooo;}
- if (times == 1){y=y+16;
- rc.left=1+33*7; rc.top=496+36*0 ; rc.right=33+33*7; rc.bottom=531+36*0;goto ooo;}
- if (times == 2){y=y+16;
- rc.left=1+33*6; rc.top=496+36*0 ; rc.right=33+33*6; rc.bottom=531+36*0;
- movD=30; times =0;goto ooo;}}
-
- if (movD==4) { // up
- if (times == 0){
- rc.left=1+33*5; rc.top=496+36*0 ; rc.right=33+33*5; rc.bottom=531+36*0;goto ooo;}
- if (times == 1){y=y-16;
- rc.left=1+33*4; rc.top=496+36*0 ; rc.right=33+33*4; rc.bottom=531+36*0;goto ooo;}
- if (times == 2){y=y-16;
- rc.left=1+33*5; rc.top=496+36*0 ; rc.right=33+33*5; rc.bottom=531+36*0;
- movD=40; times =0;goto ooo;}}
-
- if (movD==10) { // Loup se repose ->
- if (times >= 20) { times=0;
- rc.left=1+33*0; rc.top=496+36*0; rc.right=33+33*0; rc.bottom=531+36*0;goto ooo;}
-
- if (times >= 15) {
- rc.left=1+33*1; rc.top=496+36*0; rc.right=33+33*1; rc.bottom=531+36*0;goto ooo;}
-
- if (times >= 0) {
- rc.left=1+33*0; rc.top=496+36*0; rc.right=33+33*0; rc.bottom=531+36*0;goto ooo;}}
-
- if (movD==20) { // Loup se repose <-
- if (times >= 20) { times=0;
- rc.left=1+33*0; rc.top=496+36*1; rc.right=33+33*0; rc.bottom=531+36*1;goto ooo;}
-
- if (times >= 15) {
- rc.left=1+33; rc.top=496+36*1; rc.right=33+33; rc.bottom=531+36*1;goto ooo;}
-
- if (times >= 0) {
- rc.left=1+33*0; rc.top=496+36*1; rc.right=33+33*0; rc.bottom=531+36*1;goto ooo;}}
-
- if (movD==30) { // Loup se repose dw
- if (times >= 20) { times=0;
- rc.left=1+33*6; rc.top=496+36*0 ; rc.right=33+33*6; rc.bottom=531+36*0;goto ooo;}
-
- if (times >= 15) {
- rc.left=1+33*8; rc.top=496+36*0 ; rc.right=33+33*8; rc.bottom=531+36*0;goto ooo;}
-
- if (times >= 0) {
- rc.left=1+33*6; rc.top=496+36*0 ; rc.right=33+33*6; rc.bottom=531+36*0;goto ooo;}}
-
- if (movD==40) { // Loup se repose Up
- if (times >= 25) { times=0;
- rc.left=1+33*3; rc.top=496+36*0; rc.right=33+33*3; rc.bottom=531+36*0;goto ooo;}
-
- if (times >= 15) {
- rc.left=1+33*5; rc.top=496+36*0; rc.right=33+33*5; rc.bottom=531+36*0;goto ooo;}
-
- if (times >= 0) {
- rc.left=1+33*3; rc.top=496+36*0; rc.right=33+33*3; rc.bottom=531+36*0;goto ooo;}}
-
- ooo:
- pDDSSec->BltFast(x,y-3,pDDSImage,&rc,DDBLTFAST_SRCCOLORKEY);
-
- times++;
- pDDSPrim->Flip( NULL, 0 );
-
- }
- //---------------------------------------------------------------------------
- void __fastcall TFormMain::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
- {
- if (times >= 3) {
- switch (char(Key))
- {
- case VK_RIGHT: movD=1; times=0; break;
- case VK_LEFT : movD=2; times=0; break;
- case VK_DOWN : movD=3; times=0; break;
- case VK_UP : movD=4; times=0; break;
- }
- }
- if (char(Key)==(27)) { Close(); }
- if (char(Key)==VK_F12) { Close(); }
- // if (char(Key)==VK_F05) { } // save
- // if (char(Key)==VK_F06) { } // load
-
- if (x>=500) { tmpx=tmpx-32;x=x-64;LingMaxX=LingMaxX+1;}
- if (y>=400) { tmpy=tmpy-32;y=y-64;LingMaxY=LingMaxY+1;}
- if (x<=32) { tmpx=tmpx+32;x=x+64;LingMaxX=LingMaxX-1;}
- if (y<=32) { tmpy=tmpy+32;y=y+64;LingMaxY=LingMaxY-1;}
- }
- //---------------------------------------------------------------------------
#include <vcl.h>
#include <ddraw.h>
#pragma hdrstop
#include "Main.h"
#include "Unit2.h"
#include "ddutil.h"
#pragma resource "*.dfm"
#include <mmsystem.h>
char szBackground[] = "C6401000"; // BMP
AnsiString lpo;
int ty=0;
int x=32*3; int y=32*3; // cordoné du Loup
int ligne=0;
int tmpx=0; int tmpy=0;
int NbrLigne=0;
int movD=1; int times=0;
int LingMaxY=0; int LingMaxX=0;
TFormMain *FormMain;
int key =0;
int MiaMiam=0;
int xteleporte;
int yteleporte;
//-----------------------------------------------------------
__fastcall TFormMain::TFormMain(TComponent* Owner) : TForm(Owner)
{
Timer1->Enabled = false;
Form2 = new TForm2(Application);
Form2->ShowModal();
Start();
}
//-------------------------------------------------------------------------
void __fastcall TFormMain::Start()
{
HRESULT res = DirectDrawCreate(NULL, &pDD, NULL);
pDD->SetCooperativeLevel(Handle,DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE|DDSCAPS_FLIP|DDSCAPS_COMPLEX;
ddsd.dwBackBufferCount = 1;
pDD->SetDisplayMode(640,480, 16);
pDD->CreateSurface(&ddsd, &pDDSPrim, NULL);
ddscaps.dwCaps = DDSCAPS_BACKBUFFER;
pDDSPrim->GetAttachedSurface(&ddscaps, &pDDSSec);
pDDPal = DDLoadPalette(pDD, szBackground);
pDDSImage = DDLoadBitmap(pDD, szBackground, 0, 0);
DDSetColorKey(pDDSImage,RGB(0,0,0)); // Couleur de transparence
pDDSPrim->Flip( NULL, 0 );
Memo1->Lines->LoadFromFile("MAP.txt");
Timer1->Enabled = true;
}
//--------------------------------------------------------------------------
void __fastcall TFormMain::Timer1Timer(TObject *Sender)
{
ddscaps.dwCaps = DDSCAPS_BACKBUFFER;
pDDSPrim->GetAttachedSurface(&ddscaps, &pDDSSec);
rc.left=0; rc.top=0; rc.right=640; rc.bottom=480;
pDDSSec->BltFast(0,0,pDDSImage,&rc,DDBLTFAST_NOCOLORKEY);
if (LingMaxX>=14) {LingMaxX=14;}
if (LingMaxY>=29) {LingMaxY=29;}
if (LingMaxY<=0) {LingMaxY=0;}
if (LingMaxX<=0) {LingMaxX=0;}
for (int ty=LingMaxX;ty<LingMaxX+19; ty++) {
for (int ligne=LingMaxY;ligne<=LingMaxY+14; ligne++) {
lpo = Memo1->Lines->Strings[ligne]; //ligne
Memo2->Lines->Clear(); Memo2->Lines->Add(lpo);
AnsiString e1 (Memo2->Text.c_str()),e2; // Nb graph
e2 = e1.SubString(1+2*ty,2); int nb = e2.ToInt();
//////////////// teleportation //////////////////////
if (nb == 78 ) { xteleporte=tmpx+32*ty; yteleporte=tmpy+32*ligne+32+16; }
if (nb == 77 && (x-16<=tmpx+32*ty && x+16>=tmpx+32*ty)
&& (y-16<=tmpy+32*ligne && y+16>=tmpy+32*ligne))
{
x=xteleporte; y=yteleporte;
}
///////////////////////// piége invisible /////////////
if (nb == 88 && (x-16<=tmpx+32*ty && x+16>=tmpx+32*ty)
&& (y-16<=tmpy+32*ligne && y+16>=tmpy+32*ligne))
{
AnsiString s (lpo),tt;
tt = s.Delete(1+2*ty,2);
tt = s.Insert("64",1+2*ty);
Memo3->Lines->Clear();
for (int oo=0; oo<=ligne-1;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
Memo3->Lines->Add(tt);
for (int oo=ligne+1; oo<=45;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
int Size = Memo3->GetTextLen();
Size++;
char *Buffer = new char[Size];
Memo3->GetTextBuf(Buffer,Size);
Memo1->Lines->Clear();
Memo1->Lines->Add(Buffer);
MiaMiam++;
goto loop;
}
if (nb == 64 && (x-16<=tmpx+32*ty && x+16>=tmpx+32*ty)
&& (y-16<=tmpy+32*ligne && y+16>=tmpy+32*ligne))
{
AnsiString s (lpo),tt;
tt = s.Delete(1+2*ty,2);
tt = s.Insert("65",1+2*ty);
Memo3->Lines->Clear();
for (int oo=0; oo<=ligne-1;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
Memo3->Lines->Add(tt);
for (int oo=ligne+1; oo<=45;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
int Size = Memo3->GetTextLen();
Size++;
char *Buffer = new char[Size];
Memo3->GetTextBuf(Buffer,Size);
Memo1->Lines->Clear();
Memo1->Lines->Add(Buffer);
MiaMiam++;
goto loop; // Game Over
}
////////////////////// pierre deplace a droite //////////////////////////
if (nb == 16 && (x<=tmpx+32*ty && x+16>=tmpx+32*ty)
&& (y==tmpy+32*ligne))
{
AnsiString s (lpo),tt;
tt = s.Delete(1+2*ty,2);
tt = s.Insert("00",1+2*ty);
Memo3->Lines->Clear();
for (int oo=0; oo<=ligne-1;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
Memo3->Lines->Add(tt);
for (int oo=ligne+1; oo<=45;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
int Size = Memo3->GetTextLen();
Size++;
char *Buffer = new char[Size];
Memo3->GetTextBuf(Buffer,Size);
Memo1->Lines->Clear();
Memo1->Lines->Add(Buffer);
tt = s.Delete(1+2*ty+2,2);
tt = s.Insert("16",1+2*ty+2);
Memo3->Lines->Clear();
for (int oo=0; oo<=ligne-1;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
Memo3->Lines->Add(tt);
for (int oo=ligne+1; oo<=45;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
Size = Memo3->GetTextLen();
Size++;
Memo3->GetTextBuf(Buffer,Size);
Memo1->Lines->Clear();
Memo1->Lines->Add(Buffer);
goto loop;
}
////////////////////// pierre deplace a gauche //////////////////////////
if (nb == 16 && (x-16<=tmpx+32*ty && x>=tmpx+32*ty)
&& (y==tmpy+32*ligne))
{
AnsiString s (lpo),tt;
tt = s.Delete(1+2*ty,2);
tt = s.Insert("00",1+2*ty);
Memo3->Lines->Clear();
for (int oo=0; oo<=ligne-1;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
Memo3->Lines->Add(tt);
for (int oo=ligne+1; oo<=45;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
int Size = Memo3->GetTextLen();
Size++;
char *Buffer = new char[Size];
Memo3->GetTextBuf(Buffer,Size);
Memo1->Lines->Clear();
Memo1->Lines->Add(Buffer);
tt = s.Delete(1+2*ty-2,2);
tt = s.Insert("16",1+2*ty-2);
Memo3->Lines->Clear();
for (int oo=0; oo<=ligne-1;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
Memo3->Lines->Add(tt);
for (int oo=ligne+1; oo<=45;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
Size = Memo3->GetTextLen();
Size++;
Memo3->GetTextBuf(Buffer,Size);
Memo1->Lines->Clear();
Memo1->Lines->Add(Buffer);
goto loop;
}
/////////////////////// miam Miam //////////////////////////////////////////
if (nb == 17 && (x-16<=tmpx+32*ty && x+16>=tmpx+32*ty)
&& (y-16<=tmpy+32*ligne && y+16>=tmpy+32*ligne))
{
AnsiString s (lpo),tt;
tt = s.Delete(1+2*ty,2);
tt = s.Insert("00",1+2*ty);
Memo3->Lines->Clear();
for (int oo=0; oo<=ligne-1;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
Memo3->Lines->Add(tt);
for (int oo=ligne+1; oo<=45;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
int Size = Memo3->GetTextLen();
Size++;
char *Buffer = new char[Size];
Memo3->GetTextBuf(Buffer,Size);
Memo1->Lines->Clear();
Memo1->Lines->Add(Buffer);
MiaMiam++;
goto loop;
}
/////////////////////// KEY ///////////////////////////////////////////////
if (nb == 76 && (x-16<=tmpx+32*ty && x+16>=tmpx+32*ty)
&& (y-16<=tmpy+32*ligne && y+16>=tmpy+32*ligne))
{
AnsiString s (lpo),tt;
tt = s.Delete(1+2*ty,2);
tt = s.Insert("00",1+2*ty);
Memo3->Lines->Clear();
for (int oo=0; oo<=ligne-1;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
Memo3->Lines->Add(tt);
for (int oo=ligne+1; oo<=45;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
int Size = Memo3->GetTextLen();
Size++;
char *Buffer = new char[Size];
Memo3->GetTextBuf(Buffer,Size);
Memo1->Lines->Clear();
Memo1->Lines->Add(Buffer);
key=1;
goto loop;
}
/////////////////////// KEY porte Open ////////////////////////////////////////
if (nb == 72 && (x-16<=tmpx+32*ty && x+16>=tmpx+32*ty)
&& (y-16<=tmpy+32*ligne && y+16>=tmpy+32*ligne) && key==1)
{
AnsiString s (lpo),tt;
tt = s.Delete(1+2*ty,2);
tt = s.Insert("79",1+2*ty);
Memo3->Lines->Clear();
for (int oo=0; oo<=ligne-1;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
Memo3->Lines->Add(tt);
for (int oo=ligne+1; oo<=45;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
int Size = Memo3->GetTextLen();
Size++;
char *Buffer = new char[Size];
Memo3->GetTextBuf(Buffer,Size);
Memo1->Lines->Clear();
Memo1->Lines->Add(Buffer);
key=1;
goto loop;
}
/////////////////////// Porte /////////////////////////////////////////////////
if (nb == 73 && (x-16<=tmpx+32*ty && x+16>=tmpx+32*ty)
&& (y-16<=tmpy+32*ligne && y+16>=tmpy+32*ligne))
{
char const *Path = "Ir_new.wav";
sndPlaySound(Path, SND_ASYNC | SND_FILENAME);
AnsiString s (lpo),tt;
tt = s.Delete(1+2*ty,2); // suprime 73
tt = s.Insert("74",1+2*ty); // remplace par 74
Memo3->Lines->Clear();
for (int oo=0; oo<=ligne-1;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
Memo3->Lines->Add(tt);
for (int oo=ligne+1; oo<=45;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
/////////////
int Size = Memo3->GetTextLen();
Size++;
char *Buffer = new char[Size];
Memo3->GetTextBuf(Buffer,Size);
Memo1->Lines->Clear();
Memo1->Lines->Add(Buffer);
y=y+16;
goto loop;
}
/////////////////////// porte Close ///////////////////////////////////////////
if (nb == 74 && (x-16<=tmpx+32*ty && x+16>=tmpx+32*ty)
&& (y-16<=tmpy+32*ligne && y+16>=tmpy+32*ligne))
{
AnsiString s (lpo),tt;
tt = s.Delete(1+2*ty,2); // suprime 74
tt = s.Insert("75",1+2*ty); // remplace par 75
Memo3->Lines->Clear();
for (int oo=0; oo<=ligne-1;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
Memo3->Lines->Add(tt);
for (int oo=ligne+1; oo<=45;oo++)
{ Memo3->Lines->Add(Memo1->Lines->Strings[oo]);}
int Size = Memo3->GetTextLen();
Size++;
char *Buffer = new char[Size];
Memo3->GetTextBuf(Buffer,Size);
Memo1->Lines->Clear();
Memo1->Lines->Add(Buffer);
y=y+16;
goto loop;
}
/////////////////////////////////////////////////////////////////////////////
if ((nb == 79 || nb==87 || nb==83 || nb==84 || nb==85 || nb==86 || nb==80 ||nb==81 || nb==82
)
&& (x-16<=tmpx+32*ty && x+16>=tmpx+32*ty)
&& (y-16<=tmpy+32*ligne && y+16>=tmpy+32*ligne))
{goto loop;}
////////////////// obstacle
if (nb != 00 && (x-16<=tmpx+32*ty && x+16>=tmpx+32*ty)
&& (y-16<=tmpy+32*ligne && y+16>=tmpy+32*ligne))
{
switch (movD)
{ case 1 : x=x-16; movD=10; break;
case 2 : x=x+16; movD=10; break;
case 3 : y=y-16; movD=10; break;
case 4 : y=y+16; movD=10; break;
}
}
//////////////////////////////// décore
loop:
switch (nb)
{
case 00 : rc.left=1+33*0; rc.top=502+33*2; rc.right=33+33*0; rc.bottom=534+33*2;break;
case 01 : rc.left=1+33*1; rc.top=502+33*2; rc.right=33+33*1; rc.bottom=534+33*2;break;
case 02 : rc.left=1+33*2; rc.top=502+33*2; rc.right=33+33*2; rc.bottom=534+33*2;break;
case 03 : rc.left=1+33*3; rc.top=502+33*2; rc.right=33+33*3; rc.bottom=534+33*2;break;
case 04 : rc.left=1+33*4; rc.top=502+33*2; rc.right=33+33*4; rc.bottom=534+33*2;break;
case 05 : rc.left=1+33*5; rc.top=502+33*2; rc.right=33+33*5; rc.bottom=534+33*2;break;
case 06 : rc.left=1+33*6; rc.top=502+33*2; rc.right=33+33*6; rc.bottom=534+33*2;break;
case 10 : rc.left=1+33*0; rc.top=502+33*3; rc.right=33+33*0; rc.bottom=534+33*3;break;
case 11 : rc.left=1+33*1; rc.top=502+33*3; rc.right=33+33*1; rc.bottom=534+33*3;break;
case 12 : rc.left=1+33*2; rc.top=502+33*3; rc.right=33+33*2; rc.bottom=534+33*3;break;
case 13 : rc.left=1+33*3; rc.top=502+33*3; rc.right=33+33*3; rc.bottom=534+33*3;break;
case 14 : rc.left=1+33*4; rc.top=502+33*3; rc.right=33+33*4; rc.bottom=534+33*3;break;
case 15 : rc.left=1+33*5; rc.top=502+33*3; rc.right=33+33*5; rc.bottom=534+33*3;break;
case 16 : rc.left=1+33*6; rc.top=502+33*3; rc.right=33+33*6; rc.bottom=534+33*3;break;
case 17 : rc.left=1+33*7; rc.top=502+33*3; rc.right=33+33*7; rc.bottom=534+33*3;break;
case 18 : rc.left=1+33*8; rc.top=502+33*3; rc.right=33+33*8; rc.bottom=534+33*3;break;
case 20 : rc.left=1+33*0; rc.top=502+33*4; rc.right=33+33*0; rc.bottom=534+33*4;break;
case 21 : rc.left=1+33*1; rc.top=502+33*4; rc.right=33+33*1; rc.bottom=534+33*4;break;
case 22 : rc.left=1+33*2; rc.top=502+33*4; rc.right=33+33*2; rc.bottom=534+33*4;break;
case 23 : rc.left=1+33*3; rc.top=502+33*4; rc.right=33+33*3; rc.bottom=534+33*4;break;
case 24 : rc.left=1+33*4; rc.top=502+33*4; rc.right=33+33*4; rc.bottom=534+33*4;break;
case 25 : rc.left=1+33*5; rc.top=502+33*4; rc.right=33+33*5; rc.bottom=534+33*4;break;
case 26 : rc.left=1+33*6; rc.top=502+33*4; rc.right=33+33*6; rc.bottom=534+33*4;break;
case 27 : rc.left=1+33*7; rc.top=502+33*4; rc.right=33+33*7; rc.bottom=534+33*4;break;
case 28 : rc.left=1+33*8; rc.top=502+33*4; rc.right=33+33*8; rc.bottom=534+33*4;break;
case 29 : rc.left=1+33*9; rc.top=502+33*4; rc.right=33+33*9; rc.bottom=534+33*4;break;
case 30 : rc.left=1+33*0; rc.top=502+33*5; rc.right=33+33*0; rc.bottom=534+33*5;break;
case 31 : rc.left=1+33*1; rc.top=502+33*5; rc.right=33+33*1; rc.bottom=534+33*5;break;
case 32 : rc.left=1+33*2; rc.top=502+33*5; rc.right=33+33*2; rc.bottom=534+33*5;break;
case 33 : rc.left=1+33*3; rc.top=502+33*5; rc.right=33+33*3; rc.bottom=534+33*5;break;
case 34 : rc.left=1+33*4; rc.top=502+33*5; rc.right=33+33*4; rc.bottom=534+33*5;break;
case 35 : rc.left=1+33*5; rc.top=502+33*5; rc.right=33+33*5; rc.bottom=534+33*5;break;
case 36 : rc.left=1+33*6; rc.top=502+33*5; rc.right=33+33*6; rc.bottom=534+33*5;break;
case 37 : rc.left=1+33*7; rc.top=502+33*5; rc.right=33+33*7; rc.bottom=534+33*5;break;
case 40 : rc.left=1+33*0; rc.top=502+33*6; rc.right=33+33*0; rc.bottom=534+33*6;break;
case 41 : rc.left=1+33*1; rc.top=502+33*6; rc.right=33+33*1; rc.bottom=534+33*6;break;
case 42 : rc.left=1+33*2; rc.top=502+33*6; rc.right=33+33*2; rc.bottom=534+33*6;break;
case 43 : rc.left=1+33*3; rc.top=502+33*6; rc.right=33+33*3; rc.bottom=534+33*6;break;
case 44 : rc.left=1+33*4; rc.top=502+33*6; rc.right=33+33*4; rc.bottom=534+33*6;break;
case 45 : rc.left=1+33*5; rc.top=502+33*6; rc.right=33+33*5; rc.bottom=534+33*6;break;
case 46 : rc.left=1+33*6; rc.top=502+33*6; rc.right=33+33*6; rc.bottom=534+33*6;break;
case 47 : rc.left=1+33*7; rc.top=502+33*6; rc.right=33+33*7; rc.bottom=534+33*6;break;
case 48 : rc.left=1+33*8; rc.top=502+33*6; rc.right=33+33*8; rc.bottom=534+33*6;break;
case 50 : rc.left=1+33*0; rc.top=502+33*7; rc.right=33+33*0; rc.bottom=534+33*7;break;
case 51 : rc.left=1+33*1; rc.top=502+33*7; rc.right=33+33*1; rc.bottom=534+33*7;break;
case 52 : rc.left=1+33*2; rc.top=502+33*7; rc.right=33+33*2; rc.bottom=534+33*7;break;
case 53 : rc.left=1+33*3; rc.top=502+33*7; rc.right=33+33*3; rc.bottom=534+33*7;break;
case 54 : rc.left=1+33*4; rc.top=502+33*7; rc.right=33+33*4; rc.bottom=534+33*7;break;
case 55 : rc.left=1+33*5; rc.top=502+33*7; rc.right=33+33*5; rc.bottom=534+33*7;break;
case 56 : rc.left=1+33*6; rc.top=502+33*7; rc.right=33+33*6; rc.bottom=534+33*7;break;
case 57 : rc.left=1+33*7; rc.top=502+33*7; rc.right=33+33*7; rc.bottom=534+33*7;break;
case 58 : rc.left=1+33*8; rc.top=502+33*7; rc.right=33+33*8; rc.bottom=534+33*7;break;
case 59 : rc.left=1+33*9; rc.top=502+33*7; rc.right=33+33*9; rc.bottom=534+33*7;break;
case 60 : rc.left=1+33*0; rc.top=502+33*8; rc.right=33+33*0; rc.bottom=534+33*8;break;
case 61 : rc.left=1+33*1; rc.top=502+33*8; rc.right=33+33*1; rc.bottom=534+33*8;break;
case 62 : rc.left=1+33*2; rc.top=502+33*8; rc.right=33+33*2; rc.bottom=534+33*8;break;
case 63 : rc.left=1+33*3; rc.top=502+33*8; rc.right=33+33*3; rc.bottom=534+33*8;break;
case 64 : rc.left=1+33*4; rc.top=502+33*8; rc.right=33+33*4; rc.bottom=534+33*8;break;
case 65 : rc.left=1+33*5; rc.top=502+33*8; rc.right=33+33*5; rc.bottom=534+33*8;break;
case 66 : rc.left=1+33*6; rc.top=502+33*8; rc.right=33+33*6; rc.bottom=534+33*8;break;
case 70 : rc.left=1+33*0; rc.top=502+33*9; rc.right=33+33*0; rc.bottom=534+33*9;break;
case 71 : rc.left=1+33*1; rc.top=502+33*9; rc.right=33+33*1; rc.bottom=534+33*9;break;
case 72 : rc.left=1+33*2; rc.top=502+33*9; rc.right=33+33*2; rc.bottom=534+33*9;break;
case 73 : rc.left=1+33*3; rc.top=502+33*9; rc.right=33+33*3; rc.bottom=534+33*9;break;
case 74 : rc.left=1+33*4; rc.top=502+33*9; rc.right=33+33*4; rc.bottom=534+33*9;break;
case 75 : rc.left=1+33*5; rc.top=502+33*9; rc.right=33+33*5; rc.bottom=534+33*9;break;
case 76 : rc.left=1+33*6; rc.top=502+33*9; rc.right=33+33*6; rc.bottom=534+33*9;break;
case 77 : rc.left=1+33*7; rc.top=502+33*9; rc.right=33+33*7; rc.bottom=534+33*9;break;
case 78 : rc.left=1+33*8; rc.top=502+33*9; rc.right=33+33*8; rc.bottom=534+33*9;break;
case 79 : rc.left=1+33*3; rc.top=502+33*9; rc.right=33+33*3; rc.bottom=534+33*9;break;
case 80 : rc.left=1+33*0; rc.top=502+33*10; rc.right=33+33*0; rc.bottom=534+33*10;break;
case 81 : rc.left=1+33*1; rc.top=502+33*10; rc.right=33+33*1; rc.bottom=534+33*10;break;
case 82 : rc.left=1+33*2; rc.top=502+33*10; rc.right=33+33*2; rc.bottom=534+33*10;break;
case 83 : rc.left=1+33*3; rc.top=502+33*10; rc.right=33+33*3; rc.bottom=534+33*10;break;
case 84 : rc.left=1+33*4; rc.top=502+33*10; rc.right=33+33*4; rc.bottom=534+33*10;break;
case 85 : rc.left=1+33*5; rc.top=502+33*10; rc.right=33+33*5; rc.bottom=534+33*10;break;
case 86 : rc.left=1+33*6; rc.top=502+33*10; rc.right=33+33*6; rc.bottom=534+33*10;break;
case 87 : rc.left=1+33*7; rc.top=502+33*10; rc.right=33+33*7; rc.bottom=534+33*10;break;
case 88 : rc.left=1+33*0; rc.top=502+33*10; rc.right=33+33*0; rc.bottom=534+33*10;break; // piége
}
pDDSSec->BltFast(tmpx+32*ty,tmpy+32*ligne,pDDSImage,&rc,DDBLTFAST_SRCCOLORKEY);
}
}
rc.left=1+33*0; rc.top=502+33*2; rc.right=33+33*0; rc.bottom=534+33*2;
pDDSSec->BltFast(400,400,pDDSImage,&rc,DDBLTFAST_SRCCOLORKEY);
///////////////////// end Decore ///////////////////////////////////////////
if (movD==1) { // ->
if (times == 0){
rc.left=1+33*0; rc.top=496+36*0; rc.right=33+33*0; rc.bottom=531+36*0;goto ooo;}
if (times == 1){x=x+16;
rc.left=1+33*2; rc.top=496+36*0; rc.right=33+33*2; rc.bottom=531+36*0;goto ooo;}
if (times == 2){x=x+16;
rc.left=1+33*0; rc.top=496+36*0; rc.right=33+33*0; rc.bottom=531+36*0;
movD=10; times=0;goto ooo;}}
if (movD==2) { // <-
if (times == 0){
rc.left=1+33; rc.top=496+36*1; rc.right=33+33; rc.bottom=531+36*1;goto ooo;}
if (times == 1){x=x-16;
rc.left=1+33*2; rc.top=496+36*1; rc.right=33+33*2; rc.bottom=531+36*1;goto ooo;}
if (times == 2){x=x-16;
rc.left=1+33; rc.top=496+36*1; rc.right=33+33; rc.bottom=531+36*1;
movD=20; times =0;goto ooo;}}
if (movD==3) { // dw
if (times == 0){
rc.left=1+33*6; rc.top=496+36*0 ; rc.right=33+33*6; rc.bottom=531+36*0;goto ooo;}
if (times == 1){y=y+16;
rc.left=1+33*7; rc.top=496+36*0 ; rc.right=33+33*7; rc.bottom=531+36*0;goto ooo;}
if (times == 2){y=y+16;
rc.left=1+33*6; rc.top=496+36*0 ; rc.right=33+33*6; rc.bottom=531+36*0;
movD=30; times =0;goto ooo;}}
if (movD==4) { // up
if (times == 0){
rc.left=1+33*5; rc.top=496+36*0 ; rc.right=33+33*5; rc.bottom=531+36*0;goto ooo;}
if (times == 1){y=y-16;
rc.left=1+33*4; rc.top=496+36*0 ; rc.right=33+33*4; rc.bottom=531+36*0;goto ooo;}
if (times == 2){y=y-16;
rc.left=1+33*5; rc.top=496+36*0 ; rc.right=33+33*5; rc.bottom=531+36*0;
movD=40; times =0;goto ooo;}}
if (movD==10) { // Loup se repose ->
if (times >= 20) { times=0;
rc.left=1+33*0; rc.top=496+36*0; rc.right=33+33*0; rc.bottom=531+36*0;goto ooo;}
if (times >= 15) {
rc.left=1+33*1; rc.top=496+36*0; rc.right=33+33*1; rc.bottom=531+36*0;goto ooo;}
if (times >= 0) {
rc.left=1+33*0; rc.top=496+36*0; rc.right=33+33*0; rc.bottom=531+36*0;goto ooo;}}
if (movD==20) { // Loup se repose <-
if (times >= 20) { times=0;
rc.left=1+33*0; rc.top=496+36*1; rc.right=33+33*0; rc.bottom=531+36*1;goto ooo;}
if (times >= 15) {
rc.left=1+33; rc.top=496+36*1; rc.right=33+33; rc.bottom=531+36*1;goto ooo;}
if (times >= 0) {
rc.left=1+33*0; rc.top=496+36*1; rc.right=33+33*0; rc.bottom=531+36*1;goto ooo;}}
if (movD==30) { // Loup se repose dw
if (times >= 20) { times=0;
rc.left=1+33*6; rc.top=496+36*0 ; rc.right=33+33*6; rc.bottom=531+36*0;goto ooo;}
if (times >= 15) {
rc.left=1+33*8; rc.top=496+36*0 ; rc.right=33+33*8; rc.bottom=531+36*0;goto ooo;}
if (times >= 0) {
rc.left=1+33*6; rc.top=496+36*0 ; rc.right=33+33*6; rc.bottom=531+36*0;goto ooo;}}
if (movD==40) { // Loup se repose Up
if (times >= 25) { times=0;
rc.left=1+33*3; rc.top=496+36*0; rc.right=33+33*3; rc.bottom=531+36*0;goto ooo;}
if (times >= 15) {
rc.left=1+33*5; rc.top=496+36*0; rc.right=33+33*5; rc.bottom=531+36*0;goto ooo;}
if (times >= 0) {
rc.left=1+33*3; rc.top=496+36*0; rc.right=33+33*3; rc.bottom=531+36*0;goto ooo;}}
ooo:
pDDSSec->BltFast(x,y-3,pDDSImage,&rc,DDBLTFAST_SRCCOLORKEY);
times++;
pDDSPrim->Flip( NULL, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
{
if (times >= 3) {
switch (char(Key))
{
case VK_RIGHT: movD=1; times=0; break;
case VK_LEFT : movD=2; times=0; break;
case VK_DOWN : movD=3; times=0; break;
case VK_UP : movD=4; times=0; break;
}
}
if (char(Key)==(27)) { Close(); }
if (char(Key)==VK_F12) { Close(); }
// if (char(Key)==VK_F05) { } // save
// if (char(Key)==VK_F06) { } // load
if (x>=500) { tmpx=tmpx-32;x=x-64;LingMaxX=LingMaxX+1;}
if (y>=400) { tmpy=tmpy-32;y=y-64;LingMaxY=LingMaxY+1;}
if (x<=32) { tmpx=tmpx+32;x=x+64;LingMaxX=LingMaxX-1;}
if (y<=32) { tmpy=tmpy+32;y=y+64;LingMaxY=LingMaxY-1;}
}
//---------------------------------------------------------------------------
Conclusion
pas de bug sur mon PC Si tu a Borland C++ Bulder, envoi un E-Mail ici, stp Bonne programmation @+
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|