Freeimage???

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Smokie

Betreff: Freeimage???

BeitragSo, Okt 03, 2004 12:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich schreibe gerade ein programm ist erst in der anfangsphase also noch nicht sehr gut.Ich starte als Figur die nach rechts schaut und will, dass wnn ich nach oben drücke das Bild nach rechts gelöscht wird und an dessen stelle das Bild nach oben erscheint.Ich benutze datzu den Befehl Freeimage aba immer wenn ich nach oben drücke kommt die meldung i iilegale memorie adress?? hier der Code
Code: [AUSKLAPPEN]
Graphics 1024,768,32,1
SetBuffer BackBuffer()
;Variablen
x=50
y=50
;Datein Laden
Mister =LoadImage("Mesh.bmp")
Mistero = LoadImage("Mesho.bmp")
Misterl =LoadImage("Meshl.bmp")
Repeat
ClsColor 0,0,255
Cls
;Bilder einlesen
DrawImage Mister,x,y

;Pfeiltasten abfragen
If KeyDown(205) Then x = x + 5  ;rechts
If KeyDown(203) Then x = x - 5  DrawImage Misterl, x,y ;links
If KeyDown(200) Then y = y - 5  DrawImage Mistero, x,y ;oben
If KeyDown(208) Then y = y + 5 ;unten
;randüberschreitung verhindern
If y < 0 Then y = 0
If y > 730 Then y = 730
If x < 0 Then x = 0
If x > 995 Then x = 995
Flip
Until KeyHit(1)

was ist daran falsch?? Idea
M-Soft Studios Mit selbst gemachtem Forum!!!
Unbequem lebt's sich schwer.
Musik macht erst Spaß, wenn man sie mit 2,8 facher Geschwindigkeit hört
Zuletzt bearbeitet von Smokie am Fr Jan 01, 1888 51:58 PM, insgesamt 1000-mal bearbeitet
 

Timo

BeitragSo, Okt 03, 2004 12:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Sind die Bilder auch alle im richtigen Ordner (Also der Ordner wo sich dein Spiel befindet) bzw. richtig geschrieben? das könnten zumindest Fehlerursachen sein...

Smokie

BeitragSo, Okt 03, 2004 13:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja sind sie weill wenn ich freeimage weglasse geht das spiel nur snd wenn ich z.b. nach oben laufe 2 Figuren Crying or Very sad die nach rechts und die nach oben. Mad
M-Soft Studios Mit selbst gemachtem Forum!!!
Unbequem lebt's sich schwer.
Musik macht erst Spaß, wenn man sie mit 2,8 facher Geschwindigkeit hört
Zuletzt bearbeitet von Smokie am Fr Jan 01, 1888 51:58 PM, insgesamt 1000-mal bearbeitet

BladeRunner

Moderator

BeitragSo, Okt 03, 2004 14:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit fReeimage löschst du ein Bild aus dem "Gedächtnis" von BlitzBasic, d.h. du darfst es danach nicht mehr verwenden. Wenn du ein Bild "nur" nicht mehr zeichnen willst, lass den drawimage-befehl einfach weg.
Dein Code malt nur 2 Bilder wenn sowohl links als auch oben gedrückt wurde.
Mein Tip: benutze eine Richhtungsvariable, und nur nach der zeichnest du den Player ein. Das vermeidet dann doppeltes einzeichnen.
zB.:
Code: [AUSKLAPPEN]
if keydown(200) then richtung =1 : y=y-5
;entsprechend für die anderen Richtungen.


if richtung = 1 then drawimage mister0,x,y

Wenn du dich dann noch mit loadanimimage() auseinandersetzt (siehe OnlineHilfe) kannst du alle Richtungen in einer Graphik zusammenfassen und brauchst nur noch einen einzigen Drawbefehl.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Smokie

BeitragSo, Okt 03, 2004 18:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke jezt geht es ich weiß zwar nicht warum aba toll Laughing
mfg
Smokie
M-Soft Studios Mit selbst gemachtem Forum!!!
Unbequem lebt's sich schwer.
Musik macht erst Spaß, wenn man sie mit 2,8 facher Geschwindigkeit hört
Zuletzt bearbeitet von Smokie am Fr Jan 01, 1888 51:58 PM, insgesamt 1000-mal bearbeitet

joachim_neu

BeitragSo, Okt 03, 2004 19:12
Antworten mit Zitat
Benutzer-Profile anzeigen
weil du mit freeimage kein bild vom bildschirm löscht, sondern nur aus der variable.
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de
 

Timo

BeitragSo, Okt 03, 2004 20:13
Antworten mit Zitat
Benutzer-Profile anzeigen
der computer läd ein Bild in den Speicher und gibt einen "Zeiger" zurück. Dies ist die Speicheradresse. Damit man nicht im Zahlengewirr untergeht, kam man auf die Idee, diesen Zeigern namen geben zu können. Das sind dann die Imagevariablen, bei dir zum Beispiel Mister0 oder Mister1. Wenn man diese mit DrawImage zeichnet, guckt der Compi nach was er denn alles zeichnen muss. Löschen geht deshalb nicht, man könnte es auch als eine Kopie ansehen. Wenn du FreeImage benutzt, dann löscht du das Bild aus dem Speicher, d.h es gibt auch keine Speicheradresse mehr und deshalb auch keinen Zeiger ------> Illegal Memory adress ("ungültige Speicheradresse") Smile

Kulle

BeitragSo, Okt 03, 2004 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
der computer läd ein Bild in den Speicher und gibt einen "Zeiger" zurück. Dies ist die Speicheradresse.


das ist so nicht richtig! ein "handle" ist kein "pointer" (zeiger) es gibt
nur den pointer in einer linked list an.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group