Ordentlich NPC´s

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Surat

Betreff: Ordentlich NPC´s

BeitragMo, Feb 06, 2006 16:50
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Feb 06, 2006 17:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Edit: Ich glaub ich hab das missverstanden Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Surat

BeitragMo, Feb 06, 2006 17:08
Antworten mit Zitat
Benutzer-Profile anzeigen
@hubsi danke für die antwort, aber das meine ich nicht Wink

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

BeitragMo, Feb 06, 2006 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Feb 08, 2006 13:21
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Feb 08, 2006 20:26
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDo, Feb 09, 2006 1:22
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDo, Feb 09, 2006 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragFr, Feb 10, 2006 13:45
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragFr, Feb 10, 2006 16:25
Antworten mit Zitat
Benutzer-Profile anzeigen
sorry wegen dem Doppelpost,
aber weiss wirklich keiner was ich bei der Kollision
falsch gemacht habe? Laughing
"DER GRÖßTE FEIND IST IN DEN EIGENEN REIHEN" (Trygonia-Xen's Quest)

AZUON-Beyond the dark life (2%)
SOULS OF DESTINY (23%)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group