DrawImage in einer Funktion, wo ist der Fehler?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

BlackNetrunner

Betreff: DrawImage in einer Funktion, wo ist der Fehler?

BeitragFr, Jun 10, 2005 16:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Es ist nur ein kurzer Code, ihr seht schon worauf ich hinaus will. Wiso funktioniert der Code hier nicht? Was hab ich falsch gemacht?
THX


BlitzBasic: [AUSKLAPPEN]

Global wall01a =LoadImage(\"gfx/wall01a.png\")
Global wall01b =LoadImage(\"gfx/wall01b.png\")


Repeat

dw(01,a)
dw(01,b)

If KeyHit(1) Then
end_repeat = 1
EndIf

Until end_repeat = 1



Function dw(nummer$,nummer_b$)

wall$ = \"wall\" + nummer$ + nummer_b$
DrawImage wall$,10,20

End Function

bruZard

BeitragFr, Jun 10, 2005 16:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Was soll er denn dort zeichnen?? Einen String?!? Schaue Dir nochmal ganz genau an wie DrawImage funktioniert.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image
 

BlackTermi

BeitragFr, Jun 10, 2005 16:10
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]



Global db= LoadImage(\"unserimage.bmp\")



While Not KeyHit(1)
Cls

malen()

Flip
Wend



Function malen()
DrawImage db,Rand(0,800),Rand(0,600)

End Function





so würde drawimage funktionieren...
keine ahnung was du sonst mit den strings da machen willst....

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragFr, Jun 10, 2005 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab das mal halbwegs abgeändert, obwohl ich nicht genau weiß was du da genau geplant hast!
BlitzBasic: [AUSKLAPPEN]
Global wall01a  =LoadImage(\"gfx/wall01a.png\") 
Global wall01b =LoadImage(\"gfx/wall01b.png\")

Repeat
dw(\"01\",a) ;Strings immer innerhalb Anführungszeichen
dw(\"02\",b) ; a und b hat immer den wert 0
If KeyHit(1) Then end_repeat = 1

Until end_repeat = 1

Function dw(nummer$,nummer_b$)
; wall + 01 + 0
wall$ = \"wall\" + nummer$ + nummer_b$;nummer_b$ ist immer \"0\"
;Strings können nur mit Print oder Text auf dem Bildschirm ausgegeben werden
Text wall$,0,0
DrawImage wall01a,0,20 ; Image kannst du nur vorher geladene Bilder angeben
DrawImage wall01b,200,200
End Function


Sehe gerade das ich mal wieder zu den "schnellen" gehöre!
EGAL!
[BB2D | BB3D | BB+]
 

BlackNetrunner

BeitragFr, Jun 10, 2005 16:32
Antworten mit Zitat
Benutzer-Profile anzeigen
OK das mit den Strings war ziemlich verwirrend. Hier der geänderte Code:

BlitzBasic: [AUSKLAPPEN]

;In diesem kurzen Programm will ich mit Hilfe einer Funktion
;png Grafiken zeichnen (die überlappen sich jetzt zwar aber das ist egal)

Global wall01a =LoadImage(\"gfx/wall01a.png\")
Global wall01b =LoadImage(\"gfx/wall01b.png\")
Global wall02a =LoadImage(\"gfx/wall02a.png\")
Global wall02b =LoadImage(\"gfx/wall02b.png\")


Repeat

draw_wall(01,a)
draw_wall(01,b)
draw_wall(02,a)
draw_wall(02,b)

Forever



;ich habe diese funktion erstellt damit ich
;nicht jedes mal DrawImage Blabla,x,y schreiben muss
;mit Hilfe dieser Funktion brauch ich nur das hier schreiben:
;dw(01,a)
;dw(01,b)
;dw(02,a)
;dw(02,b)

Function draw_wall(nummer,nummer_b)

wall = \"wall\" + nummer + nummer_b
DrawImage wall,0,0

End Function

bruZard

BeitragFr, Jun 10, 2005 16:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist immer noch falsch ...

Du bekommst von LoadImage ein Handle (eine Nummer) zurück ... diese Nummer muss an DrawImage übergeben werden.

Mit dem Namen der Datei kann DrawImage rein garnichts anfangen.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image
 

BlackNetrunner

Betreff: Re: DrawImage in einer Funktion, wo ist der Fehler?

BeitragFr, Jun 10, 2005 16:54
Antworten mit Zitat
Benutzer-Profile anzeigen
BlackNetrunner hat Folgendes geschrieben:
Es ist nur ein kurzer Code, ihr seht schon worauf ich hinaus will. Wiso funktioniert der Code hier nicht? Was hab ich falsch gemacht?
THX


Ja genau, ich habe was falsch gemacht, DrawImage versteht das nicht, korrekt. Was hab ich denn falsch gemacht? Smile
 

BlackTermi

BeitragFr, Jun 10, 2005 16:56
Antworten mit Zitat
Benutzer-Profile anzeigen
beim laden bekommt die variable:
wall01a, einen wert, den handle der datei, und dieser wert ist es den du brauchst um die datei mit drawimage anzuzeigen... disen wert kannst du dann auch anderen variablen zuweisen....
 

gamble

BeitragFr, Jun 10, 2005 16:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Du versuchst immer noch einen String zu zeichnen.

BlitzBasic: [AUSKLAPPEN]

wall = \"wall\" + nummer + nummer_b


wall ist in diesem Fall ein String. Ich verstehe, dass du je nach Parameter ein anderes Bild zeichnen möchtest. Allerdings kannst du die Parameter nicht einfach an dein "Handle" anhängen, in der Hoffnung ein anderes Handle zu bekommen Wink
 

BlackNetrunner

BeitragFr, Jun 10, 2005 16:59
Antworten mit Zitat
Benutzer-Profile anzeigen
OK ich habs geschnallt aber welche anderen Möglichkeiten giebt es denn? Mein Ziel ist es nicht jedes mal DrawImage... zu schreiben.
  • Zuletzt bearbeitet von BlackNetrunner am Fr, Jun 10, 2005 17:03, insgesamt einmal bearbeitet

Bigmichi

BeitragFr, Jun 10, 2005 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
könntest die Bilder alle in ein Array laden und dan einfach machen

function draw(BildID:Long)
drawimage Array(BildID),.......
end function

bruZard

BeitragFr, Jun 10, 2005 17:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Überlege Dir aussagekräftige Variablennamen ...

folgender Code ist ungetestet (wozu auch bei so simplem Kram) und soll nur verdeutlichen was gemeint ist:
BlitzBasic: [AUSKLAPPEN]

wall01 = LoadImage(\"wall01.bmp\")
wall02 = LoadImage(\"wall02.bmp\")

Repeat
Cls

dw(wall01,100,100)

Flip
Until KeyHit(1) : End

Function dw(bild,x,y)
DrawImage bild,x,y
End Function
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

Bigmichi

BeitragFr, Jun 10, 2005 17:10
Antworten mit Zitat
Benutzer-Profile anzeigen
aber ob man nun dw(bild,x,y) schreibt oder drawimage(bild,x,y) o.O das bringt ja dan rein garnix o.O versteh echt nicht wofür man solche funktionen braucht... im Notfall kan man ja copy past verwenden mit Shortcuts =)
 

BlackNetrunner

BeitragFr, Jun 10, 2005 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Oder fragen wir so:

Wie konvertiere ich wall = "wall" + nummer + nummer_b so das es DrawImage versteht?

Und das mit dem Array, kann ich dazu vieleicht einen Beispiel Code bekommen?
 

gamble

BeitragFr, Jun 10, 2005 17:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich vermute das funktioniert so garnicht. Ich würd mit if Abfragen, welche Parameter übergeben wurden und dann das entsprechende Bild zeichnen.
 

BlackNetrunner

BeitragFr, Jun 10, 2005 17:22
Antworten mit Zitat
Benutzer-Profile anzeigen
AHH, ich hab jetzt geschnallt was ich falsch gemacht (gedacht) habe.

Vielen dank an euch!!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group