Clipper mit BltFast
-
Ich entwickle gerade ein 2D Adventure
Und nun habe ich BltFast verwendet, da muss ich mir einen eigeen Clipper schreiben, so ich habe mir folgende Befehle rausgesucht:
GetWindow
GetClientRectAber ich weiß nicht, wie ich diese verwenden kann? er zeigt immer an, dass ich eine neudefiniton mache, kann mir jemand mal tipps geben oder sagen, wie ich beide benutze?
-
Diese Befehle brauchst du da eigentlich nicht.
-
nein? welche dann, also hätte ich Blt statt BltFast genommen wäre es auf jedenfall einfacher, aber welche muss ich denn dann nehmen?
-
Wenn du kein Bild strecken oder zerren willst dann nimm BltFast. Es ist wesentlich schneller. Clipper scheinen bei BltFast nicht zu funktionieren, also musst du selber das Bild zuschneiden, aber so aufwändig ist es nicht. Es ist auf jeden Fall schneller, als nen fertigen Clipper zu verwenden:
SetRect(&SrcRect, 0, 0, pictureSizeX, pictureSizeY); if (drawX < 0) {SrcRect.left = -drawX; drawX = 0;} if (drawY < 0) {SrcRect.top = -drawY; drawY = 0;} if (drawX > ScreenX - (pictureSizeX+1)) SrcRect.right = ScreenX - drawX; if (drawY > ScreenY - (pictureSizeY+1)) SrcRect.bottom = ScreenY - drawY; // Jetzt blitten wir: try { BackBuffer->BltFast(drawX, drawY, surface, &SrcRect, DDBLTFAST_WAIT | DDBLTFAST_SRCCOLORKEY); } catch (...) { MessageBox(NULL, "Aua!", "Kritischer Fehler", 0); return; }
Des geht jetzt natürlich nur, wenn die Abmessungen des Bildes kleiner als dein Bildschirm ist.
-
-
@TGGC du bist eine Bereicherung für dieses Forum.
-
http://www.zfx.info/DisplayThread.php?MID=46573&SID=03a39740d18c23b5ecd36d331758c780
Ach so geht das auch? Das ist ja was völlig anderes
-
Original erstellt von <gast>:
@TGGC du bist eine Bereicherung für dieses Forum.Mach ich doch gerne!
-
der link funzt bei mir nicht, also er lädt nur das design und lädt nicht den text, aber nochmal zu deiner variante Optimizer:
pictureSizeX und pictureSizeY ist klar, aber wie hast du alle benannt:
SrcRect
drawX
drawY
ScreenX
ScreenY
pcitureSizeX
pcitureSizeY
-
schaut mich an
ich bin ein arroganter *****
!!!HELFT MIR
-
-
drawX und drawY sollen die Koordinaten sein, wo das Bild geblittet werden soll (da kommt also die linke obere Ecke hin
)
screenX und screenY sind die Bildschirmauflösung z.B. 800x600
Das ist wichtig, denn du musst ja testen, ob ein Teil des Bildes außerhalb des Bildschirms liegt.
Wenn noch nicht alles klar ist, frag einfach nochmal.
-
KUCKT MICH NUR MAL AN!!!
Verdammt was wurde aus mir! ich bin ein arroganter HURENSOHN
-
so nun ist alles klar, ich dachte drawX und drawY haben was mit DirectDraw zu tun, mit screnn, ja gut, aber so ist das auch ziemlich logisch, vielen dank
-
@Optimizer es gibt immer einen der besser ist. Nur TGCC kann man nicht übertreffen
-
Nimm den Code von Gombolo. Damit kannst du alles Clippen. Du lädst nur das Bitmap und übergibst es der Funktion. Der Rest wird von der Funktion erlädigt. Ob das Bitmap nun riesen groß ist oder winzig klein ist.
-
Code von Gombolo? kenne ich nicht, kannst du mir freundlicherweise einen link geben?
-
-
Ich finde, den minderwertigen Angehörigen der Spezies ZFX'ler sollte man das posten hier verbieten, die versuchen nur Streit anzufangen und verstecken sich dabei noch unter dem Deckmantel der Anonymität.
Nur TGCC kann man nicht übertreffen
Kloar, ich bin besser als der, 100%!
-
@Optimizer es gibt immer einen der besser ist. Nur TGCC kann man nicht übertreffen
Das ist mir wurscht, du Troll.
Ich helfe einfach so gut ich kann -.-
[ Dieser Beitrag wurde am 19.05.2003 um 17:11 Uhr von Optimizer editiert. ]