RPG mit Maus?
Übersicht

black_threatBetreff: RPG mit Maus? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
erkläre mal genau wie du das mit dem laufen vorhast .... | ||
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich denke sowas wie in der art diablo oder? | ||
Asus F53z
Das Leben ist eine reine Konkatenation... |
black_threat |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also wenn man mit der maus auf eine bestimmte stelle klickt das sich der charakter dort hin bewegt.
ja so wie bei diablo |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mit tiles wird das wohl am einfachsten. Auf Blitzbase gibts eine Pathfindingroutine, die sollte genau das sei was Du suchst ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
DivineDominion |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ob du Tiles benutzt oder nicht, das ist dem Player ziemlich egal ![]() 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 ![]() |
||
christian.tietze@gmail.com - https://christiantietze.de
macOS |
![]() |
KabelbinderSieger des WM-Contest 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ziehe dir mal den mapeditor von TS runter, dort ist ein BSP bei, mit Pathfinding! | ||
between angels and insects |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja klick auf meine signatur... | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
black_threat |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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? |
||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hubsi hat Folgendes geschrieben: Mit tiles wird das wohl am einfachsten. Auf Blitzbase gibts eine Pathfindingroutine, die sollte genau das sei was Du suchst
![]() hab keine ahnung was du meinst kannst du einen genauen link oder eine andere hilfe geben. bitte bin fast noch Anfänger ![]() |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok, hab mir mal das ganze angschaut, aber find mich nicht wirklich zurecht ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
www.mapeditor.de.vu | ||
between angels and insects |
black_threat |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jan_ hat Folgendes geschrieben: www.mapeditor.de.vu
irgendwie find ich das da nicht ![]() |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
http://www.blitzbase.de/_mapeditor/mapeditor.zip | ||
between angels and insects |
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
http://www.blitzbase.de/_mapeditor/mapeditor.zip | ||
between angels and insects |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group