[gelöst] Aufruf von einer Method führt zu einem MAV

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Wild-Storm

Betreff: [gelöst] Aufruf von einer Method führt zu einem MAV

BeitragMi, Jan 17, 2007 21:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

   Method MSetCount(x:Int)
      self.cnt = x
      Local i:Int
      Local TEffect_Sprite:TEffect_Sprite
      For i = 1 To x
         Local LTEffect_Sprite:TEffect_Sprite
         LTEffect_Sprite = TEffect_Sprite.FCreate( Rand(200,400),Rand(200,400),Rand(1,10) )
         LTEffect_Sprite.MSetColor(Rand(0,255),Rand(0,255),Rand(0,255))
         ListAddLast(Self.spritelst,LTEffect_Sprite)
      Next
   End Method

'[...]

Type TEffect_Sprite
   Field x:Float , y:Float , z:Float
   Field scale:Float
   Field r:Byte , g:Byte , b:Byte
   
   Function FCreate:TEffect_Sprite(nx:Float,ny:Float,nz:Float)
      Local LTEffect_Sprite:TEffect_Sprite = New TEffect_Sprite
      LTEffect_Sprite.x = nx
      LTEffect_Sprite.y = ny
      LTEffect_Sprite.z = nz
      LTEffect_Sprite.MCalcSprite()
      Return LTEffect_Sprite:TEffect_Sprite
   End Function
'[...]
Type TEffect_Sprite



Der Aufruf von "LTEffect_Sprite = TEffect_Sprite.FCreate( Rand(200,400),Rand(200,400),Rand(1,10) )" führt zu einem MAV.
Warum?
Visit http://www.next-dimension.org
-------------------------------------------------
Freeware Modelle, Texturen & Sounds:
http://www.blitzforum.de/forum...hp?t=12875
  • Zuletzt bearbeitet von Wild-Storm am Mi, Jan 17, 2007 21:47, insgesamt einmal bearbeitet

simi

BeitragMi, Jan 17, 2007 21:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht mal mit rnd versuchen.... Du solltest ja Floats übergeben.... Hast du den Debugger an ?? (habe eigentlich noch nie eine Memory Access Violation bekommen, weiss nicht wie ihr das immer schafft Wink)

Wild-Storm

BeitragMi, Jan 17, 2007 21:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Jop Debugger ist an, gibt mir "appstub.linux signal handler 11" zurück. Soll laut BtbN ein MAV sein.
Das komische ist halt, dass der Debugger eben auch nur einen MAV rausrückt und nicht mehr..
An Floats o.ä. liegt auch nicht, hab auchshcon die Rands mit Variablen ersetzt..selber Fehler.

Aber daran, dass eine Method in einer Method aufgerufen wird..das kann ja irgendwie auch nicht möglich sein..


edit:// Ich hab des jetzt mal ausserhalb der Method aufgerufen..Kein MAV oO


Edit2://
Omg ich Jerk..hab den Fehler gefunden

Code: [AUSKLAPPEN]
      Local TEffect_Sprite:TEffect_Sprite
      For i = 1 To x
         Local LTEffect_Sprite:TEffect_Sprite


Das 1. Local macht den Type irgendwie..unnütz..also zu einer normalen Variable mit NULL. Das verwirrt den Compiler wohl..
Naja habs weggemacht, geht jetzt Wink
Visit http://www.next-dimension.org
-------------------------------------------------
Freeware Modelle, Texturen & Sounds:
http://www.blitzforum.de/forum...hp?t=12875
  • Zuletzt bearbeitet von Wild-Storm am Mi, Jan 17, 2007 21:46, insgesamt einmal bearbeitet
 

Dreamora

BeitragMi, Jan 17, 2007 21:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem ist die Zeile

Local TEffect_Sprite:TEffect_Sprite


Variablen und Klassen dürfen nicht gleich heissen. Es gibt kein Name Separation. Was für etwas verwendet wird ist für alles andere gesperrt was diesen namen kennt.
Durch die deklaration bedinggt tickt danach alles aus mit create etc.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Wild-Storm

BeitragMi, Jan 17, 2007 21:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Du warst wohl schneller als mein Edit, aber vielen Dank an euch beide! Smile

Ging wieder Ratzfatz Very Happy
Visit http://www.next-dimension.org
-------------------------------------------------
Freeware Modelle, Texturen & Sounds:
http://www.blitzforum.de/forum...hp?t=12875

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group