Eine Frage zu Front/BackBuffer
Übersicht

![]() |
JulzBetreff: Eine Frage zu Front/BackBuffer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also meine Frage ist muss der Befehl setbuffer Backbuffer() in die hauptschleife des spiels oder irgendwo da vor ??? hier z.B.
Code: [AUSKLAPPEN] APPTITLE "Sinus Kurve" graphics 640, 480 setbuffer backbuffer() monster = loadimage("monster.bmp") player = loadimage("player.bmp") pos_y = 10 x = 300 y = 300 rechts = 205 links = 203 hoch = 200 runter = 208 repeat cls hoehe = 100 ;<---------------------- Die Variable i = i + 1 pos_y = pos_y + 1 sin_w = sin(i) * hoehe drawimage monster, sin_w + 200, pos_y if i = 641 then i = 1 if keydown(rechts) then x = x + 2 if keydown(links) then x = x - 2 if keydown(hoch) then y = y - 2 if keydown(runter) then y = y + 2 drawimage player, x, y flip until keydown(1) und noch eine frage: Wenn ich die varibale hoehe in der hauptschleife auf rnd(300) setzte dann flakert das image so rum. Ich will aber das die kurve pro durchlauf immer verschieden groß ist ![]() THX schon mal |
||
morszeckGast |
![]() Antworten mit Zitat |
|
---|---|---|
Der befehl SetBuffer BackBuffer() muss nur am Anfang hin! Nicht in die Hauptschleife! | ||
![]() |
Julz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Axo ok aber warum ich will den buffer doch am anfang jeden durchlaufs auf backbuffer setzten um da rein zu malen/schreiben sonst was und am ende wird er gezeigt also geflipt
und was ist mit der anderen frage auch ne idee ??? |
||
![]() |
bruZard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn Du am Anfang Backbuffer() setzt, verwenden alle Grafikbefehle _immer_ den Backbuffer zum zeichnen, da musst Du Dich nicht drum kümmern. | ||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
![]() |
Julz |
![]() Antworten mit Zitat ![]() |
---|---|---|
axo ok danke und hätte vielleicht jemand auch ne antwort auf meine zweite frage steht ganz unten in meinem ersten text | ||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Pseudo:
Code: [AUSKLAPPEN] hoehe=hoehe+speed
if hoehe=min_hoehe then speed=rand(1,3) if hoehe=max_hoehe then speeed=rand(-3,-1) So oder so ähnlich ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
hamZtaAdministratorBetreff: hm |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja klar es flackert rum weil du jeden durchlauf die hoehe neu veränderst
1 Durchlauf = Das Bild wird 1 mal gezeichnet veränder die variable nich jeden durchlauf! |
||
Blog. |
![]() |
Julz |
![]() Antworten mit Zitat ![]() |
---|---|---|
@hamZta wie oft soll ich dann die variable ändern ??? | ||
![]() |
hamZtaAdministratorBetreff: ok |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn ich dich recht verstehe soll dein monster im kreis laufen!
speichere dir die Startposition. du überprüfst die aktuelle position mit der gespeicherten. Wenn sie übereinstimmen dann berechnest du die hoehe mit Rnd neu. ich hoffe ich hab dich richtig verstanden |
||
Blog. |
![]() |
Julz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also wenn ich das richtig verstanden hab dann meinst du das so
Code: [AUSKLAPPEN] APPTITLE "Sinus Kurve" graphics 640, 480 setbuffer backbuffer() monster = loadimage("monster.bmp") player = loadimage("car.bmp") hoehe = 300 dim bumm(20,2) pos_y = 10 x = 300 y = 300 rechts = 205 links = 203 hoch = 200 runter = 208 repeat cls if keydown(rechts) then x = x + 2 if keydown(links) then x = x - 2 if keydown(hoch) then y = y - 2 if keydown(runter) then y = y + 2 drawimage player, x, y if keyhit(57) then schuss = schuss + 1 if schuss = 21 then schuss = 1 bumm(schuss,0) = 1 bumm(schuss,1) = x bumm(schuss,2) = y endif for l = 1 to 20 if bumm(l,0) = 1 then plot bumm(l,1), bumm(l,2) bumm(l,2) = bumm(l,2) - 20 endif next i = i + 1 pos_y = pos_y + 1 sin_w = sin(i) * hoehe drawimage monster, sin_w + 200, pos_y if i = 641 then ; Hier ist die stelle i = 1 ; allerdings funst hoehe = rnd(300) ; das nicht so ganz endif ; ka warum flip until keydown(1) und wie kann ich den die genaue position des monsters ermitteln um eine kollision zu erstellen ??? |
||
![]() |
WEBLink |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kannst du den Code bitte ein paar Komentare hinzufügen? Hab grad kein BB ums zu probieren. | ||
TorixGast |
![]() Antworten mit Zitat |
|
---|---|---|
hi.
merke dir nach dem setzen deiner grafik die position. beim nächsten durchlauf fragst du vor dem setzen der grafik einfach mit if ab ob der wert sich um 1 + oder - verändert hat.wenn ja setzen.wenn nicht...... und das flackern ist weg. ![]() dann würde ich nicht jedes mal den wert sin nicht neu errechnen lassen. sondern aus einer tabelle erfragen welche ich am anfang meines prg´s 1x erzeugt habe.ist schneller. ![]() dann schleppe nicht sooooo viele komma stellen mit dir rum.die brauchst du ja nicht wiklich zum setzen auf dem bildschirm. bringt auch noch mal geschwindigkeit. ![]() das die ganze sache nicht flackert bau eine dyna. warte schleife ein. z.b. über den timerbefehl. damit dein spiel wenn es fertig ist auf jedem rechner gleich schnell läuft. ![]() gruß torix |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group