Dim command gone ?

BlitzMax Forums/BlitzMax Programming/Dim command gone ?

PaulJG(Posted 2005) [#1]
I've used the DIM command in my little proggie, but get the compile error:

COMPILE ERROR - IDENTIFIER 'DIM' NOT FOUND '

So.. does this mean DIM isnt supported ?
(or am I just using it wrong)

Also.. TYPES, are these used any differently in Blitzmax to BB/BB3D ?

This is soo much easier to do in C:
struct {
float x
float y
} object[5]



Panno(Posted 2005) [#2]
HO ;
yap its gone use this
example
global a#[1000,10,1]


Robert(Posted 2005) [#3]
See the "Differences Between Blitz3D and BlitzMAX : Language" article on the http://www.blitzwiki.org site (it is in the Getting Started section)


PaulJG(Posted 2005) [#4]
I'll check it out


PaulJG(Posted 2005) [#5]
ok.. I've got some code working from reading up, but I've got a few questions - if ya dont mind..

whats the difference from using the field and global ? eg..
Type obj
Global x:Float
Global y:Float
End Type
-----
Type obj
Field x:Float
Field y:Float
End Type

Both methods seem to work, and do the same thing ?.
then theres the local/global bit when declaring ..
global game_objects:obj [100]
-----
local game_objects:obj [100]

Sorry for all the questions, just trying to understand it better.


Curtastic(Posted 2005) [#6]
if there is a global x in the type, then there is only 1 x for every instance. if x is a field then every instance has its own x


Robert(Posted 2005) [#7]
A "Field" variable in a type relates to a particular object, whereas "Global" variables 'belong' to the type itself, and not to any particular object.

For example, if we had a SpaceShip type, we might use Field to store the x and y positions, because they will be different for each SpaceShip object, but Global to store the image for the SpaceShip, since that will be the same for each object.

Type SpaceShip
  Global _image:TImage
  
  Field _x
  Field _y
End Type

SpaceShip._image=LoadImage("spaceship.png")

Local ship1:SpaceShip=New SpaceShip
Local ship2:SpaceShip=New SpaceShip

ship1._x=0
ship1._y=0
ship2._x=100
ship2._y=100


Regarding Local / Global:

In the your code, game_objects if declared in the main body of your program would be available to all of the Functions in your program if you used "Global", but only to the main body of the program if you used "Local". Inside functions you should use "Local"


Yan(Posted 2005) [#8]
Aha...Nice one! I was wondering about the Field vs Global thing too :o)


Hotcakes(Posted 2005) [#9]
In your main code, you should always try to use as many Locals as possible, as they provide a huge speed increase over Globals.