I think I don't get it...

BlitzMax Forums/BlitzMax Beginners Area/I think I don't get it...

Paolo(Posted 2005) [#1]
I'm playing a little with the bmax demo...

If it is possible, can you describe what is bmax
as for a 6 years old boy :)

I mean, I think I understand the OOP, but I don't get
what is all the power behind max, for example, there is no
3D module, but then there's a demo which shows a teapot and then there are these "images effects" and they look as done
with 3D sprites and not with 2D images... is this 3D or what???

So basically, what is exactly bmax?

thanks!


FlameDuck(Posted 2005) [#2]
is this 3D or what???
To be or not to be. That is the question.

In the strictest mathematical terms, no. BlitzMAX is not 3D, as it only has out-of-the-proverbial-box support for 2 cathesian axes.

As for the internal working of BlitzMAX, then yes, it uses OpenGL and thus it is using your 3D hardware. BlitzMAX even provides a way to interface with OGL directly.

The true awesome power of BlitzMAX lies in it's embrace of the object oriented paradigm - not the number of cartesian axes it uses to represent graphics.

In short, BlitzMAX is as advertised. A powerful abstract language, with an easy to use 3D accelerated 2D commandset and low-level OpenGL access.


Paolo(Posted 2005) [#3]
yep, I know at the end, 3d graphics are just vectors
projected on your screen,
but, so, in the "3d department", the only difference between bmax and b3d is the
3D commands set?, is this what the 3D module will provide?
(a "loadmesh()" and such commands), and, although it would
be a lot of work, could you still start building your
own 3D engine with bmax as it is today?

thanks flame!


Perturbatio(Posted 2005) [#4]
take a look at Mark's worklog to see some of the goodies in store for us :)


Paolo(Posted 2005) [#5]
checking now, thanks :)


FlameDuck(Posted 2005) [#6]
the only difference between bmax and b3d is the 3D commands set?, is this what the 3D module will provide?
Yes. The 3D module will provide an easy to use 3D command set, but with quite a bit more advanced functionality than Blitz3D. Also BlitzMAX provides cross platform capabilities and OOP.

although it would be a lot of work, could you still start building your own 3D engine with bmax as it is today?
Yes. Quite a few are doing just that already.


Paolo(Posted 2005) [#7]
got it :)
.


BlitzSupport(Posted 2005) [#8]

>is this 3D or what???

To be or not to be. That is the question.


I assume you meant "2D or not 2D... that is the question".

(It's the way I tell 'em.)


Paolo(Posted 2005) [#9]
I was going to start another thread but I'm
going to use this one for simple questions,
anyone is welcome to do the same here...

Ok, I'm trying to get the bm language,
I made this simple code, you can run it,



1) As you can see, there is a global list ("listall")
Is it there any way to scan all the elements without
having a list? and in case there is not, how could I
eliminate that global variable? Can I have a variable holding
a list inside the Type itself?

2)When the field "lifetime" is cero, I want to delete the object,
I want to completely free it and I can't find how (it was the
"Delete" command in B3D)


Thanks!
Paolo.


Perturbatio(Posted 2005) [#10]
Can I have a variable holding
a list inside the Type itself?

yes, you can.
something like:
Type TmyType
	Global myTypeList:TList
	Field life:Int
	
	Method update()
		life:-1
		If life <1 Then Destroy(Self)
	End Method
	
	Function Destroy(dest:TmyType)
		For Local t:TmyType = EachIn myTypeList
			If dest = t Then 			
				myTypeList.Remove(dest)
				dest = Null
				FlushMem
				Return

			EndIf
		Next
	End Function
	
	Function Create(life:Int)
    	Local tempType:TmyType =  New TmyType
			tempType.Life = life
			If Not myTypeList Then myTypeList = New TList
			myTypeList.AddLast(tempType)
	End Function
End Type


TmyType.Create(100)
TmyType.Create(150)

While TmyType.myTypeList.Count() >1 
For Local a:TmyType = EachIn TmyType.myTypeList
	Print a.life
	a.update()
Next
Wend


*EDIT*
updated to reflect question 2