Hilfe KI

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Broken Arrow

Betreff: Hilfe KI

BeitragDi, Mai 20, 2008 10:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weiß nicht ganz wie fuer mein neues Spiel Ki machen Soll.
Ich mache gerade ein Pong ähnliches Spiel, nur das dabei mehr Bälle vorkommen , dann muss die KI Aus einem Winkel, der derzeitigen Position , und der Geschwindigkeit die Position festellen können wo der
Ball Aufkommt und da hin fahren wo sie die meisten Bälle erwischen kann.

PS Wie benutzt man den IMG befehl Beim Nachrichten schreiben

Hat jemand ne Idee ?
  • Zuletzt bearbeitet von Broken Arrow am Di, Mai 20, 2008 22:39, insgesamt einmal bearbeitet
 

Dreamora

BeitragDi, Mai 20, 2008 13:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Indem du die KI genau das machen lässt was du tun würdest und das auf basis der "Daten" die dich dazu bewegen würden es zu tun.
KI ist kein Anfängerthema, sprich wenn du in Blitz noch nicht sattelfest bist, verzichte noch drauf und lern erst blitz.

Und unterlass das kindische gesmiley oder ich trash das Ding
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Prometx

BeitragDi, Mai 20, 2008 14:45
Antworten mit Zitat
Benutzer-Profile anzeigen
als eine ki sollte eben immer den ball verfolgen,musst halt irgendwie die coordinaten des balles raus bekommen,eventuell EntityX , EntityY , EntityZ ,sollte glaube ich gehen(bin auch noch kein profi in blitz3d^)
natürlich wäre die ki dadurch unbesiegbar-->musst sie noch durch den maximalen speed einschrenken.
mfg Prometx

The_Nici

BeitragDi, Mai 20, 2008 17:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

If ball_y>spieler2_y then spieler2_y=spieler2_y+1
If ball_y<spieler2_y then spieler2_y=spieler2_y-1


Könnte man auch selbst draufkommen.

Broken Arrow

BeitragDi, Mai 20, 2008 22:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Du verstehst das Falsch

Ich wollte nämlich mit mehreren Bällen arbeiten wenn ich es so mache wie du meinst, würde der Schläger zittern Da ich mehrere Bälle habe
 

Dreamora

BeitragDi, Mai 20, 2008 22:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Nochmal: überleg dir wie du es machen würdest und versuch das umzusetzen.

Sprich präsentier uns deinen Ansatz mit code. Wir helfen dir bei code problemen aber wir sind nicht deine mami, die dir deine kartoffeln vorstampft fürs essen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

ProfJake

ehemals "DTC" / "Fabian Niemann"

BeitragDi, Mai 20, 2008 22:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Jetzt sei doch mal ein bisschen zahmer Dreamora Very Happy
Also Broken Arrow, du musst dir überlegen nach welchem Ball sich der gegnerische Schläger richten soll.
Das währe der nächste, oder? Nicht ganz, du solltest auch die Geschwindigkeit nicht unbeachtet lassen, falls es da Unterschiede gibt.
Allgemein gehalten musst du also den Ball ermitteln, der als nächster auf den Schläger trifft.
Wenn du es mit Types machst, dann durchläufst du einfach alle und suchst dir den passenden raus.
Und zu dem bewegst du den Schläger dann.

Das könnte in etwa so aussehen:

Code: [AUSKLAPPEN]

Function getCurrentBall()

 currentBall.TBall = new TBall
 currentBall\x = 0

 For b.TBall = EachIn TBall
  If gegner\x - currentBall\x > gegner\x - b\x Then currentBall = b
 Next

 Return currentBall

End Function


Ich weiß nicht, ob das so funktioniert, da ich kein Blitz3D habe, aber ich hoffe es kann dir einen groben Überblick verschaffen.
  • Zuletzt bearbeitet von ProfJake am Di, Mai 20, 2008 22:45, insgesamt 2-mal bearbeitet

Broken Arrow

BeitragDi, Mai 20, 2008 22:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich werde es so für den Anfang machen, Ich werde die Y nähe des balles rausfinden und danach sortieren
und der Schläger soll dann zu dem Ball fahren der im am nächsten ist ( nur für den Anfang)
Kann des funktionieren


Ich habe auch nur 2D und mach das Spiel auch in 2D

Kapier ich net
Shocked

Ich kenn den Befehl Eachin ned
 

Dreamora

BeitragDi, Mai 20, 2008 22:59
Antworten mit Zitat
Benutzer-Profile anzeigen
dann würd ich empfehlen, die Hilfe zu konsultieren und ihn zu lernen Smile (auch wenn der Befehl in Blitz3D / BlitzPlus Each heisst)
Types allgemein wären sinnvoll verstanden zu sein. (Each ist ein Type Befehl)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
  • Zuletzt bearbeitet von Dreamora am Mi, Mai 21, 2008 9:14, insgesamt einmal bearbeitet
 

Gast

BeitragMi, Mai 21, 2008 9:04
Antworten mit Zitat
EachIn ist ein BMax Befehl, in B3D/2D musst du Each nehemen.
Ich Schreib das Besispiel in B3D um, aber c&p nutzt trotzdem nichts...
Code: [AUSKLAPPEN]
Function getCurrentBall()

 currentBall.Ball = new Ball
 currentBall\x = 0

 For b.Ball = Each Ball
  If gegner\x - currentBall\x > gegner\x - b\x Then currentBall = b
 Next

 Return currentBall

End Function

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group