עבור לתוכן

משחק סנייק בVB

Featured Replies

פורסם

אממ יש לנו מין שיעור תכנות בVB בבי"ס(כתה ז') והתחלנו לעשות מין משחק סנייק פשוט..

לא עשינו כמעט כלום(חוסר זמן, סיימנו פרויקט קטן אחר ודחקנו את זה לסוף) חוץ מהתזוזה של SHAPE יחיד..

בכל מקרה, ניסיתי לעשות את זה בבית וקצת התקדמתי(אלגוריתם תזוזה שונה, התנגשות בגבולות, אפשרות לאתחל ועוד דברים פשוטים.. S:),אבל לא הצלחתי ליצור תנועה רציפה של כל החלקים(זה מSHAPES)

אני מניח גם שיש דרך ליצור העתקים או משהו כזה IN GAME, ולא ליצור מאות העתקים מראש שיתחברו בהמשך..

-הכל בVB6

Dim X%, Y%, i%, z%, t%, s%, Done$
Function Game_Over()
Beep
Timer1.Enabled = False
Done = MsgBox("Game Over, Retry?", vbYesNo, "Game Over")
If Done = vbYes Then
Restart
Else
End
End If
End Function
Function Restart()
Shape1(0).Top = i
Shape1(0).Left = z
Timer1.Enabled = True
X = 0
Y = 0
End Function
Private Sub Form_Load()
z = Shape1(0).Left
i = Shape1(0).Top
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case (KeyCode)
Case vbKeyRight: X = 1: Y = 0
Case vbKeyLeft: X = -1: Y = 0
Case vbKeyUp: X = 0: Y = 1
Case vbKeyDown: X = 0: Y = -1
Case vbKeyEscape
Timer1.Enabled = False
Case vbKeySpace
Timer1.Enabled = True
End Select

' If KeyCode = vbKeyEscape Then
' Timer1.Enabled = False
' Else
' Timer1.Enabled = True

' End If
End Sub
Private Sub Timer1_Timer()
If X = -1 Then
Shape1(0).Left = Shape1(0).Left - 100
End If

If X = 1 Then
Shape1(0).Left = Shape1(0).Left + 100
End If

If Y = 1 Then
Shape1(0).Top = Shape1(0).Top - 100
End If

If Y = -1 Then
Shape1(0).Top = Shape1(0).Top + 100
End If

' If X <> 0 Then
' Shape1(1).Left = Shape1(0).Left + 375
' End If
' If Y <> 0 Then
' Shape1(1).Top = Shape1(0).Top + 375
' End If


If Shape1(0).Top >= 4680 Or Shape1(0).Top <= 0 Or Shape1(0).Left <= 0 Or Shape1(0).Left >= 5640 Then
Game_Over
End If


End Sub

*

'  If X <> 0 Then
' Shape1(1).Left = Shape1(0).Left + 375
' End If
' If Y <> 0 Then
' Shape1(1).Top = Shape1(0).Top + 375
' End If

זה הניסיון הנואש שלי להזיז את הצורה השניה אחרי הראשונה..

אם למישהו מתחשק לעזור הוא מוזמן, כמובן תודה מראש;

אם לא אז אני אתקדם כבר ביום שני ><.

פורסם

כל פעם אתה צריך למחוק את האחרון ולצייר את הראשון...

פורסם
  • מחבר

אפשר קצת יותר פירוט, דוגמא?

פורסם

במקום למחוק הכל, ולצייר הכל מחדש, פשוט תמחוק את הזנב של הנחש ותצייר את הראש.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים