Problem mit Maus, Bild flattert immer.

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Yuen

Betreff: Problem mit Maus, Bild flattert immer.

BeitragMi, Mai 10, 2006 16:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, ich hab ein Problem mit der Maus. Ich will in meinem Spiel ne Maus haben, hab auch ne BMP Datei und nutze die x und y Kordination, alles schön und gut. Das Problem ist damit man sieht das sich die Maus(die BMP Datei) auch bewegt muß ich ja immer FLIP einstetzten und durch das einsetzten, flakert das Bild immer.

EDIT: Was ich noch vergessen habe, wenn ich ALLE Bilder in einer Schleife immer mit FLIP bearbeite, ist alles ok nur der PC hängt sich irgendwann auf. Deswegen lasse ich nur die Maus FLIPPEN.

Henry

BeitragMi, Mai 10, 2006 16:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht postest Du einfach mal den Code...mit 'Hellsehen' klappt es bei mir irgendwie noch nicht. Confused
Aiya Eärendil Elenion Ancalima!

All you have to decide is what to do with the time that is given to you.

Robsite.de ist eine Anlaufstelle für Tutorials und Tools, die Noobs das Leben leichter machen!
Forensuche ist nicht nur als Lückenfüller in den oberen Links gedacht!

Christoph

BeitragMi, Mai 10, 2006 16:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Führ mich hört sich das so an, als würdest du in einem Durchgang
mehrere Male Flip benutzen. Das geht nich, dann flimmerts!!! Very Happy

Lunatix

BeitragMi, Mai 10, 2006 16:25
Antworten mit Zitat
Benutzer-Profile anzeigen
SetBuffer BackBuffer() -> auch sehr wichtig!
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Christoph

BeitragMi, Mai 10, 2006 16:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ganz eindeutig...
...hier ist ein code gefragt Wink !!!

Yuen

BeitragMi, Mai 10, 2006 16:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Code sieht folgendermaßen aus :

Code: [AUSKLAPPEN]

...
;Lade 2D Objekte
box1=LoadImage("gui/box1.JPG")
menoben=LoadImage("gui/menoben.JPG")
menlinks=LoadImage("gui/menlinks.JPG")
menrechts=LoadImage("gui/menrechts.JPG")
menunten=LoadImage("gui/menunten.JPG")
maus=LoadImage("data/maus.BMP")

;Musikdateien laden
menue_msk=LoadSound("musik/menue.mp3")


;Funktionen
Function maus(maus,mausx,mausy)
While Not KeyHit(1)
mausx=MouseX()
mausy=MouseY()
DrawImage maus,mausx,mausy
Flip
Wend
End Function


;spiele Musik
LoopSound menue_msk
kanal1=PlaySound(menue_msk)

;Zeige 2D Objekte
DrawImage box1,252,20
DrawImage menoben,0,150
DrawImage menlinks,0,240
DrawImage menrechts,124,240
DrawImage menunten,0,366


;Schreibe Text
font1=LoadFont("Comic Sans MS",40,True,False,False)
font2=LoadFont("Comic Sans MS",15,True,False,False)
Color 255,255,255

SetFont font1
Text 357,70,titel$
SetFont font2
Text 58,240,single$
Text 58,255,multi$
Text 58,270,option$
Text 58,285,credits$
Text 58,300,ende$


maus(maus,mausx,mausy)

ClearWorld
Cls
End

nX^

BeitragMi, Mai 10, 2006 17:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics 800,600,32,2
Setbuffer Backbuffer()

;Alles was geladen werden soll hier

Repeat
Cls

;Dein Code

Flip
Until Keyhit(1)
End


Flip und eine Hauptschleife fehlt und es der Backbuffer wird auch nicht gesetzt bei dir und ClearWorld() ist ein 3D Befehl den man nicht für 2D braucht. Very Happy

Yuen

BeitragMi, Mai 10, 2006 17:07
Antworten mit Zitat
Benutzer-Profile anzeigen
das ist ja nicht der komplette code, flip und eine schleife sind in der funktion maus(hatte vorher flip in einer hauptschleife, selber effekt), ich habe auch 3D Elemente und der Backbuffer ist auch gesetzt.

nX^

BeitragMi, Mai 10, 2006 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann benutzt du höchswarscheinlich 2x Flip
Einmal in der Hauptschleife und vielleicht in einer Funktion.

Yuen

BeitragMi, Mai 10, 2006 17:51
Antworten mit Zitat
Benutzer-Profile anzeigen
ne, benutze Flip nur einmal, das Problem ist, das ich FLIP in einer schleife nutze in der NUR die Maus dargestellt wird, die gui aber nicht, die wird vorher dargestellt und in der schleife wird dann die Maus immer wieder geflippt. Ich könnte natürlich einfach ALLE Bilder immer flippen lassen, dann wäre das flakern weg aber die performance ... der PC schmiert dann ab.
 

Darren

BeitragMi, Mai 10, 2006 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst nicht für jedes Bild "flippen"!

Einmal nachdem du alles gezeichnet hast reicht!
MFG Darren

Yuen

BeitragMi, Mai 10, 2006 18:03
Antworten mit Zitat
Benutzer-Profile anzeigen
ja war mir klar, hab den fehler auch entdeckt, es liegt am Text. Während man bei den Bildern, einmal lädt und dann über Flip so oft wie man will darstellen kann, wird der Text IMEMR WIEDER über den alten geschrieben.

Das Problem ist jetzt nur, wenn ich zuerst den Text schreibe und danach die Bilder lade, werden die Bilder ÜBER den Text gezeichnet.

Lunatix

BeitragMi, Mai 10, 2006 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
... CLS ?? Dann wird der text au net mehr übergeschrieben, und solltest du Print benutzen, das ist sowieso Böse, weils die Zeilen nach unten verschiebt
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Yuen

BeitragMi, Mai 10, 2006 19:02
Antworten mit Zitat
Benutzer-Profile anzeigen
warum guckt keienr in den Code ? - ich benutze kein Print und wenn ich cls nutze, werden die Bilder ja auch gelöscht.

skey-z

BeitragMi, Mai 10, 2006 19:17
Antworten mit Zitat
Benutzer-Profile anzeigen
weil, entschuldige den Ausdruck, dein Code fürn arsch ist.

Du lässt nur die maus in der schleife zeichnen, der Text steht davor, muss aber auch in der schleife ausgegeben werden, schau dir mal den Code von nX^ an, dort erklärt sich alles.
du erstellst erst das Fenster und setzt Doublebuffering

dann lädst du alle Bilder und sounds

in der schleife wird dann alles dargestellt, was auf dem Bildschirm erscheinen soll, text und Bilder

>>Clearworld?
warum benutzt du das, erstellst du etwa nen Fenster im 3D Modus, obwohl du keine 3D Objekte benutzt, das verlangsamt die ausführung nur.
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

Christoph

BeitragFr, Mai 12, 2006 15:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Ausserdem würde ich pro Durchlauf immer alles neu zeichnen.

für mich sieht das so aus...

...du zeichnest geladene Bilder
...gehst in eine Schleife
...Zeichnest immer wieder die Maus.
...Bis Escape gedrückt wird
...dann ist ende

machs lieber so:
...schleifenanfang
...wenn du weißt, dass nicht der ganze Hintergrund vollgemalt wird->cls
...male alle Bilder an ihren Platz
...flip
...schleifenende

Wie nX^ und skey-z schon sagten, so wirds gemacht... Wink

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group