Bild mehrmals anzeigen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

mabox

Betreff: Bild mehrmals anzeigen

BeitragDi, Aug 21, 2007 17:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich will ein Bild anzeigen, wenn man eine Taste drückt soll das selbe Bild nebendran nochmal erscheinen, das erste Bild soll aber dableiben.
wie bekomme ich das hin ???

mein bisheriger Code: [AUSKLAPPEN]
.....
Repeat
   x = x+18
   taste = WaitKey()
   DrawImage Hintergrund,0,0
   DrawImage Bild,x,438
   Flip
Until taste = 13
......
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage
 

DerSatan

Gast

BeitragDi, Aug 21, 2007 17:55
Antworten mit Zitat
wie wäre es damit, dass du einfach eine If-Abfrage machst, in der du nachschaust ob die bestimmte Taste gedrückt ist; wenn das so ist, machst du einfach DrawImage bild,x,y...

ausserdem würde ich das mit dem taste=waitkey() lassen da die Schleife zwar solange läuft, bis du diese Taste drückst, aber in jedem Durchlauf anhält...
[/code]

mabox

BeitragDi, Aug 21, 2007 18:36
Antworten mit Zitat
Benutzer-Profile anzeigen
hm.. das geht leider nicht der Code geht eigentlich noch weiter und die Variable "taste" wird in jedem Schleifendurchlauf in einer Externen Datei gespeichert, deshalb kann ich das nicht weglassen.
Code: [AUSKLAPPEN]

Repeat
   x = x+18
   taste = WaitKey()
   DrawImage Hintergrund,0,0
   DrawImage Bild,x,438
   Flip
   WriteLine Txtdatei, taste
Until taste = 13
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

pixelshooter

BeitragDi, Aug 21, 2007 18:49
Antworten mit Zitat
Benutzer-Profile anzeigen
was funktioniert denn daran jetzt nicht?
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc

SpionAtom

BeitragDi, Aug 21, 2007 18:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei deinem Problem sehe ich gerade zwei Möglichkeiten, sie zu bewältigen.
1. Mal dein Bild statt auf den Bildschirm einfach auf das Hintergrundbild (Verwende ImageBuffer())
2. Zähle, wie oft du schon eine Taste gedrückt hast, und Male die Bilder per FOR..NEXT-Schleife an die entsprechende Stelle
Code: [AUSKLAPPEN]
Repeat
   s = s + 1
   taste = WaitKey()
 Cls
  DrawImage Hintergrund,0,0 
   For i = 1 To s
   DrawImage Bild, i * 18, 438
   Next
   Flip
   WriteLine Txtdatei, taste
Until taste = 13
(s zählt die Anzahl der Tastendrucks)
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

pixelshooter

BeitragDi, Aug 21, 2007 19:01
Antworten mit Zitat
Benutzer-Profile anzeigen
um den code oben beizubehalten,könnte man auch alles in den frontbuffer malen, also flip weg lassen. Ist sicher net gut, behält aber obigen code bei.
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc

mabox

Betreff: thx

BeitragDi, Aug 21, 2007 19:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank für eure Hilfe!!!
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage
 

bruce85

BeitragDi, Aug 21, 2007 21:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Du könntest das auch mit Types machen, hier mal ein beispiel:

Code: [AUSKLAPPEN]
Graphics 640,480,16,2
SetBuffer BackBuffer()

;Bild laden
Global BildDatei = LoadImage("bild.bmp")
MaskImage BildDatei,255,0,255

;Type für die Bilder erstellen
Type Bild
  Field bild_x
  Field bild_y
End Type
Global bild_breite% = ImageWidth(BildDatei) ;Bildbreite ermitteln
Global bild_x_temp% = 20

;Funktion BildErstellen aufrufen
BildErstellen()

Repeat
  Cls

  ;Alle Bilder abfragen die erstellt wurden
  For b.Bild = Each Bild
    ;Bild zeichnen
    DrawImage BildDatei,b\bild_x,b\bild_y
  Next

  ;Wenn die Leertaste gedrückt wird, weitere Bilder erstellen
  If KeyHit(57) And KeyDown(57) Then
    BildErstellen()
  EndIf

  Flip
Until KeyHit(1)

End

Function BildErstellen()
  ;Neues Bild erstellen
  b.Bild = New Bild
  b\bild_x = bild_x_temp%
  b\bild_y = 20
  ;bild_x_temp% + bild_breite% dazuzählen um das Bild nebendran zuzeichnen
  bild_x_temp% = bild_x_temp% + bild_breite%
End Function


es kommt drauf an was du vor hast mehrere gleiche Bilder zuzeichnen.

MfG
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group