Eiegene Kleine KI
Übersicht

xXThunderXxBetreff: Eiegene Kleine KI |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo zusammen ich prog erst seit 3 wochen und hab jetzt ein problem und zwar mache ich grad ein Spiel in dem 25 monster gezeichnet werden und so....... jetzt will ich aber das sie hin und her laufen und nicht nur wenn sie irgent wo anstoßen den weg zurück gehen. Sie sollen dann einen anderen weg gehen ich hab da mal was gemacht aber das funktioniert irgent wie nicht aber am besten schaut ihr es euch selber an
Code: [AUSKLAPPEN] zahler = zahler + 1 If zahler = 4 Then For i = 0 To 24 If monsterm(i)\richtung = 1 And ( aktivif = 0 )Then monsterm(i)\richtung = Rand(1,4) :aktivif = 1 If monsterm(i)\richtung = 3 Then monsterm(i)\y = monsterm(i)\y + 5 ElseIf monsterm(i)\richtung = 4 Then monsterm(i)\y = monsterm(i)\y - 5 Else monsterm(i)\x = monsterm(i)\x + 5 : monsterm(i)\richtung = 1 aktivif = 1 EndIf EndIf If monsterm(i)\richtung = 2 And( aktivif = 0 )Then monsterm(i)\richtung = Rand(1,4) If monsterm(i)\richtung = 3 Then monsterm(i)\y = monsterm(i)\y + 5 ElseIf monsterm(i)\richtung = 4 Then monsterm(i)\y = monsterm(i)\y - 5 Else monsterm(i)\x = monsterm(i)\x - 5 : monsterm(i)\richtung = 2 aktivif = 1 EndIf EndIf If monsterm(i)\richtung = 3 And ( aktivif = 0 ) Then monsterm(i)\richtung = Rand(1,4) If monsterm(i)\richtung = 1 Then monsterm(i)\x = monsterm(i)\x + 5 ElseIf monsterm(i)\richtung = 2 Then monsterm(i)\x= monsterm(i)\x - 5 Else monsterm(i)\y = monsterm(i)\y + 5 : monsterm(i)\richtung = 3 aktivif = 1 EndIf EndIf If monsterm(i)\richtung = 4 And ( aktivif = 0 ) Then monsterm(i)\richtung = Rand(1,4) If monsterm(i)\richtung = 1 Then monsterm(i)\x = monsterm(i)\x + 5 ElseIf monsterm(i)\richtung = 2 Then monsterm(i)\x = monsterm(i)\x - 5 Else monsterm(i)\y = monsterm(i)\y - 5 : monsterm(i)\richtung = 4 aktivif = 1 EndIf EndIf Next aktivif = 0 zahler = 0 EndIf Text 60,60, " Monster"+monsterm(1)\x Text 60,75, " Monster"+monsterm(1)\y Text 60,85, " Monster"+monsterm(1)\richtung Text 160,60, " Monster"+monsterm(7)\x Text 160,75, " Monster"+monsterm(7)\y Text 160,85, " Monster"+monsterm(7)\richtung Text 260,60, " Monster"+monsterm(19)\x Text 260,75, " Monster"+monsterm(19)\y Text 260,85, " Monster"+monsterm(19)\richtung Text 360,60, " Monster"+monsterm(3)\x Text 360,75, " Monster"+monsterm(3)\y Text 360,85, " Monster"+monsterm(3)\richtung For i = 0 To 24 DrawImage monsterw,monsterm(i)\x,monsterm(i)\y,6 Next Das "text" habe ich gemacht um zu schauen woran es liegen könnte aber finde es nicht vieleicht liegt es an den if schleifen aber ich weis nicht genau woran. thx für eure hilfe |
||
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm..
Hi erstmal Versuche deine Gegner lieber als Type ![]() Zum Rumlaufen, auch Pathfinding gennent, würde ich einen A*-Algorithmusempfehlen, falls sie nicht zufällig rumwuseln sollen, stichwort: "Waypoints". (http://de.wikipedia.org/wiki/A*-Algorithmus, blödes * in der URL -.-) Da du erst seit 3 Wochen codest, finde ich das du zuerst etwas einfacheres machen solltest.. Zum Schluss : https://www.blitzforum.de/about/startup/ ![]() mfg |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Anhand der Syntax sind es Types in einem Array... Aber die wichtigeren Informationen wären: Wie sieht die Karte aus, auf denen sich das Viehzeug bewegen soll? Für ein perfektes Labyrinth kann man die Rechte oder Linke Hand Regel verwenden ohne auf A* zurückgreifen zu müssen. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
xXThunderXx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es ist theoretisch eine leere Karte. Sie sollen erst mal rum laufen die Kollision mit den Achsen mach ich später aber erst mal müssen sich die Monster bewegen. Theoretisch sollen die Monster eine zufällige bewegung ausführen. | ||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
=> SeedRnd![]() ![]() ![]() ![]() |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und aus Millisecs![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
xXThunderXx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Habs jetzt hin bekommen ist zwar kein gut Ki aber sie erfüllt ihren zweck hir ist der mal der code
Code: [AUSKLAPPEN] zahler = zahler + 1 If zahler = 4 Then For i = 0 To 24 If monsterm(i)\richtung = 1 Then monsterm(i)\richtung = Rand(1,20) For a = 0 To 1 If monsterm(i)\richtung = 3 Then monsterm(i)\y = monsterm(i)\y + 5 : Exit ElseIf monsterm(i)\richtung = 4 Then monsterm(i)\y = monsterm(i)\y - 5 : Exit Else monsterm(i)\x = monsterm(i)\x + 5 : monsterm(i)\richtung = 1 : Exit EndIf Next EndIf If monsterm(i)\richtung = 2 Then monsterm(i)\richtung = Rand(1,20) For a = 0 To 1 If monsterm(i)\richtung = 3 Then monsterm(i)\y = monsterm(i)\y - 5 : Exit ElseIf monsterm(i)\richtung = 4 Then monsterm(i)\y = monsterm(i)\y +5 : Exit Else monsterm(i)\x = monsterm(i)\x - 5 : monsterm(i)\richtung = 2 : Exit EndIf Next EndIf If monsterm(i)\richtung = 3 Then monsterm(i)\richtung = Rand(1,20) For a = 0 To 1 If monsterm(i)\richtung = 1 Then monsterm(i)\x = monsterm(i)\x + 5 : Exit ElseIf monsterm(i)\richtung = 2 Then monsterm(i)\x= monsterm(i)\x - 5 : Exit Else monsterm(i)\y = monsterm(i)\y - 5 : monsterm(i)\richtung = 3 : Exit EndIf Next EndIf If monsterm(i)\richtung = 4 Then monsterm(i)\richtung = Rand(1,20) For a = 0 To 1 If monsterm(i)\richtung = 1 Then monsterm(i)\x = monsterm(i)\x + 5 : Exit ElseIf monsterm(i)\richtung = 2 Then monsterm(i)\x = monsterm(i)\x - 5 : Exit Else monsterm(i)\y = monsterm(i)\y + 5 : monsterm(i)\richtung = 4 : Exit EndIf Next EndIf Next zahler = 0 EndIf For i = 0 To 24 DrawImage monsterw,monsterm(i)\x,monsterm(i)\y,6 Next |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group