Neon Snake

      Soll ein online Modus hinzugefügt werden? 53
      1.  
        Ja! (45) 85%
      2.  
        Nein! (8) 15%
      So, einige von euch werden sicherlich bemerkt haben das ich mich in letzter Zeit mit GDI+, Kollision etc beschäftigt hab. Das perfekte Übungsspiel dazu ist natürlich Snake, es ist 2d, verlangt Kollisionen und ist relativ einfach mit Arrays zu coden.
      Ich hab es erstmal ohne irgend welche Bilder oder einem Startbildschirm gemacht, aber den kann man schnell einbauen.

      Ich würde mich über gute Kritik, aber auch über Lob freuen.
      Es werden wahrscheinlich weitere Powerups folgen, und noch Moduse wie Überleben oder Zeit.
      Ich freu mich auch über neue Ideen ;)

      Zur Erkärung (Einzelplayer):

      Du bist Snake. Dein Ziel ist es die Gelben Vierecke einzusammeln, dadurch wirst du auch länger.
      Manchmal kommen Powerups, die Roten Vierecke die dich für 15 Sekunden schneller machen, und die Weißen die dich um 1/4tel verkürzen.
      Man darf nicht mit sich selbst oder den Wänden kollidieren, man kann mit Joystick/Gamepad oder der Tastatur spielen.

      Zur Erklärung(Multiplayer):
      Ein Spieler spielt mit Joystick, der andere mit den Pfeiltasten. Das Ziel ist es zu überleben und nicht mit sich selbst, der Wand, oder dme anderen Spieler zusammenzustoßen.
      Wer die meisten Punkte hat gewinnt das Spiel.

      Änderungen:
      -Zeit/Länge/Punkte Anzeige im Wenstertitel
      -Mauern (selbst erstellen von Mauern durch Array!)
      -Zeitaussehen angepasst
      -Joystick verwendbar
      -Gamepad verwendbar
      -Joystick, Gamepad und Tastatur benutzbar!
      -Offline Multiplayer Modus
      -Offline Modus Multiplayer UND Einzelplayer

      Neue Maps werden in einem extra .zip Ordner hochgeladen und können nun von euch einfach verwendet werden. Ich könnt gute Maps hochladen, ich werde sie wenn sie uns gefallen in den Map Ordner setzen. Lasst euch was kreatives einfallen :)

      Version 1.9:
      -Mapeditor verfügbar
      -auslesen der Mapdateien verfügbar (Abspeichern durch "s", zurück durch "z")

      Die aktuellste Version gibt es immer HIER
      Dateien
      • Maps.zip

        (434 Byte, 268 mal heruntergeladen, zuletzt: )
      • Neon Snake v. 1.9.rar

        (747,65 kB, 307 mal heruntergeladen, zuletzt: )
      mfg BB

      "IF YOU'RE GOING TO KILL IT
      OPEN SOURCE IT!
      "

      by Phillip Torrone


      Shoutbox schrieb:

      [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:




      Neon Snake

      Dieser Beitrag wurde bereits 41 mal editiert, zuletzt von „BadBunny“ () aus folgendem Grund: Kleiner BUG im Mehrspieler Modus behoben

      Nice!
      Fehlt nur noch ein Timer/Schlangenlänge/Punktezähler per

      AutoIt-Quellcode

      1. winsettitle()
      und ein Netzwerk-Mehrspielermodus auf einem großen Spielfeld und es ist perfekt 8o
      ciao
      Andy


      "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
      "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

      Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt
      braucht aba ihrwie recht viel CPU oO
      40% 1 Core
      10% 2 Core
      hmm, und das bei nem 3,2GHz DualCore oO
      Sei Klug, stell dich Dumm
      Meine Scripte

      Widergabeliste Ersteller Erstellt Widergabelisten für verschiedene Player
      Language [UDF] Eine UDF mit der man die Beschreibung von vorgegebene Buttons /Labels ändert
      Minecraft Item List Eine einfache Liste der Derzeitigen Implementierten Minecraft Blöcke / Items, mit ID
      Info Tool Ein kleines Tool welche CPU auslastung und mehr ausgibt
      GDI+ Abspann Erstell einen Abspann wie bei Filmen oder Spielen
      Das mit der Compterausnutzung hab ich auch schon bemerkt, wie kann man das verbessern?
      mfg BB

      "IF YOU'RE GOING TO KILL IT
      OPEN SOURCE IT!
      "

      by Phillip Torrone


      Shoutbox schrieb:

      [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:




      Neon Snake
      - Der vertikale Teil der Schlange sieht etwas komisch aus:

      Liegt daran das ich nur Kreise zeichne, ich könnte ales als Rechteck zeichen bis auf den Letzten und den Vorderen.
      (So siehts mit rechtecken ind er Mitte aus (finde ich nicht sehr schön)
      Spoiler anzeigen

      AutoIt-Quellcode

      1. #region ;**** Directives created by AutoIt3Wrapper_GUI ****
      2. #AutoIt3Wrapper_outfile=..\Neon Snake.exe
      3. #AutoIt3Wrapper_UseX64=n
      4. #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
      5. #include <GDIPlus.au3>
      6. #include <Misc.au3>
      7. #include <GUIConstants.au3>
      8. #include <Array.au3>
      9. Opt("GUIOnEventMode", 1)
      10. _GDIPlus_Startup()
      11. ;;>> Powerup Ideen
      12. ;> Speed (Farbe Rot) ERLEDIGT!
      13. ;> Schlange verkürzen (danke an Oscar :-)) weiß
      14. ;;>> GUIs Variablen
      15. Global $GuiWidth = 500, $GuiHeight = 500
      16. Global $Punkte = 0, $lange = 0, $Zeit = 200
      17. Global $EndTimer = TimerInit()
      18. ;;>> Mauer
      19. Dim $MauerWidth[1] = [$GuiWidth]
      20. Dim $MauerHeight[1] = [$GuiHeight / 16]
      21. Dim $MauerX[1] = [0]
      22. Dim $MauerY[1] = [$GuiHeight / 2 - $MauerHeight / 2]
      23. ;;>> Snakes Variablen
      24. Global $warten, $status
      25. Global $SnakeSpeed = 2, $SnakeWidth = 10, $SnakeHeight = 10
      26. Global $Richtung = 27
      27. Global $FoodOn = False, $FoodX, $FoodY, $Wachstum = 4
      28. Global $PUX = $GuiWidth, $PUY = $GuiHeight, $PowerTime, $TimerInit
      29. ;;>> Arrays X--Y
      30. Dim $SnakePos[60][2]
      31. $SnakePos[UBound($SnakePos) - 1][0] = $GuiWidth / 3 * 2
      32. $SnakePos[UBound($SnakePos) - 1][1] = 20
      33. For $i = 0 To UBound($SnakePos) - 1
      34. $SnakePos[$i][0] = $SnakePos[UBound($SnakePos) - 1][0] - ($SnakeSpeed * UBound($SnakePos)) + ($i * $SnakeSpeed)
      35. $SnakePos[$i][1] = $SnakePos[UBound($SnakePos) - 1][1]
      36. Next
      37. $hWnd = GUICreate("Neon Snake Punkte [" & $Punkte & "], Länge [" & $lange & "], Zeit [" & $Zeit & "sek.]", $GuiWidth, $GuiHeight)
      38. GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
      39. GUISetState()
      40. $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hWnd)
      41. $hBitmap = _GDIPlus_BitmapCreateFromGraphics($GuiWidth, $GuiHeight, $hGraphics)
      42. $hBackbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
      43. $hBrush = _GDIPlus_BrushCreateSolid(0xff00ff00)
      44. $hBrushFood = _GDIPlus_BrushCreateSolid(0xffffff00)
      45. $hBrushPU = _GDIPlus_BrushCreateSolid(0xffff0000)
      46. $hBrushPU2 = _GDIPlus_BrushCreateSolid(0xffffffff)
      47. While 1
      48. Sleep(10)
      49. _SnakeOpt()
      50. _SnakeMove()
      51. _SnakeCrash()
      52. _SetFood()
      53. _EatFood()
      54. _SetPowerup()
      55. _GetPowerup()
      56. _GDIPlus_GraphicsClear($hBackbuffer, 0xff8000ff)
      57. For $i = 0 To UBound($MauerX) - 1
      58. _GDIPlus_GraphicsFillRect($hBackbuffer, $MauerX[$i], $MauerY[$i], $MauerWidth[$i], $MauerHeight[$i])
      59. Next
      60. _GDIPlus_GraphicsFillRect($hBackbuffer, $FoodX, $FoodY, $SnakeWidth, $SnakeHeight, $hBrushFood)
      61. If $status = 1 Then _GDIPlus_GraphicsFillRect($hBackbuffer, $PUX, $PUY, $SnakeWidth, $SnakeHeight, $hBrushPU)
      62. If $status = 2 Then _GDIPlus_GraphicsFillRect($hBackbuffer, $PUX, $PUY, $SnakeWidth, $SnakeHeight, $hBrushPU2)
      63. If _IsPressed(50) Then MsgBox(0, "Pause", "Das Spiel wurde pausiert, wenn sie weiterspielen wollen klicken sie auf OK")
      64. For $i = 2 To UBound($SnakePos) - 3
      65. _GDIPlus_GraphicsFillRect($hBackbuffer, $SnakePos[$i][0], $SnakePos[$i][1], $SnakeWidth, $SnakeHeight, $hBrush)
      66. Next
      67. _GDIPlus_GraphicsFillEllipse($hBackbuffer, $SnakePos[UBound($SnakePos) - 2][0], $SnakePos[UBound($SnakePos) - 1][1], $SnakeWidth, $SnakeHeight, $hBrush)
      68. _GDIPlus_GraphicsFillEllipse($hBackbuffer, $SnakePos[UBound($SnakePos) - 1][0], $SnakePos[UBound($SnakePos) - 1][1], $SnakeWidth, $SnakeHeight, $hBrush)
      69. _GDIPlus_GraphicsFillEllipse($hBackbuffer, $SnakePos[0][0], $SnakePos[0][1], $SnakeWidth, $SnakeHeight, $hBrush)
      70. _GDIPlus_GraphicsFillEllipse($hBackbuffer, $SnakePos[1][0], $SnakePos[1][1], $SnakeWidth, $SnakeHeight, $hBrush)
      71. $Split = StringSplit($Zeit - (TimerDiff($EndTimer) / 1000), ".", 2)
      72. If IsArray($Split) Then
      73. WinSetTitle("Neon Snake", "", "Neon Snake Punkte [" & $Punkte & "], Länge [" & UBound($SnakePos) & "], Zeit [" & $Split[0] & "sek.]")
      74. EndIf
      75. If $Zeit - (TimerDiff($EndTimer) / 1000) <= 0 Then
      76. MsgBox(0, "Aus", "Es ist aus! Jetzt würdest du zum Spielmenü oder zur Gesammtwertung (wenn Online) kommen!")
      77. Exit
      78. EndIf
      79. _GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, $GuiWidth, $GuiHeight)
      80. WEnd
      81. Func _GetPowerup()
      82. If TimerDiff($PowerTime) >= 15000 Then
      83. $hBrush = _GDIPlus_BrushCreateSolid(0xff00ff00)
      84. $SnakeSpeed = 3
      85. EndIf
      86. If $SnakePos[UBound($SnakePos) - 1][0] >= $PUX - $SnakeWidth And $SnakePos[UBound($SnakePos) - 1][0] <= $PUX + $SnakeWidth And $SnakePos[UBound($SnakePos) - 1][1] >= $PUY - $SnakeHeight And $SnakePos[UBound($SnakePos) - 1][1] <= $PUY + $SnakeHeight Then
      87. If $status = 1 Then
      88. $hBrush = _GDIPlus_BrushCreateSolid(0xffff0000)
      89. $SnakeSpeed = 5
      90. EndIf
      91. If $status = 2 Then
      92. For $i = 0 to (UBound($SnakePos) - 1) / 2
      93. _ArrayDelete($SnakePos, $i)
      94. Next
      95. EndIf
      96. $PowerTime = TimerInit()
      97. $PUX = 2 * $GuiWidth
      98. $PUY = 2 * $GuiHeight
      99. EndIf
      100. EndFunc ;==>_GetPowerup
      101. Func _SetPowerup()
      102. If TimerDiff($TimerInit) >= 5000 Then
      103. $PUX = $GuiWidth
      104. $PUY = $GuiHeight
      105. EndIf
      106. If $FoodOn Then Return
      107. If Random(1, 4, 1) = 3 Then
      108. $u = False
      109. Do
      110. $PUX = Random(1, $GuiWidth - $SnakeWidth, 1)
      111. $PUY = Random(1, $GuiHeight - $SnakeHeight, 1)
      112. For $i = 0 To UBound($MauerX) - 1
      113. If $PUX >= $MauerX[$i] - $SnakeWidth And $PUX <= $MauerX[$i] + $MauerWidth[$i] And $PUY >= $MauerY[$i] - $SnakeHeight And $PUY <= $MauerY[$i] + $MauerHeight[$i] Then
      114. $u = False
      115. Else
      116. $u = True
      117. EndIf
      118. Next
      119. Until $u = True
      120. $TimerInit = TimerInit()
      121. If Random(1, 5, 1) >= 2 Then
      122. $status = 1
      123. Else
      124. $status = 2
      125. EndIf
      126. EndIf
      127. EndFunc ;==>_SetPowerup
      128. Func _EatFood()
      129. If TimerDiff($warten) < 500 Then Return
      130. If $SnakePos[UBound($SnakePos) - 1][0] >= $FoodX - $SnakeWidth And $SnakePos[UBound($SnakePos) - 1][0] <= $FoodX + $SnakeWidth And $SnakePos[UBound($SnakePos) - 1][1] >= $FoodY - $SnakeHeight And $SnakePos[UBound($SnakePos) - 1][1] <= $FoodY + $SnakeHeight Then
      131. $FoodOn = False
      132. ReDim $SnakePos[UBound($SnakePos) + $Wachstum][2]
      133. For $i = 1 To $Wachstum
      134. $SnakePos[UBound($SnakePos) - $i][0] = $SnakePos[UBound($SnakePos) - $Wachstum - 1][0]
      135. $SnakePos[UBound($SnakePos) - $i][1] = $SnakePos[UBound($SnakePos) - $Wachstum - 1][1]
      136. Next
      137. $Punkte += 1
      138. $warten = TimerInit()
      139. EndIf
      140. EndFunc ;==>_EatFood
      141. Func _SetFood()
      142. If $FoodOn Then Return
      143. $u = False
      144. Do
      145. $FoodX = Random(1, $GuiWidth - $SnakeWidth, 1)
      146. $FoodY = Random(1, $GuiHeight - $SnakeHeight, 1)
      147. For $i = 0 To UBound($MauerX) - 1
      148. If $FoodX >= $MauerX[$i] - $SnakeWidth And $FoodX <= $MauerX[$i] + $MauerWidth[$i] And $FoodY >= $MauerY[$i] - $SnakeHeight And $FoodY <= $MauerY[$i] + $MauerHeight[$i] Then
      149. $u = False
      150. Else
      151. $u = True
      152. EndIf
      153. Next
      154. Until $u = True
      155. $FoodOn = True
      156. EndFunc ;==>_SetFood
      157. Func _SnakeCrash()
      158. If TimerDiff($warten) <= 200 Then
      159. Return
      160. EndIf
      161. For $i = 0 To UBound($MauerX) - 1
      162. If $SnakePos[UBound($SnakePos) - 1][0] >= $MauerX[$i] - $SnakeWidth And $SnakePos[UBound($SnakePos) - 1][0] <= $MauerX[$i] + $MauerWidth[$i] And $SnakePos[UBound($SnakePos) - 1][1] >= $MauerY[$i] - $SnakeHeight And $SnakePos[UBound($SnakePos) - 1][1] <= $MauerY[$i] + $MauerHeight[$i] Then
      163. MsgBox(0, "Verloren", "LOL, du bist gegen eine Wand gerannt!")
      164. Exit
      165. EndIf
      166. Next
      167. For $i = 0 To UBound($SnakePos) - 9
      168. If $SnakePos[UBound($SnakePos) - 1][0] >= $SnakePos[$i][0] - $SnakeWidth And $SnakePos[UBound($SnakePos) - 1][0] <= $SnakePos[$i][0] + $SnakeWidth And $SnakePos[UBound($SnakePos) - 1][1] >= $SnakePos[$i][1] - $SnakeHeight And $SnakePos[UBound($SnakePos) - 1][1] <= $SnakePos[$i][1] + $SnakeHeight Then
      169. MsgBox(0, "Verloren", "Du bist mit dir selber zusammengestoßen!")
      170. Exit
      171. EndIf
      172. Next
      173. EndFunc ;==>_SnakeCrash
      174. Func _SnakeOpt()
      175. For $i = 0 To UBound($SnakePos) - 2
      176. $SnakePos[$i][0] = $SnakePos[$i + 1][0]
      177. $SnakePos[$i][1] = $SnakePos[$i + 1][1]
      178. Next
      179. Switch $Richtung
      180. Case 25
      181. $SnakePos[UBound($SnakePos) - 1][0] -= $SnakeSpeed
      182. Case 26
      183. $SnakePos[UBound($SnakePos) - 1][1] -= $SnakeSpeed
      184. Case 27
      185. $SnakePos[UBound($SnakePos) - 1][0] += $SnakeSpeed
      186. Case 28
      187. $SnakePos[UBound($SnakePos) - 1][1] += $SnakeSpeed
      188. EndSwitch
      189. If $SnakePos[UBound($SnakePos) - 1][0] >= $GuiWidth Then $SnakePos[UBound($SnakePos) - 1][0] = 0
      190. If $SnakePos[UBound($SnakePos) - 1][0] <= 0 - $SnakeWidth Then $SnakePos[UBound($SnakePos) - 1][0] = $GuiWidth
      191. If $SnakePos[UBound($SnakePos) - 1][1] >= $GuiHeight Then $SnakePos[UBound($SnakePos) - 1][1] = 0
      192. If $SnakePos[UBound($SnakePos) - 1][1] <= 0 - $SnakeHeight Then $SnakePos[UBound($SnakePos) - 1][1] = $GuiHeight
      193. EndFunc ;==>_SnakeOpt
      194. Func _SnakeMove()
      195. If _IsPressed(25) And $Richtung <> 27 Then ;;>> Links
      196. $Richtung = 25
      197. Return
      198. EndIf
      199. If _IsPressed(26) And $Richtung <> 28 Then ;;>> Oben
      200. $Richtung = 26
      201. Return
      202. EndIf
      203. If _IsPressed(27) And $Richtung <> 25 Then ;;>> Rechts
      204. $Richtung = 27
      205. Return
      206. EndIf
      207. If _IsPressed(28) And $Richtung <> 26 Then ;;>> Unten
      208. $Richtung = 28
      209. Return
      210. EndIf
      211. EndFunc ;==>_SnakeMove
      212. Func _exit()
      213. _GDIPlus_BrushDispose($hBrushPU)
      214. _GDIPlus_BrushDispose($hBrushFood)
      215. _GDIPlus_BrushDispose($hBrush)
      216. _GDIPlus_GraphicsDispose($hGraphics)
      217. _GDIPlus_BitmapDispose($hBitmap)
      218. _GDIPlus_Shutdown()
      219. Exit
      220. EndFunc ;==>_exit

      - Die Zeitanzeige sollte ganze Sekunden anzeigen oder auf max. 3 Nachkommastellen gerundet sein.

      Schon erledigt ;)
      - Eine Kollision mit dem Rand sollte zum beenden (verloren) führen.

      Auch schon erledig ;)
      - Du könntest "Mauern" einfügen, die man nicht berühren darf.

      Gerade fertig

      - Gamepad-Unterstützung

      Wie das? Dafür müsste ich die Gamepadtastendrücke auslesen, das weiß ich leider nicht wie das geht, würde mich über Hilfe freuen :)
      mfg BB

      "IF YOU'RE GOING TO KILL IT
      OPEN SOURCE IT!
      "

      by Phillip Torrone


      Shoutbox schrieb:

      [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:




      Neon Snake

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „BadBunny“ ()

      BadBunny schrieb:

      Wie das? Dafür müsste ich die Gamepadtastendrücke auslesen, das weiß ich leider nicht wie das geht, würde mich über Hilfe freuen :)

      Das ist gar nicht so schwer. Ich habe das mal für mein Musik-Quiz benutzt.
      Dazu habe ich diese Vorlage verwendet:
      Spoiler anzeigen

      AutoIt-Quellcode

      1. ;____________________________________________________________________
      2. ; Original program by Ejoc ;
      3. ; Improved by Adam1213 (autoit 3.2 compatiblity + improved labels ;
      4. ;____________________________________________________________________
      5. #include <GUIConstants.au3>
      6. ;_________________ SETUP_____________________________________
      7. Local $joy,$coor,$h,$s,$msg
      8. $joy = _JoyInit()
      9. dim $labels_text[8]=['X', 'Y', 'Z', 'R', 'U', 'V', 'POV', 'Buttons']
      10. dim $labels_no=UBound($labels_text)
      11. dim $labels[$labels_no]
      12. dim $labels_value[$labels_no]
      13. ;__________ CONFIG ____________________________________________
      14. ;---------- Find the max length of the longest label --------------
      15. $label_len=0
      16. for $text in $labels_text
      17. $len=stringlen($text)
      18. if $len>$label_len then
      19. $label_len=$len
      20. endif
      21. next
      22. $label_len*=6
      23. ;_____________ GUI _______________________________________________
      24. GUICreate('Joystick Test', 200, 200)
      25. GUICtrlCreateLabel('Joystick', 40, 20, 100, 20)
      26. for $i=0 to $labels_no-1
      27. GuiCtrlCreatelabel($labels_text[$i]&':', 10, 60+$i*12, $label_len, 12)
      28. $labels[$i]=GuiCtrlCreatelabel('', 10+$label_len, 60+$i*12, 70, 12)
      29. $labels_value[$i]=''
      30. next
      31. GUISetState()
      32. ;_____________________________________________________________________
      33. while 1
      34. $coord=_GetJoy($joy,0)
      35. for $i=0 to UBound($coord)-1
      36. if $coord[$i]<>$labels_value[$i] then
      37. GUICtrlSetData($labels[$i], $coord[$i])
      38. $labels_value[$i]=$coord[$i]
      39. endif
      40. next
      41. sleep(10)
      42. $msg =GUIGetMSG()
      43. if $msg = $GUI_EVENT_CLOSE Then Exitloop
      44. WEnd
      45. $lpJoy=0 ; Joyclose
      46. ;======================================
      47. ; _JoyInit()
      48. ;======================================
      49. Func _JoyInit()
      50. Local $joy
      51. Global $JOYINFOEX_struct = "dword[13]"
      52. $joy=DllStructCreate($JOYINFOEX_struct)
      53. if @error Then Return 0
      54. DllStructSetData($joy, 1, DllStructGetSize($joy), 1);dwSize = sizeof(struct)
      55. DllStructSetData($joy, 1, 255, 2) ;dwFlags = GetAll
      56. return $joy
      57. EndFunc
      58. ;======================================
      59. ; _GetJoy($lpJoy,$iJoy)
      60. ; $lpJoy Return from _JoyInit()
      61. ; $iJoy Joystick # 0-15
      62. ; Return Array containing X-Pos, Y-Pos, Z-Pos, R-Pos, U-Pos, V-Pos,POV
      63. ; Buttons down
      64. ;
      65. ; *POV This is a digital game pad, not analog joystick
      66. ; 65535 = Not pressed
      67. ; 0 = U
      68. ; 4500 = UR
      69. ; 9000 = R
      70. ; Goes around clockwise increasing 4500 for each position
      71. ;======================================
      72. Func _GetJoy($lpJoy,$iJoy)
      73. Local $coor,$ret
      74. Dim $coor[8]
      75. DllCall("Winmm.dll","int","joyGetPosEx", _
      76. "int",$iJoy, _
      77. "ptr",DllStructGetPtr($lpJoy))
      78. if Not @error Then
      79. $coor[0] = DllStructGetData($lpJoy,1,3)
      80. $coor[1] = DllStructGetData($lpJoy,1,4)
      81. $coor[2] = DllStructGetData($lpJoy,1,5)
      82. $coor[3] = DllStructGetData($lpJoy,1,6)
      83. $coor[4] = DllStructGetData($lpJoy,1,7)
      84. $coor[5] = DllStructGetData($lpJoy,1,8)
      85. $coor[6] = DllStructGetData($lpJoy,1,11)
      86. $coor[7] = DllStructGetData($lpJoy,1,9)
      87. EndIf
      88. return $coor
      89. EndFunc
      Ich finds gut :)

      Allerdings gefällt mir der Punkt mir dem "Halb in ein Futterstück reinfahren" nicht so gut, da ich es gewohnt bin ganz schnell runter und rechts zu drücken wenn ich z.B. nur eine Einheit über dem Futter bin :D

      AutoIt-Quellcode

      1. While $Life = True
      2. $nMSG = BrainGetMsg()
      3. Switch $nMSG
      4. Case $Idea
      5. _Convert_Idea2Code()
      6. EndSwitch
      7. WEnd
      Danke für die guten Ideen, man könnte die Überprüfung ein wenig kleiner machen, also das man nicht so weit weg vom Punkt sein darf.

      Neue Updates:
      -Offline Mutliplayer/Einzelplayer mit Josytick und Tastatur!
      mfg BB

      "IF YOU'RE GOING TO KILL IT
      OPEN SOURCE IT!
      "

      by Phillip Torrone


      Shoutbox schrieb:

      [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:




      Neon Snake
      So, danke für den Hinweis, da ist was ausversehen weggerutscht.

      2 Bugs wurden jetzt behoben.
      mfg BB

      "IF YOU'RE GOING TO KILL IT
      OPEN SOURCE IT!
      "

      by Phillip Torrone


      Shoutbox schrieb:

      [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:




      Neon Snake
      Version 1.8 ist raus, verbesserte GUI auswahl, Grafich verschönert. Mehrere Maps.
      mfg BB

      "IF YOU'RE GOING TO KILL IT
      OPEN SOURCE IT!
      "

      by Phillip Torrone


      Shoutbox schrieb:

      [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:




      Neon Snake
      Die neue Version gefällt mir (besonder die name22 Map ^^), aber wenn man zu schnell die Richtung ändert fährt man auch in sich rein (das sieht so aus als würde die Schlange ihren eigenen Kopf fressen :D). Ich weiß nicht ob das beabsichtigt ist, aber es sieht irgendwie komisch aus.
      Das könnte man verhindern in dem man ein wenig Zeit nach jeder Kurve hat, bis man wieder kurven darf :D aber die Frage ist, lohnt sich das? Man soll ja nicht wild umherklicken. Ich würde mich über eure Meinung freuen.
      mfg BB

      "IF YOU'RE GOING TO KILL IT
      OPEN SOURCE IT!
      "

      by Phillip Torrone


      Shoutbox schrieb:

      [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:




      Neon Snake
      Danke für diesen sehr guten Tip! Und es ist fertig! Der Map Editor steht bereit und das Spiel kann sie auslesen! Ihr könnt hier eure eigenen erstellten Maps vorstellen, evtl nehm ich welche auf ;)
      mfg BB

      "IF YOU'RE GOING TO KILL IT
      OPEN SOURCE IT!
      "

      by Phillip Torrone


      Shoutbox schrieb:

      [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:




      Neon Snake
      Noch nicht, der Buttpn hat (für euch ^^) noch keine Funktion.
      mfg BB

      "IF YOU'RE GOING TO KILL IT
      OPEN SOURCE IT!
      "

      by Phillip Torrone


      Shoutbox schrieb:

      [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:




      Neon Snake
      So, im ersten Post findet ihr nun eine Umfrage ob ein Online Modus entstehen soll. Wir würden uns über eure Meinung freuen :)
      mfg BB

      "IF YOU'RE GOING TO KILL IT
      OPEN SOURCE IT!
      "

      by Phillip Torrone


      Shoutbox schrieb:

      [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:




      Neon Snake
    autoit.de Webutation