Objekt kollision die 1000000ste
Übersicht

![]() |
mas93Betreff: Objekt kollision die 1000000ste |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sry,aber ich progg gerade eine art RPG und will wissen wie ich eine Kollision zwischen player und einem Bild mache,also das der player dann vor dem Bild stehnbleibt,z.b:
Code: [AUSKLAPPEN] If images collide(player,x,y,0,objekt,234,611,0)then bleibt player vor objekt stehen. genau das hab oich noch nie kapiert wie ich das machen soll. Und wie mach ich das am besten mit er kollision. muss ich die kollision dann mit jedem Bild einzeln machen??? Das wären dann ja 60prozent des codes wenn ich das für jedes bild berechnen würde... Wie macht ihr das???? mfg marius |
||
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau] |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
also, am Besten, du speicherst immer vorher Oldx und oldy, sollte die neue koordinate kollidieren, gehst du zurück auf oldx
dann am besten noch schaun, ob er sich wenigstens in eine Richtung bewegen kann |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn sich die Objekte in einem 2D-Map-Array befinden, so muß nicht jedes einzelne auf kollision geprüft werden. Es reicht nur die vier oder neun mögliche zu prüfen, in welchen sich der spieler zu einer Zeit befinden kann. | ||
![]() |
mas93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
k Wie speichere ich die alte possition????
wenn ich alteposx=x mache ist des ja immer die gleiche wie mache ich das wenn es kollidiert das es dann nichmehr die eigene is??? |
||
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau] |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
altx=x
If keyDown(123) Then x=x+1 If Imagescollide(1,2,3,4,5...) Then x=altx DrawImage Bild,x,... edit1 Nach einer Kollisions wird die Spielfigur zurück zur Position versetzt, wo es noch keine Kollision hatte. Dadurch kann es nicht durch Objekte laufen... |
||
- Zuletzt bearbeitet von hectic am Mo, Dez 18, 2006 18:40, insgesamt 2-mal bearbeitet
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] oldx=x
oldy=y x=x+xmove y=y+ymove kolcheck() so! ![]() |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
DerHase |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dadurch kann es aber passieren, das eine Lücke zwischen Wand und Figur entsteht. Bei rechteckigen Hindernissen, kann man das leicht lösen, man setzt die Figur einfach an den Rand des Rechteckes, da man seine Größe und Position kennt, ohne die könnte man ja gar nicht die Kollision prüfen. Bei unförmigen Objekten muss man die Figur solange in die Richtung der alten Position schieben, bis keine Kollision mehr statt findet. Ich hab dies >>>HIER<<< mal vorbereitet. | ||
Play Satyr! |
![]() |
mas93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab jetzt ne ganz andere viel einfachere methode genommen:
Code: [AUSKLAPPEN] ;--------------------------------------------------------------------------------------- ;--------------------------------------kollisionen-------------------------------------- ;--------------------------------------------------------------------------------------- ;------------------------------------------------------------------------------------- ;-----------------------------waffenbudeaussen/kollisionen---------------------------- ;------------------------------------------------------------------------------------- ;gilt für alle anims auf einmal^^ ;oben If KeyDown(200) Then richtung=3 : y#=y#-0.50 If ImagesCollide(linksanim,x,y,spieler_frames,waffenbudeaussen,0,0,0) Then y=y+1 EndIf ;unten If KeyDown(208) Then richtung=4 : y#=y#+0.50 If ImagesCollide(linksanim,x,y,spieler_frames,waffenbudeaussen,0,0,0) Then y=y-1 EndIf ;links If KeyDown(203) Then richtung=1 : x#=x#-0.50 If ImagesCollide(linksanim,x,y,spieler_frames,waffenbudeaussen,0,0,0) Then x=x+1 EndIf ;rechts If KeyDown(205) Then richtung=2 : x#=x#+0.50 If ImagesCollide(linksanim,x,y,spieler_frames,waffenbudeaussen,0,0,0) Then x=x-1 EndIf ;---------------------------------------------------------------------------------------- ;---------------------------!ENDE!-waffenbudenkollisionen-!ENDE!------------------------- ;---------------------------------------------------------------------------------------- soweit funktioniert alles. wenn ich aber darunter einfach ohne einen einzigen befehl das schreibe dann... Code: [AUSKLAPPEN] ;--------------------------------------Wanduntenkollision-------------------------------- ;---------------------------------------------------------------------------------------- ;oben If KeyDown(200) Then richtung=3 : y#=y#-0.50 If ImagesCollide(linksanim,x,y,spieler_frames,wandunten,0,238,0) Then y=y+1 EndIf ;unten If KeyDown(208) Then richtung=4 : y#=y#+0.50 If ImagesCollide(linksanim,x,y,spieler_frames,wandunten,0,238,0) Then y=y-1 EndIf ;links If KeyDown(203) Then richtung=1 : x#=x#-0.50 If ImagesCollide(linksanim,x,y,spieler_frames,wandunten,0,238,0) Then x=x+1 EndIf ;rechts If KeyDown(205) Then richtung=2 : x#=x#+0.50 If ImagesCollide(linksanim,x,y,spieler_frames,wandunten,0,238,0) Then x=x-1 EndIf ;---------------------------------------------------------------------------------------- ;-----------------------------!ENDE!-wanduntenkollision-!ENDE!--------------------------- ;---------------------------------------------------------------------------------------- geht keine kollision von beiden mehr,der spieler bewegt sich nur noch langsamer über das bild mit dem er kollidioert. Wisst ihr warum??? mfg marius |
||
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau] |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group