Pathfinding mit 4 Richtungen

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

Baschdi

Betreff: Pathfinding mit 4 Richtungen

BeitragSo, Nov 18, 2007 12:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann mir jemand bitte in diesen code hier ein pathfinding einbauen, sodass die "figur" sich auf den zielpunkt zubewegt ??? am besten mit pathfinding in 4 richtungen thx im vorraus

ich habs selbst schon etliche male probiert abe4r es klappt .... ich weiß nich mehr weiter .... drum dacht ich gibt es hier bestimmt welche dir mir helfen können

der code ist stark vereinfacht damit es nicht unnötig kompliziert wird


Code: [AUSKLAPPEN]


Graphics 800,600,0,2
SetBuffer BackBuffer()

Global tile=32,weight=800,height=600   
Global xback,yback,mapX=32,mapY=32
Global mx,my,mxx,myy

Dim map(32,32)
   map(1,5)=1
   map(2,5)=1
   map(3,5)=1
   map(4,5)=1
   map(5,5)=1
   map(6,5)=1
   map(7,5)=1
   map(8,5)=1
   map(9,5)=1
      
Type unit
Field x,y,xx,yy,xZ,yZ
End Type
   
;Hauptschleife
NewUnit(12*tile,12*tile)
Repeat
Cls
   ;Map zeichnen
   For x=0 To mapX
   For y=0 To mapY
   If map(x,y)=1 Then Color 0,0,0
   If map(x,y)=0 Then Color 0,100,0
      Rect x*tile-xback,y*tile-yback,tile,tile,1
   Color 255,255,0
      Rect x*tile-xback,y*tile-yback,tile,tile,0   
   Next
   Next
   ;Map scrollen
   If KeyDown(200) And yback>0 Then:
      yback=yback-4
   EndIf
   If KeyDown(208) And yback<mapY*tile-height Then:
      yback=yback+4
   EndIf
   If KeyDown(205) And xback<mapX*tile-weight Then:
      xback=xback+4
   EndIf
   If KeyDown(203) And xback>0 Then:
      xback=xback-4
   EndIf
   ;Maus Koo
   mx=MouseX()
   my=MouseY()
   mxx=mx/tile
   myy=my/tile
   ;Unit
   UpdateUnit()
      
      
      
Flip
Until KeyHit(1)
End

Function NewUnit(x,y)
   
   u.unit=New unit
   u\xx=x
   u\yy=y
   u\xZ=tile
   u\yZ=tile
   
End Function

Function UpdateUnit()
   
   For u.unit=Each unit
      
      u\x=u\xx-xback
      u\y=u\yy-yback
      Color 155,155,155
      Rect u\x,u\y,tile,tile,1


      Color 155,15,5
      Rect u\xZ-xback,u\yZ-yback,tile,tile,1      
      
      
   Next
   
End Function


The_Baschdi@
Wer in Ogame is soll sofort zum Orden wechseln (D.O.) --- Alle Macht dem Orden

darth

BeitragSo, Nov 18, 2007 12:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Codearchiv bietet immer eine gute Anlaufstelle.
Bei Pathfinding findet man massig Antworten mit Google.
Pathfinding ist auch der Forensuche nicht unbekannt.

Naja, trotzem, guck dir das mal an: https://www.blitzforum.de/foru...hp?t=23931
Diese Signatur ist leer.

Baschdi

BeitragSo, Nov 18, 2007 12:22
Antworten mit Zitat
Benutzer-Profile anzeigen
kenn ich alles und blicke nichts ... wenn man mir das beispiel prog macht dann lern ichs von selbst weil ich dann dauernt damit arbeite .... naja es wäre jedenfalls seht nett
The_Baschdi@
Wer in Ogame is soll sofort zum Orden wechseln (D.O.) --- Alle Macht dem Orden
 

feider

ehemals "Decelion"

BeitragSo, Nov 18, 2007 13:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du die Beispiele im Codearchiv verwendest, hast du doch Beispielprogs.
Und mit fertigen Dingen arbeiten ist eine Sache... Sich selbst etwas überlegen ist eine andere. Setze dich am Besten erstmal mit einem Block und einem Stift (jaa, ganz ohne Strom das ganze.. es sei denn für die Lampe) hin und überlege dir ein System. Wenn du dafür schon keinen Ansatz findest, dann informiere dich bei www.google.de und bei www.robsite.de über die Grundlagen. Versuche nicht, von Anfang an ein perfektes System zu erschaffen, taste dich langsam vor. Die Übersetzung in Quellcode ist zudem nur der letzte Schritt.

Viel Glück dabei
Dece

Baschdi

BeitragSo, Nov 18, 2007 13:46
Antworten mit Zitat
Benutzer-Profile anzeigen
du hast leicht reden weil dus schon verstehst für dich is es einfacher ....aber ich probiers !!!
thx für den rat

mfg
The_Baschdi@
Wer in Ogame is soll sofort zum Orden wechseln (D.O.) --- Alle Macht dem Orden
 

feider

ehemals "Decelion"

BeitragSo, Nov 18, 2007 19:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Das war die Art und Weise, mit der ich es verstanden habe... Wenn du dann immer noch direkte Probleme hast, steht dieses Forum natürlich offen, die Beispiele stehen im Codearchiv Wink

Baschdi

BeitragSo, Nov 18, 2007 20:43
Antworten mit Zitat
Benutzer-Profile anzeigen
hab mich gleich an die arbeit gemacht und hab dann auch ein beispiel geproggt ... das lustige war das pathfinding hat funktioniert...aber nur wenn start udn ziel in einer bestimmten weise zueinander lagen! zufällig war das in meinem beispiel genau so , sodass ich schon gedacht hab es klappt schon nach grad mal 20 zeilen .....


mfg
The_Baschdi@
Wer in Ogame is soll sofort zum Orden wechseln (D.O.) --- Alle Macht dem Orden
 

HyDr0x

BeitragSo, Nov 18, 2007 21:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab mir ein beispiel prog (glaube von robsites) gezogen udn bin es Zeile für zeile im Debugger durchgegangen, hab mir Notizen gemacht und es mir anschließend nochmals zeile für Zeile angeguggt. Das ganze hab ich solange wiederholt bis ich wusste wofür jede Zeile gut war.

Baschdi

BeitragSo, Nov 18, 2007 21:20
Antworten mit Zitat
Benutzer-Profile anzeigen
mhh klinkt ich hab mir schoin oft die beispiele angeguckt .. zeile für zeile aber ich werde draus nicht wirklich schlau !!! ... drum probier ichs erst mal wies Decelion gesagt hat vermischt mit deinem ...dann klappts schoin irgentwie

mfg
The_Baschdi@
Wer in Ogame is soll sofort zum Orden wechseln (D.O.) --- Alle Macht dem Orden

Silver_Knee

BeitragSo, Nov 18, 2007 21:31
Antworten mit Zitat
Benutzer-Profile anzeigen
ich baus mir alles aus meinen gedanken heraus zb das simpelste rundenbasierenste pathfinding wäre:

das objekt renn auf das ziel zu und wenn es gegen eine wand läuft rennt es solange an ihr entlang bis es wieder auf die gerade strecke trifft. das ist zb die verhaltensweise eines einfachen tieres und manchmal auch die der menschen in einem labyrinth

oder

das ding geht nur dann nach vorne wenn es dabei seinem objekt näher kommt. stößt es dabei gegen die wand dreht es sich solange bis es wieder freihe bahn hat. so stll ich mir eine roboter suchdrohne vor die der spieler überlisten kann.

solche pahthfinding engines verbrauchen zudem weniger zeit als eine vorrausberechnende und drehen bei "ziel nicht erreichbar" nicht durch sondern hängen halt an irgend einer ecke fest

ich bin immernoch für diese methode denn als ich mit bb angefangen hab hatt ich kein internet .... ich musste mir die ganzen befehle selber beibringen.... und immerhin kann ich sie jetzt
 

HyDr0x

BeitragSo, Nov 18, 2007 21:54
Antworten mit Zitat
Benutzer-Profile anzeigen
So hab ich bevor ich Pathfinding hatte auch gearbeitet. Aber auf lange sicht gesehen ist das keine Lösung. Damals habe ich mich im Codegewirr was sich durch dies Art von "semipathfinding" ansammelte nicht mehr zurechtgefunden. Klar wenn sein Objekt nur Rechteckig ist kann man das so schon machen (das verwendete ich z.B. in einem frühen Versuch ein Anno-Klon zu machen). Aber auch da gibt es Probleme.
z.B.

Code: [AUSKLAPPEN]

if px < sx then sx = sx-1
if px > sy then sx = sx + 1


was aber wenn der y Wert z.B. übereinstimmt doch ein Hinderniss dazwischen ist? Dann läuft das Objekt ständig dagegen. Also fängt man an Ausweichroutinen einzubauen. Links rechts, oben unten. Dabei muss man die erste Routine ausschalten weil sowie man sich nach links oder rechts bzw. oben, unten bewegt will die erste Routine ja wieder zurück. Alos baut man eine Sicherheitsvariable ein die sie ausschaltet. Was aber wenn das Objekt in eine Sackgasse gerät, dann muss man wieder eine Routine einbauen für 4 verschiedene Sackgassen und wieder die vorherigen ausschalten. Nun stelle man sich vor man will mit einem solchen Code einen Bomberman-Kon machen in dem eine KI versucht einen zu verfolgen und schließlich zu vernichten. In so einer bombermantypischen Labyrinth-map gibt es auch zerstörbare Hindernisse, oder Bomben die einen treffen können. Also baut man routinen eine diesen Bomben auszuweichen und schaltet dabei wieder die ersten aus, was wenn das reine rechts links ausweiche nichts mehr nützt? Dann baut man eine Routine ein die die vorderen linken, rechten, unteren linken und rechten Stellen absucht. Dabei muss aber auch darauf geachtet werden das dazwischen keinen Hindernisse sind. Somit kann man nicht nur Punktweise suchen sondern muss die Gesamte Strecke absuchen und auch hier wieder Schaltungen legen. Was aber wenn man selber eine Bombe legen will? Ja auch hier muss wieder alles abgesucht werden. Wie man schnell sieht kommt man so nicht sehr weit. Ich selbst musste das leider auch feststellen, hatte mich aber schon bemerkenswert weit voran gearbeitet bis ich endlich aufgab und mir Pathfinding beibrachte. Siehe da, alle Bemühungen von insgesamt 3 Wochen dieses System umzusetzten hatten in 3 Tagen jegliche Bedeutung verloren. Denn mit pathfinding ging es schneller, sauberer und viel einfacher.

Schade das ich meinen alten Quellcode nicht mehr habe indem ich so gearbeitet hatte.

So sah ungefähr ein kleines Stückchen davon aus :

Code: [AUSKLAPPEN]

For tby = 1 To 5
For tb = 1 To 5

If player\a = 0 And no = 0 Then
If map(player\ppx+tb,player\ppy) < 5 Then
If map(player\ppx+tb,player\ppy-tby) < 5 And map2(player\ppx+tb,player\ppy-tby) < 1 Then
player\six = player\ppx+tb
player\siy = player\ppy-tby
Exit
ElseIf map(player\ppx+tb,player\ppy+tby) < 5 And map2(player\ppx+tb,player\ppy+tby) < 1 Then
player\six = player\ppx+tb
player\siy = player\ppy+tby
Exit
ElseIf map2(player\ppx+tb,player\ppy) < 1 Then
player\six = player\ppx+tb
player\siy = player\ppy
Exit
EndIf
Else
no = 1
EndIf
EndIf

next
next



und

Code: [AUSKLAPPEN]

If nt1 = 0 Then
If map(player\ppx+tb,player\ppy) < 5 And map2(player\ppx+tb,player\ppy) < 1 And player\a = 0 Then
Else
nt1 = 1
EndIf
If map(player\ppx+tb,player\ppy-1) < 5 And map2(player\ppx+tb,player\ppy-1) < 1 And player\a = 0 And nt1 = 0 And map3(player\ppx+tb,player\ppy-1) < 1 Then
player\a = 1
player\move = 1
ElseIf map(player\ppx+tb,player\ppy+1) < 5 And map2(player\ppx+tb,player\ppy+1) < 1 And player\a = 0 And nt1 = 0 And map3(player\ppx+tb,player\ppy+1) < 1 Then
player\a = 1
player\move = 1
Else
nt11 = 1
EndIf
EndIf



Das mal 4 und ihr habt 2 Funktionen von 4. Halso muss man sich den Code ungefähr mal 16 vorstellen. Dann hat man aber erst die Funktionen zum Ausweichen vor Bomben und zum ausweichen vor Bomben die man selber gelegt hat. da fehtl auch noch das selber bewegen wenn mal keine Bombe im weg steht und wann man selbst eine Bombe legen sollte usw. . Nicht zu vergessen das zusammenspiel all dieser Funktionen mit Types usw.

Baschdi

BeitragSo, Nov 18, 2007 22:02
Antworten mit Zitat
Benutzer-Profile anzeigen
nicht schlecht nicht schlecht .... das hab ich mir auch mal überlegt! ABER wenn man eine wand hat gibt es zwei seiten an denen die unit entlang latschen kann ..wenn nur eine ans ziel führt und die andere nicht macht das wesen einen riesen umweg ..das nervt ein bisscehn ...

hier hab ich mal mein pathfinding ... bis etz is es sehr gut ... einziges prob:

1|2|3|4|5|6|7|8|
2|_|_|_|0|_|_|_|
3|_|Z|_|0|_|_|_|
4|_|_|_|0|0|0|_|
5|_|_|_|0|S|_|_|
6|_|_|_|0|0|0|_|
7|_|_|_|_|_|_|_|
8|_|_|_|_|_|_|_|

S = start
Z = ziel
o=hinderniss

s kann bei mir keinen weg finden, denn wenn es aus der sackgasse heraus geht dann ist der absolute weg zum ziel länger als zuvor ..drum macht das mein prog nicht ..... und wenn ich das weglasse mit dem absolutem weg dann wird der rest nicht mehr gut laufen.....

aber das krieg ich noch hin
HIER mein code ...ich bin stolz auf ihn:

drücke '1' um den weg zu sehen ....

Code: [AUSKLAPPEN]



Graphics 800,600,0,2
SetBuffer BackBuffer()

Global tile=32,weight=800,height=600   
Global xback,yback,mapX=16,mapY=16
Global mx,my,mxx,myy,NkX,NkY


Dim map(mapX,mapY)
   map(2,1)=1
   map(2,2)=1
   map(2,3)=1

; Pathfinding ............

Global cost#,numb=1
Dim knoten(mapX,mapY)

;.........................
     
Type unit
Field x,y,xx,yy,xZ,yZ
End Type

;DATA ....................
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

For y=0 To mapY
For x=0 To mapX
Read map(x,y)
Next
Next
;.........................

;Hauptschleife
NewUnit(8*tile,8*tile)
Repeat
Cls
   ;Map zeichnen
   For x=0 To mapX
   For y=0 To mapY
   If map(x,y)=1 Then Color 0,0,0
   If map(x,y)=0 Then Color 0,100,0
    Rect x*tile-xback,y*tile-yback,tile,tile,1
   Color 255,255,0
   Rect x*tile-xback,y*tile-yback,tile,tile,0
   Text x*tile-xback,y*tile-yback,""+Knoten(x,y)
   Next
   Next
   ;Map scrollen
   If KeyDown(200) And yback>0 Then:
      back=yback-4
    EndIf
    If KeyDown(208) And yback<mapY*tile-height Then:
      back=yback+4
   EndIf
   If KeyDown(205) And xback<mapX*tile-weight Then:
      back=xback+4
   EndIf
   If KeyDown(203) And xback>0 Then:
      back=xback-4
    EndIf
   ;Maus Koo
   x=MouseX()
   my=MouseY()
   mxx=mx/tile
   myy=my/tile
   ;Unit
   UpdateUnit()
     
     
     
Flip
Until KeyHit(1)
End

Function NewUnit(x,y)
   
   u.unit=New unit
   u\xx=x
   u\yy=y
   u\xZ=1*tile
   u\yZ=1*tile
   
End Function

Function UpdateUnit()
   
   For u.unit=Each unit
     
      u\x=u\xx-xback
      u\y=u\yy-yback
      Color 155,155,155
        Rect u\x,u\y,tile,tile,1


      Color 155,15,5
      Rect u\xZ-xback,u\yZ-yback,tile,tile,1 
      
      If KeyHit(2) Then pathfindingA(u\xx/tile,u\yy/tile,u\xZ/tile,u\yZ/tile)
      
   Next
   
End Function


Function pathfindingA(Sx,Sy,Zx,Zy)
   
   cost#=99999999
   
   If Sx=Zx And Sy=Zy Then Return
   
   ;.again   
   If map(Sx,Sy-1)=0 And cost#>(Sqr((Sx-Zx)^2+((Sy-1)-Zy)^2)) Then:
      cost#=(Sqr((Sx-Zx)^2+((Sy-1)-Zy)^2))
      NkX=Sx : NkY=Sy-1
   EndIf    
   If map(Sx+1,Sy)=0 And cost#>(Sqr(((Sx+1)-Zx)^2+(Sy-Zy)^2)) Then:
      cost#=(Sqr(((Sx+1)-Zx)^2+(Sy-Zy)^2))
      NkX=Sx+1 : NkY=Sy
   EndIf    
   If map(Sx,Sy+1)=0 And cost#>(Sqr((Sx-Zx)^2+((Sy+1)-Zy)^2)) Then:
      cost#=(Sqr((Sx-Zx)^2+((Sy+1)-Zy)^2))
      NkX=Sx : NkY=Sy+1
   EndIf    
   If map(Sx-1,Sy)=0 And cost#>(Sqr(((Sx-1)-Zx)^2+(Sy-Zy)^2)) Then:
      cost#=(Sqr(((Sx-1)-Zx)^2+(Sy-Zy)^2))
      NkX=Sx-1 : NkY=Sy
   EndIf                
   
   knoten(NkX,NkY)=numb : numb=numb+1 : pathfindingB(NkX,NkY,Zx,Zy)

   
End Function


Function pathfindingB(Sx,Sy,Zx,Zy)

   cost#=99999999
   
   .again
      
   If Sx=Zx And Sy=Zy Then Return
   
   If map(Sx,Sy-1)=0 And cost#>(Sqr((Sx-Zx)^2+((Sy-1)-Zy)^2)) Then:
      cost#=(Sqr((Sx-Zx)^2+((Sy-1)-Zy)^2))
      NkX=Sx : NkY=Sy-1
   EndIf    
   If map(Sx+1,Sy)=0 And cost#>(Sqr(((Sx+1)-Zx)^2+(Sy-Zy)^2)) Then:
      cost#=(Sqr(((Sx+1)-Zx)^2+(Sy-Zy)^2))
      NkX=Sx+1 : NkY=Sy
   EndIf    
   If map(Sx,Sy+1)=0 And cost#>(Sqr((Sx-Zx)^2+((Sy+1)-Zy)^2)) Then:
      cost#=(Sqr((Sx-Zx)^2+((Sy+1)-Zy)^2))
      NkX=Sx : NkY=Sy+1
   EndIf    
   If map(Sx-1,Sy)=0 And cost#>(Sqr(((Sx-1)-Zx)^2+(Sy-Zy)^2)) Then:
      cost#=(Sqr(((Sx-1)-Zx)^2+(Sy-Zy)^2))
      NkX=Sx-1 : NkY=Sy
   EndIf
   
   knoten(NkX,NkY)=numb : numb=numb+1 : Sx=NkX : Sy=NkY : Goto again                  
   
End Function
The_Baschdi@
Wer in Ogame is soll sofort zum Orden wechseln (D.O.) --- Alle Macht dem Orden
 

HyDr0x

BeitragSo, Nov 18, 2007 22:10
Antworten mit Zitat
Benutzer-Profile anzeigen
dabei hilft einem eben ein ordentlicher Pathfinding Algorithmus. Stelle dir das jetzt mal mit dem Code vor den ich damals gemacht hatte. Da wird einem von der reinen Überlegung schon ganz übel. So ein billigpathfinding ist für freies Feld ganz gut aber sowie es etwas schwieriger wird ist echtes pathfinding eben unverzichtbar.

EDIT Zu bewundern ist meine erste Pathfinding KI in meinem Projekt "Explosive Guy" im Projektethread *Schleichwerbungmach* Very Happy
  • Zuletzt bearbeitet von HyDr0x am So, Nov 18, 2007 22:16, insgesamt einmal bearbeitet

Baschdi

BeitragSo, Nov 18, 2007 22:15
Antworten mit Zitat
Benutzer-Profile anzeigen
drum will ichs eben lernen ...
aber das kann dauern ..bis man alles verstanden hat ..vor erst reicht mir anweden können... Razz

mfg
The_Baschdi@
Wer in Ogame is soll sofort zum Orden wechseln (D.O.) --- Alle Macht dem Orden

Silver_Knee

BeitragSo, Nov 18, 2007 22:17
Antworten mit Zitat
Benutzer-Profile anzeigen
hey man muss aber auch sagen dass es richtig gute spiele gibt die manchmal nen hänger haben: Age of Empires zb.... da muss man manchmal den personen alle 2 seknden einen neuen zielort geben dass die sich net dorch ne waltschnise quetschen wollen oder doof in der gegend stehen.. manchmal muss man auch auf performance achten..... und @Baschdi: sag doch deinem objekt dass wenn es keinen zielweg finden teinfach rückwärts laufen soll sodass es irgendwann das ziel in reichweite erkennt

Baschdi

BeitragSo, Nov 18, 2007 22:20
Antworten mit Zitat
Benutzer-Profile anzeigen
du meinst blind suchen bis die schleife wieder übernimmt??...das kling simpel und könnte klappen

...starcraft hat auch hinundwieder fehler ... die units bewegen sich nimmer ..du musste erst in die gegenrichtung klicken damit se wieder laufen ..ob das mit pathfinding was zu tun hat weiß ich ent ..aber ich glaub der fehler is mittlerweile behoben
The_Baschdi@
Wer in Ogame is soll sofort zum Orden wechseln (D.O.) --- Alle Macht dem Orden
 

HyDr0x

BeitragSo, Nov 18, 2007 22:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Silver_Knee hat Folgendes geschrieben:
@Baschdi: sag doch deinem objekt dass wenn es keinen zielweg finden teinfach rückwärts laufen soll sodass es irgendwann das ziel in reichweite erkennt


Das habe ich auch schonmal versucht gehabt (mit den Sackgassen), funtzte aber nicht so richtig und war viel zu kompliziert. Denn: Wenn du das Objekt rückwerts laufen lässt bis es die Ausgangsposition erreicht und dann die Schleife übernehmen lässt, wird es wieder zurücklaufen. Um das zu verhindern musst du also wieder eine Sperrvariable einfügen, und zwar für alle 4 Richtungen. Das Problem das ich damals bei meinem Projekt hatte war aber diese Sperrvariablen wieder zu entsperren ...
Aber ein guter pathfinding Algo löst auch diese problem ganz einfach.

EDIT An fehlerhaften Spielen soll man sich kein Beispiel nehmen. Ich habe mir es zur Aufgabe gemacht in meinen Spielen alle Bugs zu jagen und zu vernichten und nur dann wenn sie wirklich fehlerfrei sind auf die Öffentlichkeit loszulassen. Ich hasse es nämlich wenn Spiele Fehler haben und man dafür auch noch bezahlen muss. Das war wohl auch ein Grund warum ich angefangen hab zu proggen. Ich wollt es einfach besser machen als die anderen. Hab ja schon vor langer Zeit angefangen mit Spielen, da entwickelt man irgendwann Ansprüche und gewinnt an Erfahrung. Nichts nervt mich mehr als fehlerhafte games. Außerdem gab es schon viele Spiele wo ich dachte: "Mensch, warum haben die das nich so und so gemacht , wär doch viel besser." Jetzt hab ich endlich die Möglichkeit das zu tun was mir gefällt und ich finds großartig Very Happy. Embarassed Ich ufere schon wieder viel zu weit aus Very Happy

Baschdi

BeitragSo, Nov 18, 2007 22:43
Antworten mit Zitat
Benutzer-Profile anzeigen
lol es gibt nix schöneres als bugs jagen und ve4rnichten und dabei bleibt der alte code fast unverletzt...das amcht bock ....
The_Baschdi@
Wer in Ogame is soll sofort zum Orden wechseln (D.O.) --- Alle Macht dem Orden
 

HyDr0x

BeitragSo, Nov 18, 2007 22:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Jop, vor allem wenn dein alter code auch noch Spaß macht Very Happy, ich zock gerade die ganze zeit mein Explosive Guy getauftes game und finde es immer besser Mr. Green

EDITautsch off topic ... naja du kannst es dir ja mal anguggen als Beispiel wie man son pathfinding benutzen kann (viell. ist mein post dann nimma so ganz off topic ^^)

Baschdi

BeitragSo, Nov 18, 2007 23:00
Antworten mit Zitat
Benutzer-Profile anzeigen
ja zeig mir das game ma .....(:
The_Baschdi@
Wer in Ogame is soll sofort zum Orden wechseln (D.O.) --- Alle Macht dem Orden

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group