---------------------------------------------
	     Object-Oriented RPGs
By Nathan Kessler - Nathan1993, September 2004
---------------------------------------------

As you're read this, you are probably saying, "What the heck is this
dude saying, and why am I reading this???" I'll tell you why: this
tutorial will make QB programming much easier. And, I have not really
gone into the topic too much, but meh, who cares.
This tutorial is aimed for advanced programmers. If you can make a
pixel*pixel scrolling engine, can spell (unlike me), then you can
probably do this. But, I would recommend Vic's (yes, you all know him,
from back when you were still learning, Vic) sprite tutor. It helps.
Down to business. When you want to make this, it's easier than you
think. This is how you would want to do this. First, set up some
variables. This is simple; you know how to do this!!! But, this is
what you would need to do, kind of as a "header."

TYPE ObjectType
X AS INTEGER
Y AS INTEGER
UpdateTimer AS INTEGER
Sprite AS STRING * 8
…
…
END TYPE

TotalDragons = 3
DIM Dragons(TotalDragons) AS ObjectType

FOR I = 1 to TotalDragons
READ Dragon(I).X, Dragon(I).Y…
NEXT

       Now, I am not going to teach you step by step how to do this, but you
will get through. Anyway, now, you get how to set up your timer. And,
by the way, you should also know how to animate tiles in a tile
engine. Ok, so lets look at the psuedo code.
       Replace all the TotalDragons with the NPC, wall, or whatever with the
total amounts of those things you will have on the screen at one time.
Now, you're probably thinking, OK, but how will this help me? Ever
used GameMaker?  That's where I'm getting these ideas. It works! So,
we have all that. Now what? Well, now we will set up our little event
trigger. This is easy. Lets say, when you change the variable
Collision, you want to go to the Collision label. This is very easy.
We would do it like this

ON Collision GOTO CollisionLabelHere:

       Easy, eh? So, lets continue. Ok, that works, but how would I do any
more? That's easy to. We would just keep setting these up. And this
routine is very easy to use when drawing the screen too.

DO...
Put all of your normal stuff here, I guess the DO should be a FOR, lol
Now, do it like this:
FOR I = 1 to TotalDragons
PUT (Dragons(I).X, Dragons(I).Y), Dragons(I).Sprite
NEXT

       Add a few other routines, and your done. But, I would like to point
out, that this works real well with the player. To it like this.

ON LeftMove GOTO leftMoveCode

LeftMoveCode:
…
…
…

       While using this, you can easily implement more things, new things,
and not to mention a mafia of players! Muhahahaha! Also, it will make
your game more likely to be downloaded by other QB programmers. Mainly
because they can use you easy to use code to make a mod, which will
make them able to make a mafia, and win the game in 2 minutes, lol!
       Try making a non-scrolling, shooter with this. Also, try making more
variables like direction, speed, and etcetera. Its real simple.

Hope I helped!!!