Achtung die Kurve ...
Übersicht

Dima150Betreff: Achtung die Kurve ... |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo ... Ich weiss leider nicht in welches Forum es kommt, also habe ich es hier rein geschrieben.
Ich bin neu hier und wollte euch mal eine Frage stellen. Sicher kennt ihr das Spiel "Achtung die Kurve" nicht oder ? Für alle, die Interesse daran haben, können es hier downloaden : http://games.acont.de/Download/32.html Ich will dieses Spiel selber mit Blitz Basic 2D machen aber mir gelingt es nie die Collision der einzelnen Striche hinzubekommen. Hat jemand einen Rat ? |
||
![]() |
darth |
![]() Antworten mit Zitat ![]() |
---|---|---|
nun, wieviel ahnung hast du von vektorgeometrie?
du könntest die geradengleichung der linie verwenden (ist ja 2d) und den abstand der beiden geraden berechnen (HNF), wenn der zu klein wird gibts ne kollision. wird komplizierter wenns rund ist, aber ist machbar... |
||
Diese Signatur ist leer. |
Dima150 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vektorgeometrie ?? Tut mir Leid da kann ich dich nur enttäuschen ... Damit kenne ich mich nichts aus. Am Anfang habe ich erst versucht das Collisieren mit Getcolor() zu machen aber daraus wurde nichts. Gibt es vll. etwas leichteres als Vektorgeometrie ? | ||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmm getcolor is'n bisschen lahm aber der ansatz wär doch gut
lass mit plot oder oval ne image vollkrizzeln und dann fragen If ReadPixel(zukünftige koordinaren)<>0 then make gameover^^ oder sowas in der art bei oval muss den zukünftigen variablen noch der radius draufgerechnet werden aber sonst ist die "grafische lösung des problems" nicht unbedingt schlechter als die Rechnerische zudem die rechnerische deie ganzen daten von 8linien mit kurven etc berücksichtigen müsste da ist es zum ende hin besser nurnch die graka zu fragen "ist da was gemalt??" |
||
![]() |
Shogo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kleine Idee von mir.
Fuer die Spielfiguren nimmst du Bilder also einfach einen Greiss. Und dann erstellst du noch ein Bild das so gross ist wie dein Spielfeld. Die Zurueckgelegte Strecke der Spielfiguren zeichnest du auf dem grossen bild ein dann muesstest du die kollisionen mit Blitz abfragen koennen. Shogo Edit: Es hat mich mal Interessiert deshalb hab ichs mal schnell Ausprobiert, ist etwas sehr langsam wenn man so ein grosses Bild auf nee Kollision ueberprueft. Habs dann nur einen Bildausschnitt mit Copyrect ueberprueft was es sehr viel schneller macht. Code: [AUSKLAPPEN] Graphics 800, 600, 32, 2
ClsColor 80, 40, 255 Global hintergrund = CreateImage(800, 600); Erstellt Hintergrund MaskImage hintergrund, 0, 0, 0 Global spieler = CreateImage(5, 5); Erstellt Spieler MaskImage spieler, 0, 0, 0 Global vergleich = CreateImage(5, 5); Bild fuer die Kollisionskontrolle MaskImage vergleich, 0, 0, 0 SetBuffer ImageBuffer(spieler) Color 0, 255, 0 Oval 0, 0, 5, 5 Global richtung = 0 Global x# = 400, y# = 300; Koordinaten der Spielfigur Global collide Global warten; fuer denn Timer SetBuffer BackBuffer() Repeat timer = MilliSecs() If timer > warten Then warten = timer + 10 Cls ; Steuerung If KeyDown(203) Then richtung = richtung - 1 If KeyDown(205) Then richtung = richtung + 1 If richtung = -1 Then richtung = 359 If richtung = 360 Then richtung = 1 ; Auf Hintergrund Zeichnen SetBuffer ImageBuffer(hintergrund) Color 255, 0, 0 Oval x - Cos(richtung) * 6, y - Sin(richtung) * 6, 5, 5 ; Teil des hintergrundes wird fuer die Kollisionsabfrage kopiert ;GRABIMAGE vergleich, x, y CopyRect x, y, 5, 5, 0, 0, ImageBuffer(hintergrund), ImageBuffer(vergleich) SetBuffer BackBuffer() ;Kollisionsabfrage If IMAGESCOLLIDE(vergleich, 0, 0, 0, spieler, 0, 0, 0) = 1 Then collide = 1 ;Text ausgeben Color 255, 0, 0 If collide = 1 Then Text 0, 0, "Es hat gekracht" ; Aktualisiert Spieler x = x + Cos(richtung) y = y + Sin(richtung) DrawImage hintergrund, 0, 0; Zeichnet Hintergrund DrawImage spieler, x, y; zeichnet Spieler Flip End If Until KeyHit(1) Hab nur ein Problem wenn ich denn Bildausschnitt mit Grabimage Kopiere macht er die Kollisionsabfrage nicht ist das ein Bug oder hab ich was uebersehen? |
||
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Seh ich das richtig das da nur Linien und Farben sind?
Dann mach einfach ein Dim Feld: Code: [AUSKLAPPEN] Graphics 320,240 Dim Position(320,240) Wenn ein Spieler sich bewegt wird auf dessen position seine Farbe gespeichert: Code: [AUSKLAPPEN] position(player_x,player_y) = playercolor Kollision kannst du dann prüfen mit Code: [AUSKLAPPEN] if isCollided(player_x,player_y) gameover() endif function isCollided(x%,y%) return position(x,y) > 0 end function [/code] |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
Dima150 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
WOW !!! Danke, dass ihr mir so schnell geholfen habt. Shogos Programm funktioniert ja ganz gut ! Danke ... Jetzt habe ich einige Ansätze, womit ich mein Programm schreiben könnte. ![]() ![]() ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group