Problem bei Kollision
Übersicht

![]() |
DanteBetreff: Problem bei Kollision |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey Leute^^
bin grade dabei mal ein Minigame zu proggen. Jedoch habe ich ein Problem!^^ Ich lade die Maps aus Bildern, im Prinzip wie bei Worms. Jetzt möchte ich mit der Spielfigur einen Abhang nach oben laufen, sagen wir mal bis 60° Grad Neigung. (siehe Bild, ist natürlich nicht In-Game xD) Kommt jetzt aber eine Neigung über 60° soll er nicht mehr weiter laufen können. ![]() Nun weiß ich nicht wie ich das anstelle, das er überhaupt über das Bild den Hügel nach oben läuft^^ Denke ich muss aufjedenfall mir ReadPixelFast arbeiten. Kann mir da jemand helfen? Danke schonmal. Grüße, Bad-Rat |
||
![]() |
Christoph |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich kann dich gut verstehen...
Progge zur Zeit auch an sowas <Ähnlichem> Schau dir (nach dem du meine Antwort fertig gelesen hast) mal an, was ich mit einer ähnlichen Frage auf die Beine gestellt habe: Mehr Infos über das weit verbreitete <<Wormproblem>> Nun aber zu deinem/meinem Problem: Ich hab's so gemacht: Deine Spielfigur darf ja nur bis zu einer bestimmten Steigung laufen. Du musst einen Punkt festlegen: --> Wenn der die Landschaft nicht berührt, darf die Figur laufen --> Wenn der die Landschaft berührt, darf die Figur nicht laufen Genauer gesagt musst du zwei Punkte festlegen. Je nachdem, in welche Richtung du läufst. Hätt dir gern nen Bild gezeigt, weiß aber nicht wie ich das machen soll, da ich keine Website habe von der ich es laden könnte..... Falls du das doch nicht so gut verstanden hast, schreib zurück. Hoffe ich konnte helfen. ![]() (Frage: Brauchst du die Info für dein Online-Spiel (siehe Signatur)?) Tschüss |
||
![]() |
Dante |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke dir^^
denk jetzt weiß ich wies klappt. Kannst ja trotzdem mal ein Bild hochladen. (http://imageshack.us/ hier kann man Bilder hochladen und das ist umsonst außerdem bekommt man einen link den man nur noch einfügen muss) Ne das wird nur ein Minigame (wahrscheinlich mit der Grafik des Online Spiels) aber das Online Spiel wird ja ein RPG, und das Minigame soll ein kleines Kampfspiel werden, bei dem man sich mit Zaubern und so angreift xD bisschen wie worms. Gruß |
||
![]() |
Dante |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmm.. ok ich bekomms irgendwie doch nicht hin.
könntest du mir vielleicht einen Code dafür geben?? MfG |
||
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich will dir mal eine andere möglichkeit präsentieren...:
![]() Hier kann man ATan anwenden: Tan ?=L1/L2 ?=ATan(L1/L2) Nur wenn ? größer ist als 60° geht das nicht! Die roten Strahlen sind deine kleinen Sensorchen ^^ edit: diese variante hat nur einen kleinen hacken: unebenheiten auf kürzeren strecken werden nicht erkannt => also einfach den sensor-start-punkt bisschen weiter nach unten (der punkt bei dem der rechte winkel ist) |
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
Dante |
![]() Antworten mit Zitat ![]() |
---|---|---|
hehe^^ auch ne gute Lösung.
Danke dir ![]() bin grad was damit am rumbasteln. Ich sag bescheid, wenn ich was tolles hinbekommen hab^^ |
||
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich arbeite gerade an einer demo, die dir das zeigen soll.... | ||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
Dante |
![]() Antworten mit Zitat ![]() |
---|---|---|
cool ![]() ist ja sogar noch besser^^ Danke ![]() |
||
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
so...jetzt meine finale version dazu (nur das mit der winkelangabe klappt nicht) einfach irgendwelche winkel eingeben ^^:
Code: [AUSKLAPPEN] Graphics 800,600
SetBuffer BackBuffer() level=LOadImage("picslandscape.bmp") spieler=LoadImage("Picsspieler.bmp") spielerx=100 spielery=300 algorithm_speed=4 algorithm_speed2=2 move_speed=4 winkel=40 Repeat DrawBlock level,0,0 DrawImage spieler,spielerx,spielery ; Linke Sensoren sensorstatuslinks=1 sensorstatusrechts=1 If sprung=0 Then sensorx=spielerx+ImageWidth(spieler)/2 sensory=spielery+ImageHeight(spieler)-15 ursprungx=sensorx ursprungy=sensory Color 255,0,0 Repeat Plot sensorx,sensory sensorx=sensorx-algorithm_speed Until ImageRectCollide(level,0,0,0,sensorx,sensory,1,1) Or sensorx<0 Or sensorx>800 l2l#=Abs(ursprungx-sensorx) sensorx=ursprungx sensory=ursprungy Repeat Plot sensorx,sensory sensory=sensory+algorithm_speed Until ImageRectCollide(level,0,0,0,sensorx,sensory,1,1) Or sensory>600 l1l#=Abs(ursprungy-sensory) ; Rechte Sensoren sensorx=spielerx+ImageWidth(spieler)/2 sensory=spielery+ImageHeight(spieler)-15 ursprungx=sensorx ursprungy=sensory Color 255,0,0 Repeat Plot sensorx,sensory sensorx=sensorx+algorithm_speed Until ImageRectCollide(level,0,0,0,sensorx,sensory,1,1) Or sensorx<0 Or sensorx>800 l2r#=Abs(ursprungx-sensorx) sensorx=ursprungx sensory=ursprungy Repeat Plot sensorx,sensory sensory=sensory+algorithm_speed Until ImageRectCollide(level,0,0,0,sensorx,sensory,1,1) Or sensory>600 l1r#=Abs(ursprungy-sensory) ; Auswertung If ATan(l1l/l2l)>winkel Then sensorstatuslinks=0 End If If ATan(l1r/l2r)>winkel Then sensorstatusrechts=0 End If End If ; Bewegung Text 1,40,ATan#(l2l#/l1l#) If KeyDown(203) Then If sensorstatuslinks Then spielerx=spielerx-move_speed If sprung=0 Then spielery=spielery-Tan(60)*move_speed Repeat spielery=spielery+algorithm_speed2 Until ImagesCollide(spieler,spielerx,spielery,0,level,0,0,0) End If End If End If If KeyDown(205) Then If sensorstatusrechts Then spielerx=spielerx+move_speed If sprung=0 Then spielery=spielery-Tan(60)*move_speed Repeat spielery=spielery+algorithm_speed2 Until ImagesCollide(spieler,spielerx,spielery,0,level,0,0,0) End If End If End If ; Sprung If KeyHit(57) And sprung=0 Then sprung=1 If sprung>0 Then sprung=sprung+1 spielery=spielery-12 If sprung>23 Then sprung=-1 End If ; Kollisionsprüfung If ImagesCollide(spieler,spielerx,spielery,0,level,0,0,0)=0 Then spielery=spielery+5 If sprung=0 Then sprung=-1 Else sprung=0 End If Flip Until KeyHit(1) Hier noch mit den Bildern: https://www.blitzforum.de/upload/file.php?id=48 |
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
Dante |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wow geil^^
Genau sowas wollte ich mir bauen ![]() Vielen vielen Dank ![]() Und mit dem Winkel kann ich leben^^ nochmal danke. Gruß |
||
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich hof | ||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
Christoph |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sieht gut aus Kyran.
Ich glaub ich spring auf deine Methode um. Ich schaus mir mal genauer an, hoff dass ichs kapier.... ![]() |
||
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
versuchs lieber gar nicht erst ^^
das mit den sensoren ist seeeeehhhhhr komisch von mir geschrieben!! aber wenn du gefallen dran hast ![]() abgesehen davon ist es auch noch keine endversion, weil wenn man von unten in ein gegenstand hineinspringt, bemerkt er es nicht oder bleibt sogar hängen ![]() hab dem zwar schon abhilfe geschafft, will den code hier aber nicht zeigen...selbst ist der mann ![]() |
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
Christoph |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann mach ich halt doch auf meine Methode...... (hat nämlich auch gut geklappt!!!) ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group