Type global initializers must be constant [erledigt]
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
JustusBetreff: Type global initializers must be constant [erledigt] |
So, Nov 06, 2005 13:23 Antworten mit Zitat |
|
---|---|---|
Ich habe mir Klips Thread mal angeschaut und möchte gerne für die Ballons in JumpingClown auch so etwas ausgefeiltes haben. Doch ich finde den Fehler nicht:
Immer bekomme ich einen Compile Error mit der Nachricht "Type global initializers must be constant". Bestimmt total banal, aber irgendwie sehe ich den Quell des Übels nicht. Hier die Klasse (ich hoffe so nennt man dieses Gebilde): BlitzMax: [AUSKLAPPEN] Type ballons |
||
- Zuletzt bearbeitet von Justus am So, Nov 06, 2005 14:13, insgesamt einmal bearbeitet
TheShadowModerator |
So, Nov 06, 2005 13:38 Antworten mit Zitat |
|
---|---|---|
vermutlich
Global BallonList:TList = CreateList() mach doch: Method new() If BallonList=null then BallonList = CreateList() EndMethod |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
Justus |
So, Nov 06, 2005 13:46 Antworten mit Zitat |
|
---|---|---|
Nein, das hat leider keinen Effekt.
Er zeigt bei der Fehlermeldung auf die Methode Draw_Ballon(). Doch wenn ich die auskommentiere, zeigt er mit derselben Fehlermeldung auf die darüber... Kommentiere ich sowohl die Methoden als auch die Funktion aus, zeigt er auf die erste Zeile |
||
Dreamora |
So, Nov 06, 2005 13:48 Antworten mit Zitat |
|
---|---|---|
Aktuell kann man keine global initializer benutzen.
Wenn du CreateList anwenden oder überhaupt irgendwas zuweisen willst, musst du das aktuell im der New Method machen. Es soll jedoch mit der neuen Version die bald kommt möglich sein, wie Mark mal geschrieben hat. Und bitte bemühe künftig erst die Suchen Funktion. Das Problem wurde bereits vor einigen Wochen einmal ausführlich geklärt. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Justus |
So, Nov 06, 2005 14:13 Antworten mit Zitat |
|
---|---|---|
Ihr überschätzt mich; ich weiß überhaupt nicht, was mit global initializer gemeint ist
Sagt doch einfach, dass ich es hätte außerhalb des Types schreiben sollen ^^ Hier meine Lösung: BlitzMax: [AUSKLAPPEN] Global b:ballons |
||
Dreamora |
So, Nov 06, 2005 14:25 Antworten mit Zitat |
|
---|---|---|
Es muss nicht aus dem Type raus.
Aber du darfst bei der Deklaration von Global und Field keine Initialisierung (Befüllung mit Werten) vornehmen, sondern nur deren Deklaration halt. Hier ist die korrekte Variante: Zitat: Type ballons Global b:ballons Global BallonList:TList 'Felder Field x:float Field y:float Field xspeed:float Field yspeed:float Field art:Int Field rot:Int Field gruen:Int Field blau:Int Field ani:Int Field startwait:Int Field link:TLink 'Standard erzeugungsmethode die jedes Objekt besitzt Method New() if BallonList = Null then BallonList = CreateList() self.Link = BallonList.addlast (self) End Method 'Erstellt einen neuen Ballon Function Create_Ballon(x#,y#,xspeed#,yspeed#,art,r,g,b) b:ballons = New ballon b.x = x# b.y = y# b.xspeed = xspeed# b.yspeed = yspeed# b.art = art b.rot = r b.gruen = g b.blau = b b.ani = 0 b.startwait = MilliSecs() EndFunction Method Update_Ballon() x = x + xspeed y = y + yspeed If startwait + 50 < MilliSecs() Then ani = ani + 1 startwait = MilliSecs() If ani > 0 Then ani = 0 Endif EndMethod Method Draw_Ballon() Select art case 1 SetScale 0.5,0.5 case 2 SetScale 1,1 EndSelect SetColor rot,gruen,blau Draw_ShadowImage(img_ballon,x,y,ani) EndMethod EndType |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Justus |
So, Nov 06, 2005 14:58 Antworten mit Zitat |
|
---|---|---|
Zitat: Initialisierung (Befüllung mit Werten)
Danke, ich glaube, das wird mir noch sehr helfen. |
||
Dreamora |
So, Nov 06, 2005 16:02 Antworten mit Zitat |
|
---|---|---|
Mit der nächsten Version sollte das ohnehin kein Problem mehr sein, da es dort möglich sein wird, global und field von Types direkt bei ihrer Deklaration zu initialisieren. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group