Image verschwindet nach Abgelaufener Zeit nicht!

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Kevin

Betreff: Image verschwindet nach Abgelaufener Zeit nicht!

BeitragDi, Mai 03, 2011 21:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo BlitzBasic Community!
Ich Programmiere grade ein Menü für ein Game.
PROBLEM 1:
Ich habe die Images usw. schon Fertig, aber Das BackgroundImage verschwindet nach abgelaufener Zeit einfach nicht.
PROBLEM 2:
Der Mauszeiger Folgt meiner Maus nicht!

Code: [AUSKLAPPEN]
Graphics3D 1920,1080,32,2

Laden = LoadImage ("Menu\laden.bmp")
Button_off = LoadImage ("Menu\Button_off.bmp")
Button_on = LoadImage ("Menu\Button_on.bmp")
Mauszeiger = LoadImage ("Menu\Mauszeiger.bmp")

Global menu# = 1

DrawImage Laden, 0, 0



MaskImage Laden,255,0,255
MaskImage Button_off,255,0,255
MaskImage Button_on,255,0,255
MaskImage Mauszeiger,255,0,255


Delay (1)


While Not KeyHit (1)
   FreeImage laden
   MouseX ()
   MouseY ()
   DrawImage Mauszeiger, MouseX, MouseY
   If menu = 1 Then
      If  ImagesCollide (button_off, 20, 40, 0, Mauszeiger, MouseX, MouseY, 0) = 0 Then
         DrawImage Button_off, 20,40
         
      ElseIf ImagesCollide (button_off, 20, 40, 0, Mauszeiger, MouseX, MouseY, 0) = 1 Then
         DrawImage Button_on, 20,40
      EndIf
   EndIf
   
   
   Flip 0
   UpdateWorld
   RenderWorld ()
Wend
End


Vielen Dank im Vorraus

Mit freundlichen Grüßen

M0rgenstern

BeitragDi, Mai 03, 2011 21:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey.
Zwei Dinge:
Speicher MouseX() und MouseY() lieber in jedem Schleifendurchlauf in Variablen ab.
Also so:
BlitzBasic: [AUSKLAPPEN]
While Not KeyHit (1)
MausX = MouseX()
MausY = MouseY()
DrawImage Mauszeiger, MausX , MausY


Zu dem Problem mit dem Bild das nicht verschwindet: Ich seh nichtmal, wo du die Zeit überhaupt misst und es wäre schön, wenn du dich ein bisschen präziser ausdrücken würdest, welches Bild verschwinden soll und wenn du deine Probleme ein wenig detaillierter dalegen würdest.

Btw.: Was soll das FreeImage in der Hauptschleife?

Lg, M0rgenstern

Xeres

Moderator

BeitragDi, Mai 03, 2011 21:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Renderworld zeichnet im Normalzustand den Backbuffer voll, wenn du eine Kamera hättest...
Wenn der Mauszeiger über den Bildern erscheinen soll, musst du ihn als letztes über den ganzen Rest zeichnen.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Holzchopf

Meisterpacker

BeitragDi, Mai 03, 2011 22:57
Antworten mit Zitat
Benutzer-Profile anzeigen
FreeImage löscht ein Bild nicht vom Bildschirm, sondern aus dem RAM - es ist also eine ziemlich schlechte Idee, das in einer Schleife machen zu wollen =/ Um etwas vom Bildschirm weg zu kriegen, muss man es einfach übermalen. Am einfachsten ist das mit Cls.

mfG
Holzchopf
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Midimaster

BeitragMi, Mai 04, 2011 9:13
Antworten mit Zitat
Benutzer-Profile anzeigen
ich würde dir dringend raten, die Kapitel I und II aus meinem "Programm-Ablauf"-Tutorial durchzuarbeiten:

https://www.blitzforum.de/foru...hp?t=33584


Die Repeat-Schleife beginnt immer mit einem CLS und endet mit einem FLIP 0!
Nur dadurch wird sich der Zustand auf dem Bildschirm ändern, ansonsten übermalst Du alles.

RenderWorld[] und UpdateWorld() benötigst du nur in 3D-Spielen. Der RenderWorld() übermalt dabei alle vorher gemalten Bildelemente. Wenn Du 2D-Images oder Texte anzeigen lassen willst, müssen die Befehle dafür nach dem RenderWorld() stehen.

Reihenfolge:
BlitzBasic: [AUSKLAPPEN]
;vorspann
Laden=LoadIm....
Zeit=MilliSecs()+1000
Repeat
Cls
DrawImage Laden...
Flip 0
Until MilliSecs()>Zeit

;Menü
Repeat
Cls
UpdateWorld()
RenderWorld()
; weitere 2D-Befehle...
Flip 0
Until KeyHit(1)


Außerdem empfehle ich Dir das Kapitel III aus meinem "Timer-Toutorial":

https://www.blitzforum.de/foru...hp?t=34436

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group