Ordentlich NPC´s
Übersicht

![]() |
SuratBetreff: Ordentlich NPC´s |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi! Ich habe jetzt haufenweise rpg-tuts studiert und jetzt mit
verschiedenen Layern angefangen. Jeder NPC bei mir hat nen unterschiedlichen Layer. Also: Layer1=Bodentiles Layer2=NPC Layer3=NPC etc. Layer18=Kollisionslayer Jetzt habe ich leider keine Ahnung wie ich die NPCs bewegen soll. Sie haben ja feste Werte beim Einlesen der Map. Kann mir jemand helfen? Danke im Vorraus mfg surat |
||
"DER GRÖßTE FEIND IST IN DEN EIGENEN REIHEN" (Trygonia-Xen's Quest)
AZUON-Beyond the dark life (2%) SOULS OF DESTINY (23%) |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Edit: Ich glaub ich hab das missverstanden ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Surat |
![]() Antworten mit Zitat ![]() |
---|---|---|
@hubsi danke für die antwort, aber das meine ich nicht ![]() tut mir leid, ich habe vergessen, dass es sich um ein rpg in 2d handelt |
||
"DER GRÖßTE FEIND IST IN DEN EIGENEN REIHEN" (Trygonia-Xen's Quest)
AZUON-Beyond the dark life (2%) SOULS OF DESTINY (23%) |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
du solltest sie nicht fest einlesen, sondern in types speichern, siehe dazu vllt das Jump n run tutorial auf www.robsite.de
dann kannst du sie jeden hauptschleifendurchlauf alle abfragen(mit for each) und bewegen, und sie dann auf dem bildschirm ausgeben |
||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
![]() |
Surat |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok, danke, dann versuche ich es mit types
aber wie mache ich das dann mit der Kollision? Über den Kolli-Layer geht es ja dann nicht mehr... |
||
"DER GRÖßTE FEIND IST IN DEN EIGENEN REIHEN" (Trygonia-Xen's Quest)
AZUON-Beyond the dark life (2%) SOULS OF DESTINY (23%) |
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
du legst einfach ein array an und freust dich, dass du mit dem die kollision pprüfen kannst ?! | ||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
Surat |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja, hab ich dir schon bei icq gesagt! | ||
"DER GRÖßTE FEIND IST IN DEN EIGENEN REIHEN" (Trygonia-Xen's Quest)
AZUON-Beyond the dark life (2%) SOULS OF DESTINY (23%) |
Omenaton_2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mir erscheint der Plan jeden NPC auf einen eigenen Layer zu legen unnötig und gar schlecht. Warum willst du für jeden NPC einen eigenen Layer haben ?
Layer 1 - Boden Tiles (Wiese, Wüste, Wasser, etc.) Layer 2 - Boden Objekt Tiles (Bäume, Felsen, etc.) Layer 3 - Figuren (NPCs und Spieler Figuren) Eventuell noch ein Layer 4 für schwebende Tiles wie Wolkengebilden oder Luftschiffe. Wozu einen eigenen Layer für Kollision ? NPCs können bestimmte Felder (Wasser, Wald) nicht betreten. NPCs können ein an sonsten begehbare Feld nicht betreten, wenn auf dem Feld (Koordinaten) bereits ein anderer NPC steht. Das ist Kollision. Einfach die Koordinaten von alles beweglichen und die Boden Werte checken. Der Hauptgrund zum Einsetzen von verschiedenen Layers ist meiner Meinung nach um die Verdeckungen von Objekten gut hinbekommen zu können und weil bestimmte Objekte in einem Durchgang gezeichnet werden sollen. Erst die unterste Ebene, dann was drauf steht. Dann was darüber liegt. |
||
![]() |
Surat |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, genau so habe ich mir die Kollision mit einem NPC auch vorgestellt.
Nur leider funktioniert sie nicht! Function Testmap() TILESIZE=32 move_pyro=1 ; pyroX=8 ; Koordianten des NPCs pyroY=3 Repeat Cls Leertaste=KeyHit(57) Statustaste=KeyHit(28) For y26=0 To 14 For x26=0 To 19 DrawImage tileset3,x26*TILESIZE,y26*TILESIZE,map26(x26,y26,0) Next Next For y26=0 To 14 For x26=0 To 19 DrawImage char3,x26*TILESIZE,y26*TILESIZE,map26(x26,y26,1) Next Next KollisionOben=map26(sx,sy-1,2) KollisionRechts=map26(sx+1,sy,2) KollisionUnten=map26(sx,sy+1,2) KollisionLinks=map26(sx-1,sy,2) If KeyDown(200) And (sx<>pyroX) And (sy+1<>pyroY) Then ; Das funzt net =( If KollisionOben=False sy=sy-1 move=1 richtung=2 EndIf EndIf If KeyDown(205) And (sx+1<>pyroX) And (sy<>pyroY) Then If KollisionRechts=False sx=sx+1 move=1 richtung=4 EndIf EndIf If KeyDown(208) And (sx<>pyroX) And (sy-1<>pyroY) Then If KollisionUnten=False sy=sy+1 move=1 richtung=1 EndIf EndIf If KeyDown(203) And (sx-1<>pyroX) And (sy<>pyroY) Then If KollisionLinks=False sx=sx-1 move=1 richtung=3 EndIf EndIf If sy>13 Then sy=6 sx=17 TestMap2() EndIf If move = 1 Then x26 = sx * 32: y26 = sy * 32 Select richtung Case 1 DrawImage spieler_vorne,x26,y26 Case 2 DrawImage spieler_hinten,x26,y26 Case 3 DrawImage spieler_links,x26,y26 Case 4 DrawImage spieler_rechts,x26,y26 End Select If move_pyro=1 Then x26 = pyroX * 32 : y26 = pyroY * 32 DrawImage pyro,x26,y26,pyro_frame If Statustaste Then Status() WaitTimer takt Flip Until KeyHit(1) |
||
"DER GRÖßTE FEIND IST IN DEN EIGENEN REIHEN" (Trygonia-Xen's Quest)
AZUON-Beyond the dark life (2%) SOULS OF DESTINY (23%) |
![]() |
Surat |
![]() Antworten mit Zitat ![]() |
---|---|---|
sorry wegen dem Doppelpost,
aber weiss wirklich keiner was ich bei der Kollision falsch gemacht habe? ![]() |
||
"DER GRÖßTE FEIND IST IN DEN EIGENEN REIHEN" (Trygonia-Xen's Quest)
AZUON-Beyond the dark life (2%) SOULS OF DESTINY (23%) |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group