Why Does'nt this work. Its so simple :/
BlitzMax Forums/BlitzMax Beginners Area/Why Does'nt this work. Its so simple :/
| ||
Strict Graphics 1024,768,16,0 Global particle_count:Int = 0 SetMaskColor 255,0,255 Global particles:TImage = LoadImage("particle.png",MASKEDIMAGE) Global particle_list:TList = CreateList() Type particle Field x:Int, y :Int Function create() p:particle = New particle p.x = MouseX() p.y = MouseY() ListAddLast particle_list,(p) Return p End Function Method draw() For p:particle = EachIn particle_list DrawImage particles,p.x,p.y,0 Next End Method End Type particle.create() Repeat Cls For p:particle = EachIn particle_list p.draw() Next Flip Until KeyHit(KEY_ESCAPE) I dont understand why the function in the type doesnt return an error but when i try to use methods it gives one. |
| ||
Is it because I'm not using local or globals and the identifiers cannot be found? |
| ||
I think I already gave you the answer! You need something like this in Java:Class Particle { int x, y; Particle() { // Constructor. Must be the same // name as the class in Java. x = MouseX() y = MouseY() } ... // Other methods } Particle particle = new Particle() // Creates one particle // using the constructor particle.draw() // draws the particle How you go about storing multiple particles dynamically is something you'll have to work out I'm afraid. Ryan |
| ||
Thanks Ryan. I got it to work. I was not assigning things as local or global which meant instances couldnt be found. Also, your code seems easier for some reason. Thanks :) |
| ||
Ah, no prob! |
| ||
You also didn't specify that the function "create" should return a particle, it returns an Int.Strict Graphics 1024,768,16,0 Global particle_count:Int = 0 SetMaskColor 255,0,255 Global particles:TImage = LoadImage("particle.png",MASKEDIMAGE) Global particle_list:TList = CreateList() Type particle Field x:Int, y :Int Function create:particle() Local p:particle = New particle p.x = MouseX() p.y = MouseY() ListAddLast particle_list,(p) Return p End Function Method draw() For Local p:particle = EachIn particle_list DrawImage particles,p.x,p.y,0 Next End Method End Type particle.create() Repeat Cls For Local p:particle = EachIn particle_list p.draw() Next Flip Until KeyHit(KEY_ESCAPE) |