My kingdom for a tutorial!!!
Blitz3D Forums/Blitz3D Beginners Area/My kingdom for a tutorial!!!
| ||
Hi, Got this far by having no shame and knicking code from a guy called James Eibisch, He has done a really cool retro space invaders in QBASIC. But now I am stuck mega catch 22. I do not know enough about QBASIC to rip the rest of James's code and I do not understand BB3D well enough to proceed. So is anybody up for creating a tutorial for good old fashioned Space Invaders? Global Tru = -1 Global Fals = Not Tru Global screenwidth = 256 Global screenorgx = 32 Global shipwidth = 30 Global shipheight = 16 Global bulletheight = 3 Global invwidth = 24 Global invheight = 16 Global invbombheight = 10 Global invbombwidth = 6 Global saucerwidth = 32 Global saucerheight = 14 Global shelterwidth = 48 Global shelterheight = 32 Global shipminx = 50 Global shipmaxx = 270 - shipwidth Global bulletd = 3 Global invdiry = 7 Global invzaptime = 15 Global saucery = 28 Global sheltery = 156 Global shipg,shipexpg,invg1,invg2,invg3,invexpg,invbombg,saucerg,shelterg,charset Graphics 640,480,0 SetBuffer FrontBuffer() Cls DefineGraphics() DrawImage shipg,100,50 DrawImage shelterg,90,70 DrawImage shipexpg,132,50,0 DrawImage shipexpg,164,50,1 DrawImage invg1,200,50,0 DrawImage invg1,230,50,1 DrawImage invg2,200,70,0 DrawImage invg2,230,70,1 DrawImage invg3,200,90,0 DrawImage invg3,230,90,1 DrawImage invexpg,260,50 DrawImage invbombg,290,50,0 DrawImage invbombg,290,70,1 DrawImage saucerg,300,50 i=0 For x=50 To 290 Step 12 i=i+1 DrawImage charset,x,120,i-1 Next WaitKey() End Function DefineGraphics() ;define ship shipg=CreateImage(shipwidth,shipheight) Cls For y = 1 To shipheight Read a$ Color 0,160,0 For x = 1 To shipwidth If Mid$(a$, x, 1) = "#" Then Plot x, y Next Next GrabImage shipg,1,1 ;define ship explosion shipexpg=CreateImage(shipwidth-1,shipheight-1,2) For i = 1 To 2 Cls For y = 1 To shipheight Read a$ Color 0, 160, 0 For x = 1 To shipwidth If Mid$(a$, x, 1) = "#" Then Plot x, y Next Next GrabImage shipexpg,1,1,i-1 Next ;define invaders invg1=CreateImage(invwidth-1,invheight-1,2) invg2=CreateImage(invwidth-1,invheight-1,2) invg3=CreateImage(invwidth-1,invheight-1,2) Cls For invtype = 0 To 2 ; 3 types of invader For anim = 0 To 1 ; 2 frames of animation Cls For y = 1 To invheight Read a$ Color 200,200,200 For x = 1 To invwidth If Mid$(a$, x, 1) = "#" Then Plot x, y Next Next Select invtype Case 0 GrabImage invg1,1,1,anim Case 1 GrabImage invg2,1,1,anim Case 2 GrabImage invg3,1,1,anim Default End Select Next Next ;define invader explosion invexpg=CreateImage(invwidth-1,invheight-1) Cls For y = 1 To invheight Read a$ Color 200, 200, 200 For x = 1 To invwidth If Mid$(a$, x, 1) = "#" Then Plot x, y Next Next GrabImage invexpg,1,1 ;define bombs invbombg=CreateImage(invbombwidth,invbombheight,2) Cls For i = 1 To 2 For y = 1 To invbombheight Read a$ Color 220, 220, 220 For x = 1 To invbombwidth If Mid$(a$, x, 1) = "#" Then Plot x, y Next Next GrabImage invbombg,1,1,i-1 Cls Next ;define saucer saucerg=CreateImage(saucerwidth,saucerheight) Cls For y = 1 To saucerheight Read a$ Color 160, 0, 0 For x = 1 To saucerwidth If Mid$(a$, x, 1) = "#" Then Plot x, y Next Next GrabImage saucerg,1,1 ;define shelter shelterg=CreateImage(shelterwidth,shelterheight) Cls For y = 1 To shelterheight Read a$ Color 0, 160, 0 For x = 1 To shelterwidth If Mid$(a$, x, 1) = "#" Then Plot x, y Next Next GrabImage shelterg,1,1 ;define character set charset=CreateImage(10,16,21) Cls For i = 1 To 21 For y = 1 To 14 Read a$ Color 200, 200, 200 For x = 1 To 10 If Mid$(a$, x, 1) = "#" Then Plot x, y Next Next GrabImage charset,1,1,i-1 Cls Next Cls End Function .seconddata Data " ## " Data " ## " Data " ###### " Data " ###### " Data " ###### " Data " ###### " Data " ########################## " Data " ########################## " Data "##############################" Data "##############################" Data "##############################" Data "##############################" Data "##############################" Data "##############################" Data "##############################" Data "##############################" Data " ## " Data " ## " Data " ## ## ## " Data " ## ## ## " Data " ## ## ## " Data " ## ## ## " Data " ## ## ## " Data " ## ## ## " Data " ## #### ## " Data " ## #### ## " Data "## ################ " Data "## ################ " Data " #################### " Data " #################### " Data " ######################## " Data " ######################## " Data " ## ## ## " Data " ## ## ## " Data " ## " Data " ## " Data " ## ## ## " Data " ## ## ## " Data " ## ## " Data " ## ## " Data " ## #### ## ##" Data " ## #### ## ##" Data " ################ ## " Data " ################ ## " Data " #################### " Data " #################### " Data " ######################## " Data " ######################## " Data " ######## " Data " ######## " Data " ################ " Data " ################ " Data "########################" Data "########################" Data "###### #### ######" Data "###### #### ######" Data "########################" Data "########################" Data " #### #### " Data " #### #### " Data " #### #### #### " Data " #### #### #### " Data "#### ####" Data "#### ####" Data " ######## " Data " ######## " Data " ################ " Data " ################ " Data "########################" Data "########################" Data "###### #### ######" Data "###### #### ######" Data "########################" Data "########################" Data " ###### ###### " Data " ###### ###### " Data " #### #### #### " Data " #### #### #### " Data " #### #### " Data " #### #### " Data "## ## ## " Data "## ## ## " Data "## ## ## ## " Data "## ## ## ## " Data "## ############## ## " Data "## ############## ## " Data "###### ###### ###### " Data "###### ###### ###### " Data "###################### " Data "###################### " Data " ################## " Data " ################## " Data " ## ## " Data " ## ## " Data " ## ## " Data " ## ## " Data " ## ## " Data " ## ## " Data " ## ## " Data " ## ## " Data " ############## " Data " ############## " Data " #### ###### #### " Data " #### ###### #### " Data "###################### " Data "###################### " Data "## ############## ## " Data "## ############## ## " Data "## ## ## ## " Data "## ## ## ## " Data " #### #### " Data " #### #### " Data " #### " Data " #### " Data " ######## " Data " ######## " Data " ############ " Data " ############ " Data " #### #### #### " Data " #### #### #### " Data " ################ " Data " ################ " Data " ## ## " Data " ## ## " Data " ## #### ## " Data " ## #### ## " Data " ## ## ## ## " Data " ## ## ## ## " Data " #### " Data " #### " Data " ######## " Data " ######## " Data " ############ " Data " ############ " Data " #### #### #### " Data " #### #### #### " Data " ################ " Data " ################ " Data " ## #### ## " Data " ## #### ## " Data " ## ## " Data " ## ## " Data " ## ## " Data " ## ## " Data " ## ## " Data " ## ## " Data " ## ## ## ##" Data " ## ## ## ##" Data " ## ## ## " Data " ## ## ## " Data "###### " Data "###### " Data " ## ####" Data " ## ####" Data " #### ## " Data " #### ## " Data " ## ## ## " Data " ## ## ## " Data " ## ## " Data " ## ## " Data " ## " Data " ## " Data " ## " Data " ## " Data " ## " Data " ## " Data "######" Data "######" Data " ## " Data " ## " Data " ## " Data " ## " Data "## " Data "## " Data " ## " Data " ## " Data " ##" Data " ##" Data " ## " Data " ## " Data " ############ " Data " ############ " Data " #################### " Data " #################### " Data " ######################## " Data " ######################## " Data " #### #### #### #### #### " Data " #### #### #### #### #### " Data "################################" Data "################################" Data " ###### ###### " Data " ###### ###### " Data " ## ## " Data " ## ## " Data " #################################### " Data " #################################### " Data " ######################################## " Data " ######################################## " Data " ############################################ " Data " ############################################ " Data "################################################" Data "################################################" Data "################################################" Data "################################################" Data "################################################" Data "################################################" Data "################################################" Data "################################################" Data "################################################" Data "################################################" Data "################################################" Data "################################################" Data "################################################" Data "################################################" Data "################################################" Data "################################################" Data "################################################" Data "################################################" Data "############## ##############" Data "############## ##############" Data "############ ############" Data "############ ############" Data "########## ##########" Data "########## ##########" Data "########## ##########" Data "########## ##########" Data " ## " Data " ## " Data " ## ## " Data " ## ## " Data "## ##" Data "## ##" Data "##########" Data "##########" Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data " ###### " Data " ###### " Data "## ##" Data "## ##" Data "## " Data "## " Data "## " Data "## " Data "## " Data "## " Data "## ##" Data "## ##" Data " ###### " Data " ###### " Data "##########" Data "##########" Data "## " Data "## " Data "## " Data "## " Data "######## " Data "######## " Data "## " Data "## " Data "## " Data "## " Data "##########" Data "##########" Data " ###### " Data " ###### " Data "## ##" Data "## ##" Data "## " Data "## " Data "## ######" Data "## ######" Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data " ###### " Data " ###### " Data " ###### " Data " ###### " Data " ## " Data " ## " Data " ## " Data " ## " Data " ## " Data " ## " Data " ## " Data " ## " Data " ## " Data " ## " Data " ###### " Data " ###### " Data "## " Data "## " Data "## " Data "## " Data "## " Data "## " Data "## " Data "## " Data "## " Data "## " Data "## " Data "## " Data "##########" Data "##########" Data "## ##" Data "## ##" Data "#### ####" Data "#### ####" Data "## ## ##" Data "## ## ##" Data "## ## ##" Data "## ## ##" Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data " ###### " Data " ###### " Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data " ###### " Data " ###### " Data "######## " Data "######## " Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data "######## " Data "######## " Data "## ## " Data "## ## " Data "## ## " Data "## ## " Data "## ##" Data "## ##" Data " ###### " Data " ###### " Data "## ##" Data "## ##" Data "## " Data "## " Data " ###### " Data " ###### " Data " ##" Data " ##" Data "## ##" Data "## ##" Data " ###### " Data " ###### " Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data " ## ## " Data " ## ## " Data " ## " Data " ## " Data " ###### " Data " ###### " Data "## ##" Data "## ##" Data "## ####" Data "## ####" Data "## ## ##" Data "## ## ##" Data "#### ##" Data "#### ##" Data "## ##" Data "## ##" Data " ###### " Data " ###### " Data " ## " Data " ## " Data " #### " Data " #### " Data " ## " Data " ## " Data " ## " Data " ## " Data " ## " Data " ## " Data " ## " Data " ## " Data " ###### " Data " ###### " Data " ###### " Data " ###### " Data "## ##" Data "## ##" Data " ##" Data " ##" Data " ###### " Data " ###### " Data "## " Data "## " Data "## " Data "## " Data "##########" Data "##########" Data " ###### " Data " ###### " Data "## ##" Data "## ##" Data " ##" Data " ##" Data " #### " Data " #### " Data " ##" Data " ##" Data "## ##" Data "## ##" Data " ###### " Data " ###### " Data "## " Data "## " Data "## " Data "## " Data "## ## " Data "## ## " Data "##########" Data "##########" Data " ## " Data " ## " Data " ## " Data " ## " Data " ## " Data " ## " Data "##########" Data "##########" Data "## " Data "## " Data "######## " Data "######## " Data " ##" Data " ##" Data " ##" Data " ##" Data "## ##" Data "## ##" Data " ###### " Data " ###### " Data " ###### " Data " ###### " Data "## ##" Data "## ##" Data "## " Data "## " Data "######## " Data "######## " Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data " ###### " Data " ###### " Data "##########" Data "##########" Data " ##" Data " ##" Data " ## " Data " ## " Data " ## " Data " ## " Data " ## " Data " ## " Data " ## " Data " ## " Data " ## " Data " ## " Data " ###### " Data " ###### " Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data " ###### " Data " ###### " Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data " ###### " Data " ###### " Data " ###### " Data " ###### " Data "## ##" Data "## ##" Data "## ##" Data "## ##" Data " ########" Data " ########" Data " ##" Data " ##" Data "## ##" Data "## ##" Data " ###### " Data " ###### " Here's Hoping Maybe in the news letter? Luna. |
| ||
whoa! well, you've surely enough paper to wipe your ass, when you print all this stuff. :) |
| ||
I suggest you learn how to code in blitz |
| ||
What's Space Invaders? |
| ||
looks like a game about numbers with all the ###########and all |
| ||
Not entirely sure why you're using Data statements to create your characters when you could load a bitmap to do the job easier...Global invader = LoadImage("alien.bmp") Global hero = LoadImage("spaceship.bmp")A little tip would be to use types (linked lists) for your alien spaceships. Types tend to confuse those new to the language, but they're a simple concept really. Think of it as a set of items. You know where the top one is, but you dont know how many are in the set. You can pull them out one by one to count them, but there is no limit to the number that may be in there. A more practical example would be this: Type aliens Field x, y ; Coordinates of alien Field score ; Points scored for killing End Type Restore alien_positions For x = 1 To alien_count alien.aliens = New aliens Read alien\x Read alien\y Read alien\score Next For a.aliens = Each aliens KillAlien( a ) Next Function KillAlien( a.aliens ) Delete a End FunctionAll this code does is use data statements to built a 'database' of aliens and then loops through and wipes them out. There are more in-depth tutorials on types available, but thats pretty much the basics. There used to be a space invaders tutorial on my website - I'll see if I can dig it out sometime. |
| ||
Actually, Eikon already wrote a really nice tutorial on making a space invaders game : http://www.blitzcoder.com/cgi-bin/articles/show_article.pl?f=eikon09252002092137.html And Krylar wrote one on making an asteroids game in Blitz : http://www.blitzcoder.com/cgi-bin/articles/show_article.pl?f=gamekrylar11032000.html There are plenty more tutorials and articles over on Blitzcoder, focussing on the language, but those 2 seemed like they might be useful. |
| ||
CS_TBL whoa! well, you've surely enough paper to wipe your ass, when you print all this stuff. :) This is a fact. It could measure up to ANDREX. RiverRat I suggest you learn how to code in blitz Asking for help and requesting a tutorial shows I am attempting to do just that. Neo Genesis10 Not entirely sure why you're using Data statements to create your characters when you could load a bitmap to do the job easier... I was basically attempting to replicate the QBASIC code but this has proved to be a bit beyond me. Thanks for the info on types I will try to implement this approach. Sybixsus Thanks for the links, both are very good and will help me a great deal, also the links in the second link to the free graphics is going to save my fingers from doing all the DATA typing. Now I can load good graphics using the method Neo Genesis10 has explained to me. Thanks for all your help everyone. Luna. |