DrawImage Problem
Übersicht

MynBetreff: DrawImage Problem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Guten Tag Community,
das Problem was ich habe ist ehr eine Frage... Ich möchte mit DrawImage ein Bild zeichnen, und der Bildname steht in einen string. Also z.B. string$ = "haus" DrawImage string$ ,0 ,0 Beim mir kommt dann immer die Meldung dass das Bild nicht existiert... wenn ich direkt den Namen eingebe funktioniert es perfekt. Geht das überhaupt so? |
||
PacMani |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie willst du denn einen String zeichnen? Du musst ein Image erst laden mit LoadImage und darin dann den Dateinamen zum Haus angeben.
Also Code: [AUSKLAPPEN] Local BildVomHaus = LoadImage("haus.png")
DrawImage BildVomHaus Aber ich glaube ich sehe jetzt, was du meinst. Du hast also in die Variable "haus" ein Bild geladen und möchtest diesen Variablennamen in eine Stringvariable speichern. Das geht leider nicht. Der Compiler hat ja im entstehenden Programm nicht die Namen vermerkt, wie sie im Programmcode stehen sondern merkt sich nur Speicherbereiche. |
||
![]() |
darth |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
normalerweise lädt man ein Bild ausserhalb der Hauptschleife und verwendet es dann über das Handle, also so: BlitzBasic: [AUSKLAPPEN] Local path$ = "haus.jpg" danach kannst du das Bild über den Variabelnamen image ansprechen. BlitzBasic: [AUSKLAPPEN] DrawImage image, 0, 0 Ich bin mir gar nicht sicher, ob du das Bild direkt beim Zeichnen laden könntest. Aber selbst wenn es ginge, solltest du es nicht machen, weil das Bild sonst stets neu geladen werden müsste, was unheimlich langsam ist. Daten laden dauert Zeit, man sollte es nur einmal am Anfang machen müssen, und nicht während einer kontinuierlichen Schleife. (Anders natürlich wenn man riesige Welten ohne Ladezeit begehen will, dann muss man das irgendwie streamen. Aber damit kenn ich mich nicht wirklich aus :>) MfG, Darth |
||
Diese Signatur ist leer. |
Myn |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Geladen wird es natürlich voher.
Ich möchte nur das er das Bild zeichnet, so wie der String heißt... Das geht nicht? |
||
PacMani |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Eigentlich sollte das eher so gehen:
Code: [AUSKLAPPEN] Local Bild1 = LoadImage("bla.png") Local Bild2 = LoadImage("dings.png") Local ZuZeichnendesBild = Bild1 DrawImage(ZuZeichnendesBild, ...) |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
wie lautet denn die Zeile, in der Du das Bild geladen hast? | ||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also mal angenommen, dass du das mitn Laden schon richtig hast und dir die Sache mitn String "mit einbeziehen" Probleme macht so würd ich fürs erste mal zu If oder Select raten, etwa so:
BlitzBasic: [AUSKLAPPEN] If String$="haus" Then Elegantere Lösungen gibts zwar, aber fürn Anfang reicht das ja. mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
Myn |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das wollte ich ja gerade nicht, für jedes Bild eine Zeile.. sondern einfach das Bild zeichen das so heißt wie das
string... geladen wird es ja richtig... |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nun schreib uns doch mal bitte die Zeile, wo das Bild geladen wird....
Ich muss die sehen, um Dir helfen zu können! |
||
Myn |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Z.B.
;Holz i1H = LoadImage ("media/iv/Rohstoffe/i1h.jpg") ;Getreide i1G = LoadImage ("media/iv/Rohstoffe/i1g.jpg") ;Mehl i1M = LoadImage ("media/iv/Rohstoffe/i1m.jpg") ;Fleisch i1F = LoadImage ("media/iv/Rohstoffe/i1f.jpg") ;Knolle i1kn = LoadImage ("media/iv/Rohstoffe/i1kn.jpg") ;Wiesenkraut i1wk= LoadImage ("media/iv/Rohstoffe/i1wk.jpg") ;Kräuter i1K = LoadImage ("media/iv/Rohstoffe/i1k.jpg") ;Fisch i1FF = LoadImage ("media/iv/Rohstoffe/i1ff.jpg") Habe die Bilder doch auch ohne String voher benutz... aber so würde es zeilen sparen.. |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was du vorhast geht so nicht. Variablen über ihren Namen anzusprechen ist vielleicht in einigen Scriptsprachen möglich, aber nicht in BlitzBasic. Du könntest es aber auch so lösen:
Mach ein Type mit den Feldern name$ und img, eine Funktion, der du den Namen (als String) und den Pfad übergibst und die dann eine neue Type-Instanz mit den Feldern anlegt, und eine Funktion, der du einen Namen (als String) übergibst, dir in allen Type-Instanzen die gleichnamige raus sucht und dir das entsprechende Bild-Handle zurückgibt. mfG |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das müsstest du mit Types lösen können... Name & Bild in einem Eintrag zuweisen und das passende heraussuchen. Ist aber nicht unbedingt zu empfehlen, da das mit zunehmender Bilderzahl langsamer wird. | ||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Sterbendes Lüftlein |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Text entfernt | ||
Myn |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab auf dem Gebiet Types nur wenig Erfahrung... könnt ihr mir das mal konkret zu meinem
Problem da zeigen? Wäre nett da ich eigentlich nicht voher weiter machen kann^^ |
||
![]() |
Sir Gauss der III |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich würd mal sagen dass du am besten ein BlitzBasic: [AUSKLAPPEN] Dimfeld machst. bei deinen Rohstoffen könntest du sie alle so laden und zeichnen: Zitat: Dim rohstoffbild(100)
.... For i=1 To anzahlderrohstoffe rohstoffbild(i)=LoadImage("Ordner\bild"+i+".bmp") Next .... For i=1 To anzahlderrohstoffe DrawImage rohstoffbild(i),x,y Next ... wenn du dir merkst was welcher Rohstoff ist, evtl in ner .TXT datei notizen dazu machst ist das der einfachste weg, denk ich mal. Gruß Sir Gauss |
||
Myn |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Versuch ich morgen mal was mit zu machen... | ||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würde eine solche Struktur vorschlagen:
BlitzBasic: [AUSKLAPPEN] Type TBild |
||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group