Kleines Problem bei Ping-Pong-Programm

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

millhouse

Betreff: Kleines Problem bei Ping-Pong-Programm

BeitragFr, Dez 22, 2006 0:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

ich bin absoluter Anfänger was BB betrifft und hab mich anhand des Forums an das Ping-Pong-Spiel gewagt.

Jetzt ist mir da ein Problem aufgefallen und ich weiß nicht warum das so ist.

Folgendes:

Dieses Programm funktioniert soweit (ist noch nicht ganz fertig)

Code: [AUSKLAPPEN]
FensX=800:FensY=600
Graphics FensX,FensY,32,2
Rect 2,2,20,100

Pad1 = CreateImage(20,100)
Pad2 = CreateImage(20,100)
GrabImage Pad1,2,2
GrabImage Pad2,2,2

Ball=CreateImage(30,30)
SetBuffer ImageBuffer(Ball)
Color 255,255,255
Oval 0,0,30,30
MidHandle Ball
ClsColor 0,200,0
SetBuffer BackBuffer()

BallX#=400
BallY#=300




Repeat
   Cls
   ClsColor 0,0,0
   X=MouseX()
   Y=MouseY()

   If MouseHit(1) Then BallMoveX#=Rand(-5,5):BallMoveY#=Rand(-5,5)

   BallX#=BallX#+BallMoveX#
   BallY#=BallY#+BallMoveY#

   
   If BallX#<15 Or BallX#>FensX-15 Then BallMoveX#=BallMoveX#*-1
   If BallY#<15 Or BallY#>FensY-15 Then BallMoveY#=BallMoveY#*-1
   
   
   DrawImage Ball,BallX#,BallY#
        DrawImage Pad1, 2,y
   If y >= 500 Then
      DrawImage Pad1, 2,500
      DrawImage Pad2, 780,0
   End If
   DrawImage Pad2, 780,600-100- y
   
   Flip
Until KeyDown(1)=1:End


Aber dieses hier nicht:

Code: [AUSKLAPPEN]
Graphics 800,600,32,2
Rect 2,2,20,100

Pad1 = CreateImage(20,100)
Pad2 = CreateImage(20,100)
GrabImage Pad1,2,2
GrabImage Pad2,2,2

Ball=CreateImage(30,30)
SetBuffer ImageBuffer(Ball)
Color 255,255,255
Oval 0,0,30,30
MidHandle Ball
ClsColor 0,200,0
SetBuffer BackBuffer()

BallX#=400
BallY#=300




Repeat
   Cls
   ClsColor 0,0,0
   X=MouseX()
   Y=MouseY()

   If MouseHit(1) Then BallMoveX#=Rand(-5,5):BallMoveY#=Rand(-5,5)
   
   BallX#=BallX#+BallMoveX#
   BallY#=BallY#+BallMoveY#


   If BallX#<15 Or BallX#>FensX-15 Then BallMoveX#=BallMoveX#*-1
   If BallY#<15 Or BallY#>FensY-15 Then BallMoveY#=BallMoveY#*-1


   DrawImage Ball,BallX#,BallY#
   DrawImage Pad1, 2,y
   If y >= 500 Then
      DrawImage Pad1, 2,500
      DrawImage Pad2, 780,0
   End If
   DrawImage Pad2, 780,600-100- y

   Flip
Until KeyDown(1)=1:End


Es sind nur die ersten 2 Zeilen unterschiedlich. Aber warum geht das mit der ersten Variante und nicht mit der zweiten?

Danke und Gruß
Millhouse
  • Zuletzt bearbeitet von millhouse am Fr, Dez 22, 2006 1:10, insgesamt einmal bearbeitet

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragFr, Dez 22, 2006 0:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
If y >= 500 Then
      DrawImage Pad1, 2,500
      DrawImage Pad, 780,0
   End If

wenn ich das richtig gesehen habe dann sollte das aber so sein!

Code: [AUSKLAPPEN]
If y >= 500 Then
      DrawImage Pad1, 2,500
      DrawImage Pad2, 780,0
   End If

denn Pad ist kein Bild
[BB2D | BB3D | BB+]
 

millhouse

BeitragFr, Dez 22, 2006 1:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Ralliman,

da hab ich mich vertippt ; )

Ich meinte folgende zeilen:

mit

FensX=800:FensY=600
Graphics FensX,FensY,32,2
Rect 2,2,20,100

funktionierts

und mit dem hier nicht:

Graphics 800,600,32,2
Rect 2,2,20,100

Warum ist das so?? Denn da steht doch inhaltlich das gleiche?!

Ironstorm

Erstklassiger Contest-Veranstalter

BeitragFr, Dez 22, 2006 2:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, es steht nicht das gleiche drin.
Du gibst beim ersten Code FensX und FensY an. Doch beim zweiten nicht und trotzdem ziehst du bei beiden -15 zur Überprüfung ab:

Code: [AUSKLAPPEN]
If BallX#<15 Or BallX#>FensX-15 Then BallMoveX#=BallMoveX#*-1
If BallY#<15 Or BallY#>FensY-15 Then BallMoveY#=BallMoveY#*-1


D.h. du musst nach Graphics noch die "FensX=800:FensY=600" angeben damit dein Spiel weiß wie groß das Spielfeld ist denn dies fehlt im zweiten Code.

MFG
Ironstorm
..:: blackbird design : blackbird photography : Futuro Verde : X-Commander ::..
MacBook | Intel Core 2 Duo 2,1 GHz | 2048 MB RAM | 80 GB HDD | Mac OS X 10.6.2 (Snow Leopard) | Adobe CS4 Design Premium
 

millhouse

BeitragFr, Dez 22, 2006 9:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Alles Klar! Jetzt sehe ich meinen Fehler! Danke.

/closed

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group