2d collision
Übersicht

![]() |
BionicalBetreff: 2d collision |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi!
Kann man eine 2d Map erstellen und collision dann mit hilfe einer Art highmap überprüfen? Hab das mal irgendwo gesehen.... mfg Bionical |
||
Das Leben ist zum Proggen da!
www.livingsoftware.at.tc Mit selbstgehosteten Forum! Das Forum ist leider gerade down.... Dank Funpic.de -.- |
johann.boehmeBetreff: 2d? Heighmap??? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Eine Höhenmap kommt bei d Landschaften zum einsatz,
ich nehme an du willst was in 2d machen, beschreib doch einfach mal was du machen willst und wie du dir was vorgestellt hast ![]() Eine Heighmap dagt dem 3d Compiler wie eine Landkarte, wo das Terrain hoch ist und wo niedrig, in einem 2d Spiel benutzt man einfach ein Sprite, oder? |
||
Wiederstand ist Zwecklos!!! |
![]() |
Bionical |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es soll alles 2d sein.....
Tja, ich stelle mir ds so vor: Hier ist eine 2d Map ![]() Und hier die Coll. Map: ![]() Über die weißen Stellen soll man nicht gehen können.... mfg Bionical |
||
Das Leben ist zum Proggen da!
www.livingsoftware.at.tc Mit selbstgehosteten Forum! Das Forum ist leider gerade down.... Dank Funpic.de -.- |
![]() |
Freeman |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich nehm mal an das du alles mit einem tileset machst, deshalbn mach doch einfach nen 2tes laer ohne es zu zeichen und male einfach auf das 2.layer mit einem speziellen tile die orte an der die kollision durchgeführt werden soll.
Und im entdeffekt überprüfst diu einfach die koordinaten des helden und des 1besonderen tiles(kollision). Dann kannst du zum beispiel imagecollide nehmen. nur zum beispiel, oder du bastelst dir ne function die die koordinaten überprüft? Das waren meine Gedanke dazu Fr3eMaN |
||
MacBook | MacOSX 10.5 | 80GB HDD | 1GB | BlitzMax 1.28 |
![]() |
Bionical |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nee, ich möchte alles OHNE Tiles machen..... | ||
Das Leben ist zum Proggen da!
www.livingsoftware.at.tc Mit selbstgehosteten Forum! Das Forum ist leider gerade down.... Dank Funpic.de -.- |
johann.boehmeBetreff: tja |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmmm,
kannst du nicht als einen Sprite den Untergrund (in deinem Beispiel) Zeichnen und reinladen, und als 2. Sprite die Gegenstände mit denen du kollidieren kannst,drüber legen und dann benutzt du kollisions Befehle, mit der oberen map funktioniert auch mit 2 Layern, und ist meiner meinung nach nicht so kompliziert |
||
Wiederstand ist Zwecklos!!! |
![]() |
Alfadur |
![]() Antworten mit Zitat ![]() |
---|---|---|
sicher kannst du es so machen wie du willst, mußt halt bei jeder bewegung den imagebuffer auf das kollisionsimage setzen, mit readpixel an der stelle schauen was für ne farbe ist und dann ... laufen oder nicht, das ist hier die frage. irgendjemand hatte neulich ein projekt vorgestellt mit nem raumschiffirgendwas wo er das genauso gemacht hat ... kannst das bild auch vorher in ein array reinlesen, welches natürlich verdammt groß wird. aber dann sparste dir das readpixel und den bufferwechsel ... | ||
A Cray is the only computer that runs an endless loop in less than four hours. |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@bionical, ein Spielhintegrund mit einem Bild kann ganz schön Speicherfressend sein. Wenn dann noch eine 'unnütz' Bild im Speicher gehalten wird, dann kommt es wohl schnell zu Problemen. Wenn du aber darauf bestehst alles ohne Tiles zu machen (die einfach zu proggen sind), dann kannst du auch die Kollisionsmap in dein Bild integrieren. Indem du dich für zB Blau entscheidest und alle Pixel wo Kollision statt finden soll machst du den Blauton ungerade und wo nicht als geraden Farbwert. Blau ist dafür am besten, da zum einen Blau eine der drei Grundfarben ist die vom Menschlichem Auge am wenigsten wahr genommen wird. Da machst es kaum ein Unterschied ob du 128 oder 256 Blaustufen hast. Und zum anderen ist Blau in der Farbpalette ganz rechts. Somit ist die Umrechnung per Mod am einfachsten. | ||
![]() |
Bionical |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja aber meine Frage ist wie ich das ganze realisiere.
Tiles sind einfach, ich weiß(die steuerung ist aber ein bisschen ruppig) Ich will aber alles ein bisschen ausprobieren um mehr erfahrung zu schaffen. |
||
Das Leben ist zum Proggen da!
www.livingsoftware.at.tc Mit selbstgehosteten Forum! Das Forum ist leider gerade down.... Dank Funpic.de -.- |
Medabots1992 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es kommt auf Speicher an, wenn man die werte in ein Array speichert kann man das Bild löschen (aus speicher).
Ich würde es mit Arrays machen das die werte gespeichert werden wo was ist 0=kein gegenstand, 1=gegenstand und das muss richtig liegen dann wird mit if überprüft ob der nächste schritt 0 oder 1 ist, wenn es 0 ist weiter laufen wenn 1 stopen. |
||
![]() |
Bionical |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, gut.
Ich weiß trotzdem nicht wie man das realisiert.... Wie wärs mit nem Beispiel |
||
Das Leben ist zum Proggen da!
www.livingsoftware.at.tc Mit selbstgehosteten Forum! Das Forum ist leider gerade down.... Dank Funpic.de -.- |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Bionical, wiso muß eine Tiles'engine' immer mit sprüngen von statten gehen? Hier mal ein ganz einfaches Beispiel das eine Tile'engine' auch fliessende Bewegungen machen kann. Da ich nun keine Bilder hoch laden wollte, habe ich alles per <Rect> und <Color> gemacht. Gecht natürlich auch alles mit Bildern...
Code: [AUSKLAPPEN] ;Grafik setzten
Graphics 320,320,32,2 SetBuffer BackBuffer() ;Variablen festlegen Dim xy%(99,99) ;Spielfeldspeicher mit 100*100 Tiles rxp#=1000 ;X-Position im Spielfeld ryp#=1000 ;Y-Position im Spielfeld dvx%=0 ;X-Faktor für Tileverschiebung dvy%=0 ;Y-Faktor für Tileverschiebung tpx%=0 ;X-Faktor für Dim-Tilesprung tpy%=0 ;Y-Faktor für Dim-Tilesprung mxp#=0 ;X-Position Maus myp#=0 ;Y-Position Maus ;Felder For y=0 To 99 For x=0 To 99 If Rand(0,10)>8 Then xy(x,y)=Rand(1,6) Next Next ;Rahmen For q=0 To 99 xy(0,q)=6 xy(q,0)=6 xy(99,q)=6 xy(q,99)=6 Next ;Hauptroutine While Not KeyHit(1) ;Rechne mxp=MouseX() myp=MouseY() rxp=rxp-(160-mxp)/20 ryp=ryp-(160-myp)/20 If rxp<0 Then rxp=0 If ryp<0 Then ryp=0 If rxp>2911 Then rxp=2911 If ryp>2911 Then ryp=2911 dvx=rxp Mod 32 dvy=ryp Mod 32 tpx=(rxp+16)/32 tpy=(ryp+16)/32 ;Tiles For y=0 To 8 For x=0 To 8 Color xy(x+tpx,y+tpy)*32,0,0 Rect 32+x*32-dvx,32+y*32-dvy,32,32,1 Next Next ;Info Color 255,255,255 Rect 32,32,256,256,0 Text 0,0,rxp Text 0,16,ryp Flip Cls Wend End |
||
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Bionical hat Folgendes geschrieben: Tiles sind einfach, ich weiß(die steuerung ist aber ein bisschen ruppig)
Dann war sie schlecht programmiert. ![]() |
||
![]() |
Bionical |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Problem ist gelöst ![]() Danke an alle die geantwortet haben |
||
Das Leben ist zum Proggen da!
www.livingsoftware.at.tc Mit selbstgehosteten Forum! Das Forum ist leider gerade down.... Dank Funpic.de -.- |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group