RPG mit Maus?

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

black_threat

Betreff: RPG mit Maus?

BeitragSo, Jun 27, 2004 9:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Hy
Ich möchte ein rpg coden wo man mit der maus steuern kann wo man hingeht, ich möchte das der charakter auf einer richtigen landschaft geht. Soll ich sowas mit tiles oder anders machen?
ich hoffe ihr könnt mir helfen

black_threat
 

cyby

BeitragSo, Jun 27, 2004 10:12
Antworten mit Zitat
Benutzer-Profile anzeigen
erkläre mal genau wie du das mit dem laufen vorhast ....

rambo256

BeitragSo, Jun 27, 2004 10:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke sowas wie in der art diablo oder?
Asus F53z

Das Leben ist eine reine Konkatenation...
 

black_threat

BeitragSo, Jun 27, 2004 10:58
Antworten mit Zitat
Benutzer-Profile anzeigen
also wenn man mit der maus auf eine bestimmte stelle klickt das sich der charakter dort hin bewegt.
ja so wie bei diablo

Hubsi

BeitragSo, Jun 27, 2004 11:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit tiles wird das wohl am einfachsten. Auf Blitzbase gibts eine Pathfindingroutine, die sollte genau das sei was Du suchst Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

DivineDominion

BeitragSo, Jun 27, 2004 12:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ob du Tiles benutzt oder nicht, das ist dem Player ziemlich egal Wink
Allerdings ist es wichtig, dass du "irgendwie" deine Kollision abspeicherst, weil Pathfinding sonst gar nicht erst funktioniert. Müsste an dir liegen, wie du die Kollision mit ins Pathfinding (A* Algorithmus oder so müsste fix gehen) machen willst.
Tiles sind aber generell immer zu empfehlen Wink
christian.tietze@gmail.com - https://christiantietze.de
macOS

Kabelbinder

Sieger des WM-Contest 2006

BeitragSo, Jun 27, 2004 14:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke, da sich der Punkt, zu dem der Held gehen soll innerhalb des Bildschirms befindet (und nicht auf einer großen Karte wie bei Strategiespielen), wird das kein Problem sein, dass der Charakter den richtigen Weg findet. Gerade deshalb würde ich Tiles nehmen.

Vielleicht so:
-Überprüfen, welche Tiles innerhalb der Bilschirmgrenzen passierbar sind und welche nicht.
-Überprüfen, ob die im erkundeten bwz. erlaubten Gebiet des Helden liegen.
-Die dann vom Helden bis zum Zielort in ne logische Reihenfolge bringen.
-Und sollte irgendein Fehlerauftreten, bricht man die Aktion ab. Wenn alles Glatt geht müsstest du den Pfad dann haben.

Ist jetzt alles nur Theorie
<Wing Avenger Download> ◊◊◊ <Macrophage Download>

Jan_

Ehemaliger Admin

BeitragSo, Jun 27, 2004 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
ziehe dir mal den mapeditor von TS runter, dort ist ein BSP bei, mit Pathfinding!
between angels and insects

TheShadow

Moderator

BeitragSo, Jun 27, 2004 15:04
Antworten mit Zitat
Benutzer-Profile anzeigen
ja klick auf meine signatur...
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

black_threat

BeitragSo, Jun 27, 2004 17:35
Antworten mit Zitat
Benutzer-Profile anzeigen
TheShadow hat Folgendes geschrieben:
ja klick auf meine signatur...


hab mir mal den map editor gedownloaden, wie kann man dort die erstellten maps in die bb datei einfügen?

TheShadow

Moderator

BeitragSo, Jun 27, 2004 18:05
Antworten mit Zitat
Benutzer-Profile anzeigen
suche im ordner "sources" nach den quellcodes - mit denen kannst du karte laden und darstellen... im ordner "samples" findest du beispielmaps und codes (mapengine-ordner muss dann aus source zu jeweiligen beispielordner kopiert werden - bei bb2d/3d muss man evtl. die letzten zahle auskommentieren wo es nicht startet - ist recht leicht)
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

black_threat

BeitragMo, Jun 28, 2004 15:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Hubsi hat Folgendes geschrieben:
Mit tiles wird das wohl am einfachsten. Auf Blitzbase gibts eine Pathfindingroutine, die sollte genau das sei was Du suchst Wink


hab keine ahnung was du meinst kannst du einen genauen link oder eine andere hilfe geben. bitte bin fast noch Anfänger Embarassed

Hubsi

BeitragMo, Jun 28, 2004 17:25
Antworten mit Zitat
Benutzer-Profile anzeigen
http://www.blitzbase.de - Deutsche BlitzBasic-Seite
http://www.blitzbase.de/quellcode/pathfinding.zip - Das Programm incl. der verschiedenen Suchroutinen. Habs selbst noch nicht benutzt, soweit ich aber weiß bekommt man in einer Type-Kollektion die einzelnen Wegpunkte zurück die die Spielfigur ansteuern muß. Ist ein Punkt erreicht würde ich den löschen und den nächsten anvisieren usw.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

black_threat

BeitragMi, Jun 30, 2004 19:36
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, hab mir mal das ganze angschaut, aber find mich nicht wirklich zurecht Confused
Da sind mehre Varianten, was ist den da das beste? poste mal den code:

Code: [AUSKLAPPEN]
Type node
  Field parent.node
  Field cost
  Field x
  Field y
End Type

Type open
  Field node.node
End Type

Type path
  Field node.node
End Type

Dim map(0,0)
Dim sqrmap(0,0)
Dim nodemap(0,0)
Dim dirx(7)
Dim diry(7)
Dim dirz(7)

For i=0 To 7
  Read dirx(i)
  Read diry(i)
  Read dirz(i)
Next

Global mapwidth
Global mapheight





;---------------------------------------------------------------------
Function createmap(width,height)
  mapwidth=width-1
  mapheight=height-1
  Dim map(width-1,height-1)
  Dim sqrmap(width-1,height-1)
  For y=0 To mapheight
    For x=0 To mapwidth
      sqrmap(x,y)=Sqr(x*x+y*y)
    Next
  Next
End Function





;---------------------------------------------------------------------
;A*Pathfinding 4
;---------------------------------------------------------------------
Function pathfinding0(startx,starty,endx,endy)
  Delete Each node
  Delete Each open
  Delete Each path
  Dim nodemap(mapwidth,mapheight)
  If startx=endx And starty=endy Then Return

  node.node=New node
  node\x=startx
  node\y=starty
  open.open=New open
  open\node=node
  nodemap(startx,starty)=1

  .again0
  node=Null
  cost=2147483647
  For open=Each open
    delta=Abs(open\node\x-endx)+Abs(open\node\y-endy)
    If open\node\cost+delta<cost Then
      cost=open\node\cost+delta
      node=open\node
      tempopen.open=open
    EndIf
  Next
  If node=Null Then Return
  Delete tempopen

  For i=0 To 3
    x=node\x+dirx(i)
    y=node\y+diry(i)
    If x=>0 And y=>0 And x<=mapwidth And y<=mapheight Then
      If map(x,y)=0 And nodemap(x,y)=0 Then
        tempnode.node=New node
        tempnode\parent=node
        tempnode\cost=node\cost+1
        tempnode\x=x
        tempnode\y=y
        open.open=New open
        open\node=tempnode
        nodemap(x,y)=1
        If x=endx And y=endy Then finish=1:Exit
      EndIf
    EndIf
  Next
  If finish=0 Then Goto again0

  While tempnode\parent<>Null
    path.path=New path
    path\node=tempnode
    tempnode=tempnode\parent
  Wend
  path.path=New path
  path\node=tempnode
End Function





;---------------------------------------------------------------------
;A*Pathfinding 8
;---------------------------------------------------------------------
Function pathfinding1(startx,starty,endx,endy)
  Delete Each node
  Delete Each open
  Delete Each path
  Dim nodemap(mapwidth,mapheight)
  If startx=endx And starty=endy Then Return

  node.node=New node
  node\x=startx
  node\y=starty
  open.open=New open
  open\node=node
  nodemap(startx,starty)=1

  .again1
  node=Null
  cost=2147483647
  For open=Each open
    delta=Abs(open\node\x-endx)+Abs(open\node\y-endy)
    If open\node\cost+delta<cost Then
      cost=open\node\cost+delta
      node=open\node
      tempopen.open=open
    EndIf
  Next
  If node=Null Then Return
  Delete tempopen

  For i=0 To 7
    x=node\x+dirx(i)
    y=node\y+diry(i)
    If x=>0 And y=>0 And x<=mapwidth And y<=mapheight Then
      If map(x,y)=0 And nodemap(x,y)=0 Then
        If dirz(i)=1 Then
          If map(x,node\y)=1 And map(node\x,y)=1 Then Goto jump1
        EndIf
        tempnode.node=New node
        tempnode\parent=node
        tempnode\cost=node\cost+1
        tempnode\x=x
        tempnode\y=y
        open.open=New open
        open\node=tempnode
        nodemap(x,y)=1
        If x=endx And y=endy Then finish=1:Exit
        .jump1
      EndIf
    EndIf
  Next
  If finish=0 Then Goto again1

  While tempnode\parent<>Null
    path.path=New path
    path\node=tempnode
    tempnode=tempnode\parent
  Wend
  path.path=New path
  path\node=tempnode
End Function





;---------------------------------------------------------------------
;A*Pathfinding 8+
;---------------------------------------------------------------------
Function pathfinding2(startx,starty,endx,endy)
  Delete Each node
  Delete Each open
  Delete Each path
  Dim nodemap(mapwidth,mapheight)
  If startx=endx And starty=endy Then Return

  node.node=New node
  node\x=startx
  node\y=starty
  open.open=New open
  open\node=node
  nodemap(startx,starty)=1

  .again2
  node=Null
  cost=2147483647
  For open=Each open
    delta=sqrmap(Abs(open\node\x-endx),Abs(open\node\y-endy))
    If open\node\cost+delta<cost Then
      cost=open\node\cost+delta
      node=open\node
      tempopen.open=open
    EndIf
  Next
  If node=Null Then Return
  Delete tempopen

  For i=0 To 7
    x=node\x+dirx(i)
    y=node\y+diry(i)
    If x=>0 And y=>0 And x<=mapwidth And y<=mapheight Then
      If map(x,y)=0 And nodemap(x,y)=0 Then
        If dirz(i)=1 Then
          If map(x,node\y)=1 And map(node\x,y)=1 Then Goto jump2
        EndIf
        tempnode.node=New node
        tempnode\parent=node
        tempnode\cost=node\cost+1+dirz(i)
        tempnode\x=x
        tempnode\y=y
        open.open=New open
        open\node=tempnode
        nodemap(x,y)=1
        If x=endx And y=endy Then finish=1:Exit
        .jump2
      EndIf
    EndIf
  Next
  If finish=0 Then Goto again2

  While tempnode\parent<>Null
    path.path=New path
    path\node=tempnode
    tempnode=tempnode\parent
  Wend
  path.path=New path
  path\node=tempnode
End Function





;---------------------------------------------------------------------
Data 0,-1,0,  -1,0,0,  1,0,0,  0,1,0,  -1,-1,1,  1,-1,1,  -1,1,1,  1,1,1


ok kann mir jetzt jemand sagen wie ich machen kann das man damit einen charakter bewegen kann? findet ihr das es zu schwierig und komplieziert für eine anfänger ist? Naja ich hoffe ihr könnt mir helfen

black_threat

Jan_

Ehemaliger Admin

BeitragDo, Jul 01, 2004 6:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, es ist zu kompliziert für dich!

4 = 4 Richtungen
8 = 8 Richtungen
8+ = mehr als 8 Richtungen

da gibt es ein BSP, bei dem Mpeditor, von TS das dir Zeigt, wie man dannach läuft!
-verdammte sch...

Du lässt das Ding einfach durchrechnen und dann fragste den Weg ab!
between angels and insects
 

black_threat

BeitragDo, Jul 01, 2004 14:22
Antworten mit Zitat
Benutzer-Profile anzeigen
TheShadow hat Folgendes geschrieben:
suche im ordner "sources" nach den quellcodes - mit denen kannst du karte laden und darstellen... im ordner "samples" findest du beispielmaps und codes (mapengine-ordner muss dann aus source zu jeweiligen beispielordner kopiert werden - bei bb2d/3d muss man evtl. die letzten zahle auskommentieren wo es nicht startet - ist recht leicht)


wo kann ich die mapengine downloaden? oder wo grieg ich die her?
oder hab ich da irgendwas nicht gecheckt?

Jan_

Ehemaliger Admin

BeitragDo, Jul 01, 2004 14:25
Antworten mit Zitat
Benutzer-Profile anzeigen
www.mapeditor.de.vu
between angels and insects
 

black_threat

BeitragDo, Jul 01, 2004 14:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Jan_ hat Folgendes geschrieben:
www.mapeditor.de.vu


irgendwie find ich das da nicht Confused

Jan_

Ehemaliger Admin

BeitragDo, Jul 01, 2004 14:29
Antworten mit Zitat
Benutzer-Profile anzeigen
http://www.blitzbase.de/_mapeditor/mapeditor.zip
between angels and insects

Jan_

Ehemaliger Admin

BeitragDo, Jul 01, 2004 14:29
Antworten mit Zitat
Benutzer-Profile anzeigen
http://www.blitzbase.de/_mapeditor/mapeditor.zip
between angels and insects

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group