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)
|