Whoa, that's trippy... not too sure what to think!
Let me show you what I've got in mind with a picture, it'll explain things better.
Camera 0 will focus as per the direction shown, which will allow standard side scroller functionality. I can do the XZ plane with the stand DBpro matrix, but I'm not too sure how to create the vertical standing YX plane... If I could rotate a XZ plane by 90 degrees, I'd be sorted! But I can't, and that's where I need some ideas from experienced forum goers, like you! =D
EDIT:
In further editing the code from my OP, it seems that the code rotates Objects, but not matrix, as per below.
Matrix=1
Box 0, 0, 100, 100, RGB(255,255,128), RGB(255,0,0), RGB(0,255,128), RGB(0,0,255)
Get Image 1, 1, 1, 100, 100
MatrixWidth#=100.0
MatrixHeight#=100.0
MatrixXSegments=10
MatrixZSegments=10
Randomize timer()
Make Matrix Matrix, MatrixWidth#, MatrixHeight#, MatrixXSegments, MatrixZSegments
Randomize Matrix Matrix, 3
Prepare Matrix Texture Matrix, 1, 1, 1
Set Matrix Matrix, 0, 0, 0, 0, 0, 0, 1
Update Matrix Matrix
`BFM added the cone object, and objects rotate just fine, but not matrix ;_;
make object cone 1,10
Position Camera 50, 10, -100
Load Dll "DBProBasic3DDebug.dll", 1
`Load Dll "DBProMatrixDebug.dll", 1
X#=0.0
Y#=0.0
Z#=0.0
Axis$="X"
Sync Rate 0
Sync On
Do
Print "Dll exist" ;dll exist(1)
Print "Dll call exist" ; dll call exist(1, "?XRotate@@YAXHM@Z")
Control Camera Using ArrowKeys 0, .1, 1
Set Cursor 0, 0
Print "Code By Dmitry K"
Print "Press 1 to select X axis, 2 to Y axis, 3 to Z axis"
Print "Keys +\- to increase\decrease axis angle"
Print "Current rotation axis = ", Axis$
If Inkey$()="1" Then Axis$="X"
If Inkey$()="2" Then Axis$="Y"
If Inkey$()="3" Then Axis$="Z"
If ((Axis$="X") And ((Timer()-oTimer)>100))
If Inkey$()="+"
X#=WrapValue(X#+90.0)
Call Dll 1, "?XRotate@@YAXHM@Z", 1, X#
oTimer=Timer()
EndIf
If Inkey$()="-"
X#=WrapValue(X#-90.0)
Call Dll 1, "?XRotate@@YAXHM@Z", 1, X#
oTimer=Timer()
EndIf
EndIf
If ((Axis$="Y") And ((Timer()-oTimer)>100))
If Inkey$()="+"
Y#=WrapValue(Y#+90.0)
Call Dll 1, "?YRotate@@YAXHM@Z", 1, Y#
oTimer=Timer()
EndIf
If Inkey$()="-"
Y#=WrapValue(Y#-90.0)
Call Dll 1, "?YRotate@@YAXHM@Z", 1, Y#
oTimer=Timer()
EndIf
EndIf
If ((Axis$="Z") And ((Timer()-oTimer)>100))
If Inkey$()="+"
Z#=WrapValue(Z#+90.0)
Call Dll 1, "?ZRotate@@YAXHM@Z", 1, Z#
oTimer=Timer()
EndIf
If Inkey$()="-"
Z#=WrapValue(Z#-90.0)
Call Dll 1, "?ZRotate@@YAXHM@Z", 1, Z#
oTimer=Timer()
EndIf
EndIf
Sync
Loop