Probleme mit Kollision
Übersicht

LachenerBetreff: Probleme mit Kollision |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi Leute!
Also bin Programmier Anfänger und will mit einem einfachen Pong-game beginnen!! Ich bin jetzt so weit dass die 2 Balken kommen man sie auch beide steuern kann und der Ball sich bewegt! Jetzt habe ich aber 2 Probleme: 1. Wie bekomme ich hin das man die Balken nicht über den Bildshirmrand hinaus steuern kann ?? und 2. mein eigentlich hauptproblem: Wenn der Ball auf den Schläger trifft wird er nicht zurück gechossen sondern hält einfach nur an! Wie kann ich in zurück schießen lassen?? Quelcode: Code: [AUSKLAPPEN] Function Ballbewegen()
Speed = 2 Balken1 = LoadImage("Balken1.bmp") ; Balken2 = LoadImage("Balken1.bmp") ; Laden der Daten und in den Graphic Modus wechsseln Ball = LoadImage("Ball.bmp") ; Ballpos1 = Ballpos1 + Speed Cls End Function [moderiert] Code-Tag gesetzt. wunderkind [/moderiert] |
||
![]() |
Smokie |
![]() Antworten mit Zitat ![]() |
---|---|---|
zu 1. Wenn du willst das der ball nicht über den Bildschirmrand fliegt dann mache es ungefär so
Code: [AUSKLAPPEN] graphics 640,480
setbuffer backbuffer() ypos=0 bild=loadimage("bild.bmp") repeat cls drawimage bild,0,ypos if keydown(205) then ypos= ypos + 1 ;der Ball bewegt sich nach unten if ypos>479 then ypos=479 ;und der ball bewegt sich nicht übers Bild flip until keyhit(1) End und zu zweitens benutze mal die Suchfunktion da gibt es ein Haufen themen zu "kolision" Grüße |
||
M-Soft Studios Mit selbst gemachtem Forum!!!
Unbequem lebt's sich schwer. Musik macht erst Spaß, wenn man sie mit 2,8 facher Geschwindigkeit hört Zuletzt bearbeitet von Smokie am Fr Jan 01, 1888 51:58 PM, insgesamt 1000-mal bearbeitet |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
nach einer Kollision einfach die Speed umdrehen
Code: [AUSKLAPPEN] If kolli then speed = speed * -1
Ballx= ballx +speed |
||
[BB2D | BB3D | BB+]
|
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Rallimen hat Folgendes geschrieben: nach einer Kollision einfach die Speed umdrehen
Code: [AUSKLAPPEN] If kolli then speed = speed * -1
Ballx= ballx +speed Das geht auch, da spart man ganze 2 (in Worten ZWEI) Zeichen Code: [AUSKLAPPEN] If kolli then speed = -speed
Ballx= ballx +speed Außerdem würde ich in der FUNCTION BallBewegen nicht ständig die Bilder neu laden. Das ist unnötig und geht auf die Performance (in deinem Fall bei zwei Grafiken wahrscheinlich noch nicht, aber ich würd mir sowas nicht angewöhnen). Stattdessen kann man die Variablen für die Bilder am Anfang laden und ihre IDs der Function übergeben. Guckst du hier: Code: [AUSKLAPPEN] Balken1 = LoadImage("Balken1.bmp") Balken2 = LoadImage("Balken1.bmp") Ball = LoadImage("Ball.bmp") . . Ballbewegen Balken1, Balken2, Ball, 2 Function Ballbewegen(pic1, pic2, picBall, speed) Ballpos1 = Ballpos1 + Speed Cls ;und hier alles malen End Function |
||
LachenerBetreff: Funzt immer noch nicht! |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Function Ballbewegen()
Speed = 2 Balken1 = LoadImage("Balken1.bmp") ; Balken2 = LoadImage("Balken1.bmp") ; Laden der Daten und in den Graphic Modus wechsseln Ball = LoadImage("Ball.bmp") ; If ImagesCollide(Balken2, B2pos1, B2pos2, 0, Ball, Ballpos1, Ballpos2, 0) Then speed = -speed Ballpos1 = Ballpos1 + speed Cls End Function Wenn ich jetzt starte wird der Ball immer noch nicht zurück geschossen sondern bleibt einfach stehen. Der Ball bewget sich nur in die entgegengestetze Richtung wenn der Ball im balken ist und sobald er davor ist hält er an?? Was soll ich jetz amchen´? kann mir jemand evtl ein Beispiel Code posten?? Thx im Vorraus Mfg Fabi |
||
![]() |
Ebola33 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist ja auch ganz klar, weil du am anfang deiner function den speed immer auf 2 setzt, das heisst die umkehrung hat keine wirkung.
speed=2 nur 1x am anfang zuweisen. Mfg Ebola |
||
ansteckend... ![]() verstaubtes Projekt : http://www.mitglied.lycos.de/ebola33/ |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group