animimage in einen array

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

SupeRalF

Betreff: animimage in einen array

BeitragMi, Mai 28, 2008 20:24
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,

ich möchte ein animiertes Bild in ein Feld eines arrays speichern.
Bei nicht animierten bildern hat das wunderbar funktioniert, aber hierbei geht plötzlich gar nichts mehr, da die variablentypen nicht passen.

kann man die variablen so deklarieren, dass das doch geht?

mfg
SupeRalF

d-bug

BeitragMi, Mai 28, 2008 20:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein, mit LoadAnimImage geladenes Bild ist auch nur ein TImage. Zeig mal den relevanten Code bitte, denn irgendwie befürchte ich, dass der Fehler woanders liegt.

SupeRalF

BeitragMi, Mai 28, 2008 20:43
Antworten mit Zitat
Benutzer-Profile anzeigen
dies ist exakt der code, den ich nutze (unverändert)
damit wird ein ordner ausgelesen, in dem die gegner liegen als animationen) und anschließend automatisch der reihe nach in mein array geschrieben. ich habe den code schon einmal (mit anderen variablen) genutzt, um blöcke zu laden, die nicht animiert sind. da hat es gefunzt...


Code: [AUSKLAPPEN]
Global enemy_dir$[],i


enemy_dir=LoadDir("img/enemy/")

Global enemy[Len enemy_dir]


For i=0 To Len enemy_dir-1
   Stream=ReadFile("img/enemy/" + enemy_dir[i] + "frames")
   frames=ReadInt(stream)
   enemy[i] = LoadAnimImage ("img/enemy/" + enemy_dir[i] + "enemy.png", ImageWidth/frames,ImageHeight,0,frames)
Next

d-bug

BeitragMi, Mai 28, 2008 20:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Au weia... gewöhn dir SOFORT mal SuperStrict an.

Das kann so nicht funktionieren, da dein Array ein Integer-Array ist, LoadAnimImage dir aber keinen Integer zurück liefert sondern ein TImage-Object.

Also wäre dein Array:
Code: [AUSKLAPPEN]
Global Enemy:TImage[Len(enemy_dir)]


Um ehrlich zu sein verstehe ich eher nicht, warum LoadImage geklappt hat. Wink

FOODy

BeitragMi, Mai 28, 2008 21:02
Antworten mit Zitat
Benutzer-Profile anzeigen
@d-bug:
Im Non-Strict Modus werden die Objekte wie in Blitz3D behandelt. ( als Handles )

@SuperRalF:
Kann es evtl. an den nicht definierten ImageWidth und ImageHeight liegen?


Grüße,
FOODy

Edit:
Ich bin gleicher Meinung, was die Strict-Sache betrifft.
Wollte aber mit dem Hinweis oben nur darauf hinweisen, dass es weitere Unterschiede gibt als nur die Sache mit Variablen-nicht-explizit-deklarieren-müssen.
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB
  • Zuletzt bearbeitet von FOODy am Mi, Mai 28, 2008 21:24, insgesamt einmal bearbeitet

d-bug

BeitragMi, Mai 28, 2008 21:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Willst du ihn so weiter coden lassen? Dann bekommt er aber massive Probleme, wenn seine Codes mal was länger werden! Mal ganz davon ab, dass mir dieses Phänomen bereits unter gekommen ist im NON-Strict Modus! Aber schon okay... Jeder wie er mag!

SupeRalF

BeitragFr, Mai 30, 2008 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe jetzt das "TImage" reingesetzt. aber ich bekomme nach wie vor den Fehler

Compile Error
Types 'Int(TImage)' and 'Int' are unrelated

also daran scheints ja nicht zu liegen...


[Edit]: Das mit Imagewidth hat gefunzt! hätt ich eigentlich auch selbst drauf kommen können!
 

Dreamora

BeitragFr, Mai 30, 2008 21:57
Antworten mit Zitat
Benutzer-Profile anzeigen
du kannst aus einem objekt kein int machen.
du kannst TImage objekte nur in eine TImage referenz speichern.

wenn du mit ints arbeiten willst statt mit objekten, benutze Blitz3D / BlitzPlus
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

SupeRalF

BeitragSa, Mai 31, 2008 9:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Dreamora hat Folgendes geschrieben:
du kannst aus einem objekt kein int machen.
du kannst TImage objekte nur in eine TImage referenz speichern.

wenn du mit ints arbeiten willst statt mit objekten, benutze Blitz3D / BlitzPlus


ehrlichgesagt hab ich das jetzt zwar nicht verstanden, aber da ich weder Blitz 3D noch Blitz Plus besitze, kann ich nunmal nur Blitzmax benutzen
 

Dreamora

BeitragSa, Mai 31, 2008 11:14
Antworten mit Zitat
Benutzer-Profile anzeigen
du kannst nicht eine objekte Referenz nach Int konvertieren!
Du kannst auch nicht etwas, was TImage zurück gibt, in irgendwas anderes als eine Variable vom Typ TImage speichern.

am besten gehst du in den sticky hier im board und machst assaris tutorials. danach wird dir vieles klarer
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group