Kollision auf Tilemap bei Jump'n'Run und 2. Prob
Übersicht

![]() |
The_NiciBetreff: Kollision auf Tilemap bei Jump'n'Run und 2. Prob |
![]() Antworten mit Zitat ![]() |
---|---|---|
Abend allerseits,
Momentan prügle ich mich mit Kollisionen auf einer Tilemap rum. Die vom Jumpnruntut will ich nicht abschauen, weil sie grottig ist und ich selber programmieren will. ![]() Ich dachte, ich geh mal eine For->Next schleife mit Y und X durch, und dann frag ich, ob der player mit dem Tile kollidierte. Lustig, nur, was dann? ich muss wissen von welcher Seite er hinein Kollidierte, um dann ihn wieder zurückzusetzen, sonst kann er Wände hoch klettern. Ahja, ich benutze 16er Tiles. Zweites Problem: Wenn beide Spieler CTRL drücken (Links, Rechts), schiesst nur einer. Frage: Warum? An mehr als 3 Tasten kanns nicht liegen. Gehen und Fliegen geht wunderbar. Hab schon versucht, einfach zwei Dim's für Laser zu machen, nützte nichts. Muss also an den Tasten liegen. Kann man das beheben oder bin ich geleckt? |
||
Beatenvoy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi The_Nici
Also mit den Collisonen in bestimmte richtungen trickse ich immer ein wenig! Ich nehme immer 4 Bilder(Blaken) die ich an dem Spieler so anordner das oben, unten , links und rechts eins ist. Mit diesen kannst du dann die Collisionsabfrage machen! Den spieler zeichne ich auch nicht in der For-Next-Schleife, sondern unterhalb der schleife...ist aber je nach situation verschieden ! hoffe das hilft dir ein wenig ... Grüße |
||
![]() |
DerHase |
![]() Antworten mit Zitat ![]() |
---|---|---|
Man braucht keine vier Balken Bilder weil man ja auch ImageRectCollide oder ImageRectOverlap nehmen kann. | ||
Play Satyr! |
MaddeGast |
![]() Antworten mit Zitat |
|
---|---|---|
Zum Zweiten Prob: Ohne weitere Informationen (und/oder Codestücken) wie du die Schüsse erstellst und verwaltest ist es von anderen schwer zu lösen. | ||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe selbst eine Tastatur die bei beiden Strg-Tasten nur eine zurückgibt. Das liegt an der Technik die hinter den Tastaturen steckt. Es gab hier mal einen Link zu einem wunderbaren pdf das aufzeigt wie Tastaturen funktionieren und erklärt warum manche Tasten nicht miteinander auskommen, aber das ist ewig her. Aus selbigem Grund erkennt auch nur das Betriebssystem die Strg-Alt-Entf Kombi, wenn ich mich recht entsinne. | ||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
DerHase hat Folgendes geschrieben: Man braucht keine vier Balken Bilder weil man ja auch ImageRectCollide oder ImageRectOverlap nehmen kann.
Damit ist gemeint, dass ich also jede Seite mit einem Rechteckigen bereich überprüfe, oder? Ok. werd ich machen. Also muss ich in einer For->Next Schleife die Tiles auswählen, Kollisionen machen und dann das ganze überprüfen, dann zum nächsten gehen. Danke für die gute Hilfe, euch. ![]() |
||
![]() |
Waveblue |
![]() Antworten mit Zitat ![]() |
---|---|---|
eigentlich brauchst du keine for-next-Schleife. Rechne einfach die Position deiner Figur durch 16 und finde damit heraus, auf welcher Tileposition Die Figur ist. und dann kannst du wunderbar herausfinden, welche 4 Tiles du auswählen musst um eine Kollision zu überprüfen, nämlich alle um das entsprechende Tile herum. | ||
This is 10% luck
20% skill 15% concentrated power of will 5% pleasure, 50% pain and 100% reason to remember the name |
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Figur bewegt sich mit Pixel, also ich hab kein Scrolling, die Tiles sind aber immernoch mit ner tollen Tilemap. Also hat das Prog während dem Spiel 0 Ahnung, auf welchem Tile der Spieler gerade rumdaddelt.
Muss ich jetzt also schauen welche Differenz am kleinsten ist, oder steh ich wie immer total auf dem Schlauch? |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nehmen wir an der Spieler ist auf Pixelposition 100,100. Entspricht auf der Tilemap bei 16'er Tiles und einer Spielfigur von 32 x 32 Pixel -> (100 - 16) / 16 = 5.25 = Integerwert 5
Tada, haben wir die Position auf der Map ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group