ki...

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

onkelz89

Betreff: ki...

BeitragDo, Nov 03, 2005 1:07
Antworten mit Zitat
Benutzer-Profile anzeigen
hi

ich glaube ich bin nicht der einzigste wenn ich sage das die ki das schwerste beim programmieren eines spieles ist...

naja wie dem auch sei. ich benötige vorschläge wie ich meine ki machen soll.

man sieht ja alles von oben und die menschen sollen folgendes können:

- nicht gegen wände laufen (im vorraus checken)
- bei feindnäherung angstpegel steigen / weglaufen
- nicht ziellos umherirren

so meine idee bisher waypoints und jeder hat bestimmte eigenschaften /ziele die die menschen übermittelt bekommen.

beispiel:

supermarktengang(waypoint)
neuer auftrag: kaufe ein (mit random dann was er kaufen soll) usw...

naja egal
das klappt ja aber was ich nicht weiß

wie kann man einen radius um den mensch ziehen (kein bild) und zwar so ca. 50 pixel um ihn und 4 stück für nord,süd,west und ost richtungsangabe?

und dann muss noch geprüft werden ob ziwschen dem feind und dem mensch eine mauer ist, da man ja nie weiß was sich hinter der mauer befindet Wink

danke im vorraus

mfg
onkelz

achja wenn euch was anderes als waypoints einfallen würde dann währe ich sehr dankbar, weil ich hab ma geschaut wie viele ich ca. benötige ... Sad zu viele

Sir Dan

BeitragDo, Nov 03, 2005 9:59
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo,

ich sitze momentan am selben problem. Meine lösung:

zu1. Pathfinding http://www.blitzbase.de/artikel/path_1.htm

zu2.
BlitzBasic: [AUSKLAPPEN]

If inbereich (gegnerx,gegnery,20,20);also hat er einen sichtradius von 10 in jede richtung
gegnerangst = gegnerangst + 1
pathfinding(gegnerx,gegnery,gegnerzielx,gegnerziely)
EndIf

Function inbereich(x,y,breite,hoehe)
If playerX() > x
If playerX() < x+breite
If playerY() > y
If playerY() < y+hoehe
Return True
EndIf
EndIf
EndIf
EndIf
Return False
End Function


zu3. siehe Pathfinding. Wenn der gegner vor dir weglaufen soll, dann nimm einfach deine x/y koordinate und die des gegners:
BlitzBasic: [AUSKLAPPEN]

If playerX > gegnerx gegnersziel = gegnerx + Rand(10,20) ; also wenn der gegner rechts von dir ist soll er einfach
;...


edit: und gegnerziel nimmst du dann als zielvariable für das pathfinding

Ich hoffe das dir das geholfen hat

MfG Sirdan

edit2: zu deinem mauerproblem : lass doch einfach von den gegnerx/y
koordinaten zu den playerx/y koordinaten ein test image laufen(welches nicht gezeichnet wird) und wenn es kollidiert, dann sieht der gegner den player nicht
(\_/)
(O.o)
(> <) This is Bunny. Copy Bunny into your signature to help him on his way to world domination.
 

onkelz89

BeitragDo, Nov 03, 2005 17:35
Antworten mit Zitat
Benutzer-Profile anzeigen
jo danke

ist ne gute idee, aber ich schau erstmal noch was anderes an (hab heut morgen auch ne idee gehabt und seh sie mir an wie alles klappt)

mfg
onkelz

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group