Results 1 to 9 of 9

Thread: VB Classic: Snake's Escapade [Source]

  1. #1

    Thread Starter
    Hyperactive Member Fedhax's Avatar
    Join Date
    Aug 2006
    Posts
    293

    VB Classic: Snake's Escapade [Source]

    Language: VB Classic (VB 6)

    Taking NoteMe's Snakes tutorial, I implemented it and expanded upon it. It does what NoteMe's program did and more:

    • Multiple fruits for different values
    • Multiple power-ups
    • Tracks levels: increases speed as you level up
    • Tracks score: your snake gains body segments every 100 points
    • Simple help/about windows to provide control/gameplay assistance
    • /debug: Comes with a basic debug mode for testing/development


    I've tested it through the first two levels, and it behave a little unbalanced or unpredictable as gameplay continues. There are more things that I've thought about doing for it, but I may move on to another game/format unless someone is curious to see it developed. It come as is. Every function/sub is formatted and has a comment header with everything filled out except for Description, and it comes with a table of contents to easily find code that I grouped together (Game Loop, Image Processing, etc).

    Graphics are handled via three image objects and not bitblt, but all of the objects are tracked in corresponding arrays so you would probably only have to rewrite the image routines to make it behave that way.
    Last edited by Fedhax; Aug 8th, 2006 at 05:33 PM. Reason: Formatting title

  2. #2
    Addicted Member
    Join Date
    Jan 2006
    Posts
    247

    Re: VB Classic: Snake's Escapade [Source]

    I suppose I better give some feedback .

    The game has a minor bug that I am sure is easily fixable, but I am too lazy to fix it atm. Here is the code:

    VB Code:
    1. Private Sub GetCommandArguments()
    2.    
    3.     Dim ls                  As String
    4.     Dim lsCommands()        As String
    5.    
    6.     lsCommands = Split(Command$, " ")
    7.    
    8.     For [COLOR=Red]li[/COLOR] = LBound(lsCommands) To UBound(lsCommands)
    9.         Select Case LCase(lsCommands(li))
    10.             Case "/debug"
    11.                 mnuDebug.Visible = True
    12.        
    13.         End Select
    14.     Next
    15.  
    16. End Sub

    Error: "Variable Not Defined"

  3. #3

    Thread Starter
    Hyperactive Member Fedhax's Avatar
    Join Date
    Aug 2006
    Posts
    293

    Re: VB Classic: Snake's Escapade [Source]

    Quote Originally Posted by Seraphino
    I suppose I better give some feedback .
    The game has a minor bug that I am sure is easily fixable, but I am too lazy to fix it atm.
    ...

    Add a declaration for li.
    VB Code:
    1. Private Sub GetCommandArguments()
    2.    
    3.     Dim ls                  As String
    4.     Dim lsCommands()        As String
    5.     [COLOR=Red]Dim li                  As Integer[/COLOR]
    6.    
    7.     lsCommands = Split(Command$, " ")
    8.    
    9.     For li = LBound(lsCommands) To UBound(lsCommands)
    10.         Select Case LCase(lsCommands(li))
    11.             Case "/debug"
    12.                 mnuDebug.Visible = True
    13.        
    14.         End Select
    15.     Next
    16.  
    17. End Sub

    I've made the change in my code, but I haven't uploaded a new version of the game since it is a single line change.

  4. #4
    Hyperactive Member gtilles's Avatar
    Join Date
    Dec 2004
    Location
    Planet Earth
    Posts
    394

    Re: VB Classic: Snake's Escapade [Source]

    giWindowStatus needs to be defined as well
    I set it as int, game seems to work ok now.
    Private Sub InitializeGame(Optional vbRunGame As Boolean = True)
    Truly, you have a dizzying intellect.

  5. #5

    Thread Starter
    Hyperactive Member Fedhax's Avatar
    Join Date
    Aug 2006
    Posts
    293

    VB Classic: Snake's Escapade [Source]

    Thanks for the feedback. I've made changes to the source code to get through those two errors. It compiled and ran for me so you shouldn't have any variable isn't defined type messages.
    Attached Files Attached Files

  6. #6
    Lively Member
    Join Date
    Aug 2006
    Posts
    65

    Re: VB Classic: Snake's Escapade [Source]

    Hey I did that tutorial and im working on m own with my own features as well...

    I couldnt figure out how to change the speed and saw that you have done that could you give me some help with that.

    My movement is the same as the tutorials ... so I dont know if you changed yours... but could you provide me with some code or help. THanks.

  7. #7

    Thread Starter
    Hyperactive Member Fedhax's Avatar
    Join Date
    Aug 2006
    Posts
    293

    Re: VB Classic: Snake's Escapade [Source]

    Quote Originally Posted by HaLLa
    My movement is the same as the tutorials ... so I dont know if you changed yours... but could you provide me with some code or help. THanks.
    Are you using a Timer object like the tutorial? If you are using the Timer for the game loop, then just set the Timer's Interval value to a smaller number.
    VB Code:
    1. Timer.Interval = 150   ' Original speed
    2. Timer.Interval = 100   ' Faster Game Loop/Movement
    3. Timer.Interval = 200   ' Slower Game Loop/Movement
    When and How you set these values depend on how you want to handle your game's "gameplay".
    Last edited by Fedhax; Aug 29th, 2006 at 03:56 PM. Reason: Code Formatting

  8. #8
    Lively Member
    Join Date
    Aug 2006
    Posts
    65

    Re: VB Classic: Snake's Escapade [Source]

    Yeah I figured that out... lol so easy.

    I just have to figure out where you cant go the opposite direction onw...

    like when your going right you cant go left and over your body.

  9. #9

    Thread Starter
    Hyperactive Member Fedhax's Avatar
    Join Date
    Aug 2006
    Posts
    293

    Re: VB Classic: Snake's Escapade [Source]

    Quote Originally Posted by HaLLa
    Yeah I figured that out... lol so easy.

    I just have to figure out where you cant go the opposite direction onw...

    like when your going right you cant go left and over your body.
    For me, I just ignored the key_down event if the key pressed would move it against the body:
    VB Code:
    1. If gbStatus(geStatus.fRunning) Then
    2.    
    3.         liNewKeyCode = KeyCodeMapping(viKeyCode)    'Used for snake effects
    4.        
    5.         Select Case liNewKeyCode
    6.             Case geKeyCode.Left, geKeyCode.NK4
    7.                 If Not foSnake(0).Facing = geDirection.Right Then
    8.                     foSnake(0).Facing = geDirection.Left
    9.                 End If
    10.            
    11.             Case geKeyCode.Up, geKeyCode.NK8
    12.                 If Not foSnake(0).Facing = geDirection.Down Then
    13.                     foSnake(0).Facing = geDirection.Up
    14.                 End If
    15.            
    16.             Case geKeyCode.Right, geKeyCode.NK6
    17.                 If Not foSnake(0).Facing = geDirection.Left Then
    18.                     foSnake(0).Facing = geDirection.Right
    19.                 End If
    20.        
    21.             Case geKeyCode.Down, geKeyCode.NK2
    22.                 If Not foSnake(0).Facing = geDirection.Up Then
    23.                     foSnake(0).Facing = geDirection.Down
    24.                 End If
    25.  
    26.         End Select
    27.     End If
    Now, ensuring that it won't move over another snake piece--aside from walking back over itself--is another problem to tackle, but this code would work if you were just trying to prevent the snake from walking over itself.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width