Author Topic: BlitzBasic: Hellfire Source code[BB2D]  (Read 3597 times)

0 Members and 1 Guest are viewing this topic.

Offline Hotshot

  • DBF Aficionado
  • ******
  • Posts: 2114
  • Karma: 91
    • View Profile
BlitzBasic: Hellfire Source code[BB2D]
« on: September 04, 2006 »
Code: [Select]
; ------------------------------------------------
; (1) Add title screen and Game over screen too.
; (2) Level Select
; (3) Add Score
; (4) Add Hiscore
; ------------------------------------------------

;Game Version 1.0

Graphics 800, 600
SetBuffer BackBuffer()
Global fntArial
Global player_x=5
Global player_y=280
Global lifes
Global bullet_x, bullet_y
Global bullet_enabled
Global Title=False
Global Level$   = "Very Easy"
Global Levels
Global Score
Global Hi_Score =250
Global Font1
Global Font2
Global FirstX, LastX
Global FirstY, LastY


Font1=LoadFont("Arial",20,True,True,False)
Font2=LoadFont("Arial",120,True,True,False)

Score    =0
Levels   =1
Level$   = "Very Easy"

bullet_x = player_x
bullet_y = player_y
bullet_enabled = False

; The rock Type
Type Rock
    Field x,y
    Field destroyed
End Type

Title=False
endgame=False

Repeat

      Cls

      If Title=False
            If KeyHit( 1 )     
                endgame=True   
            EndIf             
         lifes = 100
         Intro()
      Else
            If KeyHit( 1 )     
                title=False   
            EndIf             
          Draw_Rock()
          Draw_Player()
          Draw_bullets()
      EndIf

      If Lifes<=0 Then Game_over() : Title=False

            count_rock=0                                                       
            For pointer_rock.rock=Each rock
                count_rock=count_rock+1
            Next
            disp_text$=" Rocks: "+count_rock+" "                               
            disp_text_width=StringWidth( disp_text )
            disp_text_height=StringHeight( disp_text )
            Color 0,0,0
            Rect GraphicsWidth()-disp_text_width,GraphicsHeight()-disp_text_height , disp_text_width,disp_text_height , True
            Color 128,192,255
            Text GraphicsWidth()-disp_text_width,GraphicsHeight()-disp_text_height , disp_text , False,False

      Flip

Until endgame

FreeFont Font1
FreeFont Font2

End


Function Intro()

        player_x=5
        player_y=280
        Level$  = Level$

         For value = 0 To 255
             red   = 255 - value
             green = 225
             blue  = value
             Color red , green , blue

             ; Convert color position to vertical position
             relative = value * GraphicsHeight () / 255
             Rect 0 , lastheight , GraphicsWidth () , relative

             ; Remember previous vertical position
             lastheight = relative
         Next

         Color 0,0,255

         If KeyHit(205) Then Levels=Levels+1  ;;
         If KeyHit(203) Then Levels=Levels-1  ;;

         If Levels<1  Then Levels =1
         If Levels=>3 Then Levels =3

         SetFont Font2
         Text 375,115, "HELLFIRE",True,True

         SetFont Font1
         Text 375,250, "H i - S c o r e : "+Hi_Score,True
         Text 375,215, "Diffcult level:"+Level$,True
         Text 275,290, "Programming "
         Text 275,315, "by  G r a h a m  H"
         Text 175,450, "Move Arrow left to right to choose the Diffcult level",False,False
         Text 375,515, "Press Spacebar to Start",True,True

         Select Levels
                ; Very Easy
                Case 1
                     Level$="Very Easy"
                     FirstX =1     : LastX  =99000
                     FirstY =1     : LastY  =600

                ; Medium
                Case 2
                     Level$="Medium"
                     FirstX =1     : LastX  =6000
                     FirstY =1     : LastY  =600
                ; Very Hard
                Case 3
                     Level$="Very Hard"
                     FirstX =1500  : LastX  =3000
                     FirstY =5     : LastY  =580
         End Select

         If KeyDown(57)
            ;; delete each rock ;; A1a
            For i = 0 To 150
                r.rock = New Rock ; Create rocks
                r\x = Rand(FirstX,LastX)    ; The starting X
                r\y = Rand(FirstY,LastY)    ; The starting Y
                r\destroyed = False
            Next
            Title =True
         EndIf

;;         Flip
End Function

Function Draw_Rock()
         ; Set color for the rocks
         Color 255,80,10

         ;--------------Draw rocks----------------
         For r.rock = Each Rock
             Rect r\x,r\y,20,20
             r\x = r\x - 10
             If r\x < 0 Then ; If the rocks reaches the left
                r\x = Rand(580,950) ; of the screen, draw
                r\y = Rand(1,580) ; it at the left
         EndIf

             If RectsOverlap(player_x,player_y,30,15,r\x,r\y,20,20) Then
                lifes = lifes - 1
                If lifes =< 0 Then
                   player_x = -100
                   player_y = -100
                EndIf
             EndIf

             If RectsOverlap(bullet_x,bullet_y,5,2,r\x,r\y,20,20) Then
                Score=Score+1
                Delete r.rock
                bullet_enabled = False
                bullet_x = player_x + 5
                bullet_y = player_y + 10
             EndIf
         Next
End Function

Function Draw_Player()
        Color 10,150,10
        Rect player_x,player_y,30,15 ;      Draw player

        If KeyDown(208) Then player_y = player_y + 7 ; Go up
        If KeyDown(200) Then player_y = player_y - 7 ; Go down

        If player_y < 0 Then player_y = 0
        If player_y > 585 Then player_y = 585
End Function

Function Draw_bullets()
        If KeyHit(57) Then
           bullet_enabled = True
           bullet_x = player_x + 5
           bullet_y = player_y + 10
        EndIf

        If bullet_enabled = True Then
           bullet_x = bullet_x + 15
           Rect bullet_x,bullet_y,5,2
        EndIf

        SetFont Font1
        Color 255,255,255
        Text 300,5, "Lifes remaining:  " + lifes,False
        Text 100,5, "Score:  " + Score,False

        If Score>Hi_Score Then Hi_Score=Score
        Text 700,5, "Hi - Score: "+Hi_Score,True
End Function

Function Game_Over()
        Cls
        For value = 0 To 255
            red   = 255 - value
            green = 150
            blue  = value
            Color red , green , blue

            ; Convert color position to vertical position
            relative = value * GraphicsHeight () / 255
            Rect 0 , lastheight , GraphicsWidth () , relative

            ; Remember previous vertical position
            lastheight = relative
        Next
        Color 0,0,255
        SetFont Font2
        Text 375,315, "Game Over",True,True

        SetFont Font1
        Flip
        Delay 1000
        FlushKeys
End Function

 :cheers:
« Last Edit: July 21, 2007 by Shockwave »

Offline Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17409
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
Re: BlitzBasic: Hellfire Source code
« Reply #1 on: September 04, 2006 »
Hey, nice work Hotshot! I like the colours in the title screen. :)
The game is quite nice too, just needs some kickass graphics and sound.

Tell me, what happened to the version of Frogger that you were working on before?
That was almost finished as I recall.
Shockwave ^ Codigos
Challenge Trophies Won:

Offline Hotshot

  • DBF Aficionado
  • ******
  • Posts: 2114
  • Karma: 91
    • View Profile
Re: BlitzBasic: Hellfire Source code
« Reply #2 on: September 06, 2006 »
Quote
Tell me, what happened to the version of Frogger that you were working on before?
That was almost finished as I recall.

Yes it was finished and I think in my ZIPSTICK drive.....I will try send it on here.

How could I improve Hellfire?  I do know that need better graphics( I dont have problem when come to drawing graphics.)
« Last Edit: September 08, 2006 by Hotshot »