a:
Quote: "I can't get Dark Physics because I don't actually know what it is, because whenever I ask, no one will tell me. And also the chances are it will cost."
DarkPhysics is an $$ adon like you mentioned, but there is also ODE (heard mixed reviews) and Newton - both of which have a means to "work with em" from within DBPro. They are kinda weird - and I'm a old hand at coding - weird in that it makes sense but it strange kinda. You have to set up two "Mirrorish" Worlds - in that you make your 3d gfx stuff - but in ther alternate reality - You make Boxes" or whatever objects that represent those 3d Graphics - but you assign how heavy they are, their mass, and then they get glued together kinda. So Your "Create" with wood texture, could get kicked in the Physics Environment, and then low and behold - your graphical one gets all its coordinates from the Physics engine - so now your Nice prett 3d crate is tumbling pretty realistically. You've seen this in games already I'm sure. Personally I want to use one myself - but I'm using DarkGDK, and DarkPhysics doesn't work with that yet - and Newton Demos had a bit of flaws I don't want to bother with - like overcontrol - if to much force... say you Toss the rag doll in the demo to hard - it shakes jiggles and loses control and looks assanine. ODE I heard is limited at the gate. Dark Physics I hear is pretty decent - limited for Vehicles - but I guess if its stable you could make complex vehilces probably by attaching two or more somehow.
b:
Quote: "I can't use types because, well, what can types do that arrays and other value-addressing formats can't? (So I never learnt.)
"
1: Organize, 2: Make Code More Readable, 3: um... 1 and 2 are pretty strong for reasons to adopt actually. They can't do MORE but seeing how this is DarkBasic we are talking about they have an EXTRA benefit. If you misspell a variable in DarkBasic, it creates a new variable and unless you locate that mispelled variable you will pull your hair out trying to debug your code. If you stuff all your variables in a type - not best practice - but if you did - I do this with my global "just needed this new variable because..." ...anyways - the compiler will not compile MyType.Mispelled because it doens't know what it is. This is kind of a cheap way to get DarkBasic to do something known as Explicit Variable Declaration. If you don't specify a variable in the declaration - then it can't be used. Big Time Saver over the length of any project.
How?
` DECLARATION "Describes" it.
TYPE TCAR
Name$
MaxSpeed#
ENDTYPE
` Variable Declaration uses it, and it can be used often
dim Car(100) as TCAR
global MyCar as TCar
`AND.... You can have one inside another
TYPE TXYZ
X#
Y#
Z#
ENDTYPE
TYPE TSPACESHIP
Pos as TXYZ
Rot as TXYZ
Name$
ENDTYPE
MySpaceShip as TSPACESHIP
` Then you can do
MySpaceShip.Pos.X#=100
MySpaceShip.Name$="Dude this is cool"
c:
Quote: "I can't use limbs because, well, I just can't. I don't have a singular clue as to how to attatch 2 objects together other than to position 1 in relation to another."
Well - you get jiggles like this - sometimes its ok - sometimes not. Glue Object to Limb seems to work exactly the same way as just positioning them relative to each other - someone told me if floats were perfect the jiggle wouldn't happen - but rounding causes just enough a difference to cause it.
For Texturing - this 2 objects to become one object two limbs thing gets dicey. However - when you have one texture you can texture the whole object with - not so bad
Basically I think it goes something like:
make object cube 100,100 ` make limb outta this
make mesh from object 1,100 ` grab the mesh (all the coordinates of the vertices
make object cube 200,200 ` the MAIN Object here
add limb to object 200, 1, 1 ` Objectid, Limb to make, mesh number
delete mesh 1 ` you can kill the original mesh and object
delete object 100
` Then I think you have to offset the limb position. I found this
`easier if my original model was at 0,0,0 because the "Offset then
`matches the world game space - makes more sense to me that way.
Good Luck!