Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Author
Message
Purplepickle
8
Years of Service
User Offline
Joined: 4th Jun 2011
Location: Between hopeless and needs improvement..
Posted: 23rd Aug 2011 23:41
Hello I'm am new to db pro and dark Ai. Could I use dark Ai on my 2d side scroller? Here is my source code




`****************************************************************************************
`***** Made by purple pickle *** Thanks to pizzaman for the side scrolling code**********
`****************************************************************************************

`****************************************************************************************
`*********************************** Start of program ***********************************
`****************************************************************************************


`Declare some constants, they are constants because their values will not change
`thoughout the program. There are placed at this point in the program to be easily
`modified.
#constant SCREENSIZEX 1024
#constant SCREENSIZEY 768


`gosubs are here instead of actual code, just to make things look neat
gosub DeclareVariables
gosub screensetup
gosub createimages
gosub loaddata
gosub makeplayer

`start the main loop
do

`exit the loop if space bar is pressed - effectively ending the program
`Note: it has to be place here and not in a gosub as it wont work

gosub controls
gosub collision
gosub ScrollScreen
gosub displayplayer
gosub DisplayDebugInfo

`update screen
sync

loop

gosub cleanup

`end the program
end



`****************************************************************************************
`************************************* End of program ***********************************
`****************************************************************************************



DeclareVariables:

`store how many horizontal/verticle tiles there are
NumOfTilesX = 50
NumOfTilesY = 50

`store the size (in pixels) of a tile
TileSizeX = 32
TileSizeY = 32

`store the speed of the tile
SpeedX = 7
SpeedY = 9

`store the coordinates that will make the player be at the center of the screen
ScreenCentreX = SCREENSIZEX / 2
ScreenCentreY = SCREENSIZEY / 2

`Work out out how many tiles there are on screen for x and y directions
TilesPerScreenX = SCREENSIZEX / TileSizeX
TilesPerScreenY = SCREENSIZEY / TileSizeY

`Works out if a tile is partially visible on screen, if so then add 1 to the
`TilesPerScreen variable. This has the affect of drawing a whole column or/and row
`of tiles to the screen, to cover up visual anomalies with tile sizes that do
`not divide exactly into the screen resolution
if SCREENSIZEX mod TileSizeX then TilesPerScreenX = TilesPerScreenX + 1
if SCREENSIZEY mod TileSizeY then TilesPerScreenY = TilesPerScreenY + 1

`Calculates the largest co-ordinates the map can scroll too
MaxMapX = (TileSizeX * NumOfTilesX) - (SCREENSIZEX + SpeedX)
MaxMapY = (TileSizeY * NumOfTilesY) - (SCREENSIZEY + SpeedY)

`store predefined coordinates of player
X1 = ScreenCentreX
Y1 = ScreenCentreY

`store predefined coordinates of map
MapX = 0
MapY = 0

return



screensetup:

`delete anything stored in video memory
flush video memory

`set screen resolution
set display mode 1024, 768, 32

`setup syncing
sync on
sync rate 60

return



createimages:

`create a green box
box 0, 0, TileSizeX, TileSizeY, rgb(0, 255, 0), rgb(0, 225, 0), rgb(0, 225, 0), rgb(0, 200, 0)
get image 1, 0, 0, TileSizeX, TileSizeY, 1

`create a Black and yellow box
box 0, 0, TileSizeX, TileSizeY, rgb(0, 0, 0), rgb(0, 0, 0), rgb(255, 255, 0), rgb(255, 255, 0)
get image 12, 0, 0, TileSizeX, TileSizeY, 1

`create a Reverse black and yellow box
box 0, 0, TileSizeX, TileSizeY, rgb(255, 255, 0), rgb(255, 255, 0), rgb(0, 0, 0), rgb(0, 0, 0)
get image 13, 0, 0, TileSizeX, TileSizeY, 1

`create a Reverse black and yellow box2
box 0, 0, TileSizeX, TileSizeY, rgb(0, 0, 0), rgb(255,255, 0), rgb(0, 0, 0), rgb(255, 255, 0)
get image 15, 0, 0, TileSizeX, TileSizeY, 1

`create a Reverse black and yellow box3
box 0, 0, TileSizeX, TileSizeY, rgb(255, 255, 0), rgb(0,0, 0), rgb(255, 255, 0), rgb(0, 0, 0)
get image 16, 0, 0, TileSizeX, TileSizeY, 1

`create a yellow/orange box as the player
box 0, 0, TileSizeX, TileSizeY, rgb(100, 100, 100), rgb(50,50, 50), rgb(200,200, 200), rgb(150,150, 150)
get image 2, 0, 0, TileSizeX, TileSizeY, 1

`create a Left corner down box
box 0, 0, TileSizeX, TileSizeY, rgb(0, 0, 0), rgb(255, 255, 0), rgb(255, 255, 0), rgb(255, 255, 0)
get image 10, 0, 0, TileSizeX, TileSizeY, 1

`create a Black Right end box
box 0, 0, TileSizeX, TileSizeY, rgb(0, 0, 0), rgb(255, 255, 0), rgb(0 , 0, 0), rgb(0, 0, 0)
get image 11,0,0,TileSizeX,TileSizeY,1

`create a Black left end box
box 0, 0, TileSizeX, TileSizeY, rgb(0, 0, 0), rgb(0,0, 0), rgb(0, 0, 0), rgb(255, 255, 0)
get image 14,0,0,TileSizeX,TileSizeY,1

`create a Black left end top box
box 0, 0, TileSizeX, TileSizeY, rgb(0, 0, 0), rgb(0,0, 0), rgb(255, 255, 0), rgb(0, 0, 0)
get image 17,0,0,TileSizeX,TileSizeY,1

`create a Black right end top box
box 0, 0, TileSizeX, TileSizeY, rgb(255, 255, 0), rgb(0,0, 0), rgb(0, 0, 0), rgb(0, 0, 0)
get image 18,0,0,TileSizeX,TileSizeY,1

`create a Black right inside corner box
box 0, 0, TileSizeX, TileSizeY, rgb(255, 255, 0), rgb(255,255, 0), rgb(0, 0, 0), rgb(255, 255, 0)
get image 19,0,0,TileSizeX,TileSizeY,1

`create a Black right inside up corner box
box 0, 0, TileSizeX, TileSizeY, rgb(255, 255, 0), rgb(0,0, 0), rgb(255, 255, 0), rgb(255, 255, 0)
get image 20,0,0,TileSizeX,TileSizeY,1

`create a Black left inside up corner box
box 0, 0, TileSizeX, TileSizeY, rgb(255, 255, 0), rgb(255,255, 0), rgb(255, 255, 0), rgb(0, 0, 0)
get image 21,0,0,TileSizeX,TileSizeY,1

`create a Yellow box
box 0, 0, TileSizeX, TileSizeY, rgb(255, 255, 0), rgb(255,255, 0), rgb(255, 255, 0), rgb(255, 255, 0)
get image 22,0,0,TileSizeX,TileSizeY,1


return



loaddata:

`create an array called TileMap - we will use this to store the tile data.
`an array is like a file cabinet - in each drawer of the file cabinet there are
`folders that hold our data. Therefore in our "file cabinet" we have 20 drawers; and
`inside of each drawer we 15 folders; which hold data we want to access.
`Also arrays can have up to 5 dimensions (ours has 2 dimensions) - you can visualise
`this as being more folders inside of the other folders and so on; and of course you
`can just have 1 dimension array as well (in other words just the drawers)
dim TileMap(NumOfTilesX - 1, NumOfTilesY - 1)

`load data into the array - basically the computer will read 20 bits of data from one
`data statment (at the end of the program), then move onto the next data statment
`until all 15 data statments are read. Note: all 15 data statments could have been
`combined into one large data statment of 300 items; the reason why its not currently
`like that is its hard to read also you can kind of see the map the way its currently
`written.
for y = 0 to NumOfTilesY - 1

for x = 0 to NumOfTilesX - 1

read TileMap(x, y)

next x

next y

return



makeplayer:

`make the player
sprite 1, X1, Y1, 2

`this sets the sprites properties; by placing a 0 in the backsave flag the background
`behind sprite will not be saved by the computer, hence will speed up our program a
`little. We are not using the backsave feature because we will be replacing the
`background ourselves; this is due to when a sprite is created the 3d backdrop is
`automatically created (a blue screen wiping any 2d images previously draw to the
`screen) and cannot be turned off as long as you have a sprite on screen.
set sprite 1, 0, 1

return



controls:

`store the map's x and y coordinates into the variables OldMapX and OldMapY
OldMapX = MapX
OldMapY = MapY

`store the x and y coordinates of the player into the variables oldX1 and oldY1
OldX1 = X1
OldY1 = Y1

`makes the player move by altering the sprites coordinates
`makes the map move by altering the maps coordinates, if the player is roughly at the
`centre of the screen
if leftkey() = 1
if MapX < X1 - (ScreenCentreX - 5) and MapX > X1 - (ScreenCentreX + 5) then MapX = MapX - SpeedX
X1 = X1 - SpeedX
endif
if rightkey() = 1
if MapX < X1 - (ScreenCentreX - 5) and MapX > X1 - (ScreenCentreX + 5) then MapX = MapX + SpeedX
X1 = X1 + SpeedX
endif
if upkey() = 1
if MapY < Y1 - (ScreenCentreY - 5) and MapY > Y1 - (ScreenCentreY + 5) then MapY = MapY - SpeedY
Y1 = Y1 - SpeedY
endif
if downkey() = 1
if MapY < Y1 - (ScreenCentreY - 5) and MapY > Y1 - (ScreenCentreY + 5) then MapY = MapY + SpeedY
Y1 = Y1 + SpeedY
endif

return



collision:

`NOTE : you may have noticed the player sticking to the blocks, to stop this make the
` collision area of the player smaller and edit the players image to the same
` same size (so it doesn't look weird). You have to make the change in the
` players x and y sizes greater or equal to their speed or you wont notice a
` difference.



`the following 8 lines of code stores the old and new left,right,top,bottom edges of
`the sprite in the respective variables

`gets which tiles the current left and right co-ordinates of the player are on
LeftTileNum = int(X1 / TileSizeX)
RightTileNum = int((X1 + (TileSizeX - 1)) / TileSizeX)
`gets which tiles the current top and bottom co-ordinates of the player are on
TopTileNum = int(Y1 / TileSizeY)
BottomTileNum = int((Y1 + (TileSizeY - 1)) / TileSizeY)

`gets which tiles the old left and right co-ordinates of the player are on
OldLeftTileNum = int(oldX1 / TileSizeX)
OldRightTileNum = int((oldX1 + (TileSizeX - 1)) / TileSizeX)
`gets which tiles the old top and bottom co-ordinates of the player are on
OldTopTileNum = int(oldY1 / TileSizeY)
OldBottomTileNum = int((oldY1 + (TileSizeY - 1)) / TileSizeY)


`this is where we check for those 4 collision points; if the collision point is on a
`tile you are not able to pass through (in our case a tile that has an image number
`of 10 or greater), then the old coordinates of the sprite are restored.
`Note: to have sliding collision we must check the the current x tile against the
`old y tile and vice versa.

`checks for top-left collision point
if TileMap(LeftTileNum, OldTopTileNum) >= 10 then X1 = oldX1 : MapX = OldMapX
if TileMap(OldLeftTileNum, TopTileNum) >= 10 then Y1 = oldY1 : MapY = OldMapY

`checks for top-right collision point
if TileMap(RightTileNum, OldTopTileNum) >= 10 then X1 = oldX1 : MapX = OldMapX
if TileMap(OldRightTileNum, TopTileNum) >= 10 then Y1 = oldY1 : MapY = OldMapY

`checks for bottom-left collision point
if TileMap(LeftTileNum, OldBottomTileNum) >= 10 then X1 = oldX1 : MapX = OldMapX
if TileMap(OldLeftTileNum, BottomTileNum) >= 10 then Y1 = oldY1 : MapY = OldMapY

`checks for bottom-right collision point
if TileMap(RightTileNum, OldBottomTileNum) >= 10 then X1 = oldX1 : MapX = OldMapX
if TileMap(OldRightTileNum, BottomTileNum) >= 10 then Y1 = oldY1 : MapY = OldMapY

`stops player from scrolling past the edges of the map by resetting the maps
`global coordinates to their maximum values. The maximum values are calculated by
`(TileSizeX * NumOfTilesInRow) - SpeedX - for MapX
`(TileSizeY * NumOfTilesInColumn) - SpeedY - for MapY
if MapX < 0 then MapX = 0
if MapX >= MaxMapX then MapX = MaxMapX
if MapY < 0 then MapY = 0
if MapY >= MaxMapY then MapY = MaxMapY

return



ScrollScreen:

`works out the tile number within array to start displaying tiles at
TileNumX = MapX / TileSizeX
TileNumY = MapY / TileSizeY

`cache calculation to tempX and TempY variables for a minor speed increase
`this calculation works out how many pixels to offset the position where the tile
`images should be placed.
TempX = MapX - (TileNumX * TileSizeX)
TempY = MapY - (TileNumY * TileSizeY)

`reset values
Temp1 = 0
Temp2 = 0

`Calculates if the map has scrolled to the last tile, if so we must remove a column
`or/and row of tiles from the screen as they have no more map data to draw; also
`because of this it would create an error
if TilesPerScreenX + TileNumX >= NumOfTilesX then Temp1 = 1
if TilesPerScreenY + TileNumY >= NumOfTilesY then Temp2 = 1

`this pastes the images to screen in the correct order by working out where to start
`pasting the images from in the array, then displaying the images at the correct
`screen coordinates
for y = 0 to TilesPerScreenY - Temp2

for x = 0 to TilesPerScreenX - Temp1


paste image TileMap(x + TileNumX, y + TileNumY), (x * TileSizeX) - TempX, (y * TileSizeY) - TempY

next x

next y

return



displayplayer:

`display sprite
sprite 1,X1 - MapX,Y1 - MapY,2

return

health# = 100

DisplayDebugInfo:
set text opaque
ink rgb(255,255,255),0
set text size 5
box 0,0,137,65,rgb(0, 0, 0), rgb(0,0, 0), rgb(0, 0, 0), rgb(0, 0, 0)
text 0, 0,"FPS " + str$(screen fps())
text 0,15,"MapX " + str$(MapX)
text 0,31,"MapY " + str$(MapY)
text 0, 47,"Press Esc to exit"
text 65, 0, "Health "
center Text 85, 15, str$(health#)

return



cleanup:

`delete any media involved in this program
for x = 1 to 11
if image exist(x) then delete image x
if sprite exist(x) then delete sprite x
next x

`delete anything thats left in the video memory - if anything
flush video memory

return




`store tile data at the end of the program so its out of the way
data 19,22,22,10,19,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,10,19,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,10,19,15,15,15,15,15,15,15,15,10
data 13, 22, 22, 12,13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 19, 15, 15, 10,13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 12,13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 12, 13, 1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 12,13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 12, 13, 1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 12,13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 14,11, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1,1, 1, 1, 1, 12, 13, 1,1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1,1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 12, 13, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1,1, 1, 1, 1, 12, 13, 1,1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1,1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 12, 13, 1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 17, 18, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 12, 13, 1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 17, 16, 16, 20, 21, 16, 16, 18, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 14, 15, 15, 10, 19, 15, 15, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 14, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,14,11, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 14, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 17, 16, 16,16,18, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,14, 15, 15,10,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 17, 16, 16, 16, 16, 16, 18, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 12, 19, 15, 15, 15, 15, 11, 1, 1, 1,1, 1,1, 1, 1, 1, 1, 1, 1,1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1,1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1,1, 1,1, 1, 1, 1, 1, 1, 1,1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1,1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 12, 13, 1, 1, 1, 1, 17, 16, 16, 16, 16, 16, 16, 16, 18, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 12, 13, 1, 1, 1, 1, 12, 22, 22, 22, 22,22,22, 22, 13, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 12, 13, 1, 1, 1, 1, 14, 15, 15, 15, 15,15,15, 15, 11, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 21,16,16,16,20,13,1,1,1,1,17,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,18,1,1,17,16,16,20,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 19, 15, 15, 15, 15, 11, 1, 1, 1, 1, 14, 15, 15, 15, 15,15,15, 15, 15, 15, 15, 15, 15,15,15, 15, 15, 15, 15, 15, 15, 15, 15, 11, 1,1,14, 15, 15,10,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,14,11, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 17, 16, 16, 16, 16,16,18, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 17, 18, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 14,15,15, 15, 15,10,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 12, 21, 16, 16, 16, 18, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 12, 19, 15, 15, 15, 11, 1, 1, 1, 1,1, 1,1, 1, 1, 1, 1, 1, 1,1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1,1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1,1, 1,1, 1, 1, 1, 1, 1, 1,1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1,1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 14, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 17, 18, 1, 1, 1, 1, 1, 1, 1, 1,12,13, 1, 1, 1, 1, 1, 1, 1, 1, 12,
data 21, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 21, 16, 16, 16, 16, 16, 16, 16, 16,20,21, 16, 16, 16, 16, 16, 16, 16, 16, 20,

Purplepickle
8
Years of Service
User Offline
Joined: 4th Jun 2011
Location: Between hopeless and needs improvement..
Posted: 23rd Aug 2011 23:42
LBFN
12
Years of Service
User Offline
Joined: 7th Apr 2007
Location: USA
Posted: 27th Aug 2011 18:17
You should be able to use DarkAI for that. There is a 2D demo that comes with DarkAI. Check it out.

Login to post a reply

Server time is: 2019-09-17 05:25:17
Your offset time is: 2019-09-17 05:25:17