Jetzt lerne ich.....
Übersicht

totonak5Betreff: Jetzt lerne ich..... |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Im Buch "Jetzt lerne ich Spiele programmieren mit Blitz Basic" steht auf Seite 215 ein Beispiel mit folgendem Quelltext: Code: [AUSKLAPPEN] ; KOLLISION1.BB Graphics 640,480 SetBuffer BackBuffer() ; ; Startdaten für die Bälle Data 100,100,1,1 Data 200,200,1,-1 Data 300,300,-1,1 Dim Ball(3,4) ; Startdaten einlesen For I=1 To 3 For J=1 To 4 Read Ball(I,J) Next Next ; Hauptschleife Repeat ClsColor 200,200,0 Cls Color 220,220,0 Rect 50,50,540,380,1 For I=1 To 3 ; Randtest If Ball(I,1)=50 Then Ball(I,3) = +1 If Ball(I,1)=555 Then Ball(I,3) = -1 If Ball(I,2)=50 Then Ball(I,4) = +1 If Ball(I,2)=395 Then Ball(I,4) = -1 ; Position ändern Ball(I,1) = Ball(I,1) + Ball(I,3) Ball(I,2) = Ball(I,2) + Ball(I,4) Color 0,0,255 Oval Ball(I,1),Ball(I,2),36,36,0 Next Flip Delay 1 Until KeyHit(1) WaitKey Wie kann ich es einstellen, dass sich die Bälle schneller bewegen? lg Aron |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
So :
Code: [AUSKLAPPEN] Graphics 640,480,16,2 SetBuffer BackBuffer() ; ; Startdaten für die Bälle ;Pos XY Geschwindigkeit XY Data 100,100,5,5 Data 200,200,5,-5 Data 300,300,-5,5 Dim Ball(3,4) ; Startdaten einlesen For I=1 To 3 For J=1 To 4 Read Ball(I,J) Next Next ; Hauptschleife Repeat ClsColor 200,200,0 Cls Color 220,220,0 Rect 50,50,540,380,1 For I=1 To 3 ; Randtest If Ball(I,1)<50 Then Ball(I,3) = 5 ;< neue Geschwindigkeit bzw. Richtung If Ball(I,1)>555 Then Ball(I,3) = -5 If Ball(I,2)<50 Then Ball(I,4) = 5 If Ball(I,2)>395 Then Ball(I,4) = -5 ; Position ändern Ball(I,1) = Ball(I,1) + Ball(I,3) Ball(I,2) = Ball(I,2) + Ball(I,4) Color 0,0,255 Oval Ball(I,1),Ball(I,2),36,36,0 Next Flip Delay 10 Until KeyHit(1) End Und so fände ich schöner weil man dann nur die Datas bearbeiten braucht . Code: [AUSKLAPPEN] If Ball(I,1)<50 Then Ball(I,3) = Abs(Ball(I,3)) If Ball(I,1)>555 Then Ball(I,3) = -Abs(Ball(I,3)) If Ball(I,2)<50 Then Ball(I,4) = Abs(Ball(I,4)) If Ball(I,2)>395 Then Ball(I,4) = -Abs(Ball(I,4)) |
||
![]() |
KabelbinderSieger des WM-Contest 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich habe das Beispiel aus dem Buch auch ausprobiert und, das es aber nicht für weiteres ausreicht, da die Kollision nur für sehr schmale Bereiche(linien) gilt. Ich finde, man sollte es so ergänzen:
Code: [AUSKLAPPEN] Graphics 640,480
SetBuffer BackBuffer() Const speed = 5 ; ; Startdaten für die Bälle Data 100,100,speed,speed Data 200,200,speed,-speed Data 300,300,-speed,speed Dim Ball(3,4) ; Startdaten einlesen For I=1 To 3 For J=1 To 4 Read Ball(I,J) Next Next ; Hauptschleife Repeat ClsColor 200,200,0 Cls Color 220,220,0 Rect 50,50,540,380,1 For I=1 To 3 ; Randtest If Ball(I,1)<=50 Then Ball(I,1) = 50 Ball(I,3) = +speed EndIf If Ball(I,1)>=555 Then Ball(I,1) = 555 Ball(I,3) = -speed EndIf If Ball(I,2)<=50 Then Ball(I,2) = 50 Ball(I,4) = +speed EndIf If Ball(I,2)>=395 Then Ball(I,2) = 395 Ball(I,4) = -speed EndIf ; Position ändern Ball(I,1) = Ball(I,1) + Ball(I,3) Ball(I,2) = Ball(I,2) + Ball(I,4) Color 0,0,255 Oval Ball(I,1),Ball(I,2),36,36,0 Next Flip Delay 1 Until KeyHit(1) WaitKey wenn der ball außerhalb der grenze ist, wird er erst innerhalb der Grenzen platziert und dann seine Richtung geändert. (In zeile 3 findest du eine Konstante, mit der du das Speed regulieren kannst.) Es ist nie verkehrt mal ein Beispiel aus dem Buch abzuändern oder zu ergänzen ![]() Viel Erfolg weiterhin! |
||
<Wing Avenger Download> ◊◊◊ <Macrophage Download> |
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
gibts das buch auch online irgendwo anzuschauen ![]() |
||
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
denk mal nicht, sonst würds ja keiner mehr kaufen! | ||
Retro |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das Buch ist ein Pflichtkauf! Ich lese abends immer 10 Seiten in Ruhe durch... und bald bin ich fertig ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn du alle übungen selbst machst und verstanden hast schon, sonst is es reine zeitverschwendung. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Schummelwelt.de |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@ChEsTer
Bei eBay gibt es das Buch für 9,95€ NEU. Bei Amazon kostet es 25€. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group