Auf eigenem Hintergrundbild PingPong spielen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

enaz

Betreff: Auf eigenem Hintergrundbild PingPong spielen

BeitragDo, Sep 21, 2006 15:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Bin immer noch an meinem Ultimativen Pingpongspiel beschaftigt. Jetzt möchte ich, dass ich auf einem eigenem Hintergrund spielen kann, nicht immer nur einen einfarbigen Hintergrund.
Bidde Hilfe

DerHase

BeitragDo, Sep 21, 2006 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Zeichne einfach ein Bild (DrawImage) bevor Du Deinen Ball etc. zeichnest.

Schranz0r

BeitragDo, Sep 21, 2006 15:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Du schreibst einfach deinen Background als erstes!


DrawImage Background,0,0 : Hier der BG!!! dann alles andere
Drawimage Spieler, x, y
Drawimage Steine .....

usw

EDIT :

Scheisse Hase war schneller ^^
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 

enaz

BeitragDo, Sep 21, 2006 15:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Irgendwie seh ich dann aber nur en Schwarzen Bildschirm!

Hier mal der Code:

Global xmax=1024,ymax=768
Graphics xmax,ymax,32,1
Global frametimer = CreateTimer(60)
SeedRnd MilliSecs()
SetBuffer BackBuffer()

sound = LoadSound("ton.wav")

Global kugel=LoadImage("kugel.bmp");damit wird die Kugel in eine Variable geladen
MidHandle kugel ;der Urspung wird auf den Mittelpunkt gelegt, das macht sich bei Berechnungen besser
MaskImage kugel,255,255,255;auf das Einstellen der Tranzparenzfarbe kann verzichtet werden, weil sie Standard mäßig schwarz ist.

Global spieler1=LoadImage("pongspieler1.bmp");damit ist der Untere gemeint
MidHandle spieler1;auch dieser bekommt seine Ursprung in die Mitte (s.Kugel)
MaskImage spieler1,255,255,255;hier müssen wir die Tranzparenzfarbe angeben, weil sie vom Standard abweicht

Global spieler2=LoadImage("pongspieler2.bmp");damit ist der Obere gemeint
MidHandle spieler2;auch dieser bekommt seine Ursprung in die Mitte (s.Kugel)
MaskImage spieler2,255,255,255;hier müssen wir die Tranzparenzfarbe angeben, weil sie vom Standard abweicht



Global xsp1=xmax/2;also in der Mitte
Global xsp2=xmax/2
Global sp1st
Global sp2st
Global xkugel#
Global ykugel#
Global winkel
Global geschwindigkeit=11 ;wird mit Wert zugewiesen, weil man sie (noch) nicht ändern kann
Global fehlersp1
Global fehlersp2
Global beweglichkeit


resetkugel;damit sie an der richtigen Position ist

Repeat
WaitTimer (frametimer)

beweglichkeit=geschwindigkeit


If KeyHit(14) Then resetkugel;wenn die Löschen Taste gedrückt wurde wird die Kugel zurück gesetzt

;die Spielersteuerung
If KeyHit(2) Then sp1st=sp1st+1;die Zahlentaste 1
If KeyHit(3) Then sp2st=sp2st+1;die Zahlentaste 2

If sp1st>2 Then sp1st=0
If sp2st>2 Then sp2st=0

;die automatische Steuerung, wenn die Steuerungsvariable 0 ist:
If xsp1>xkugel And sp1st=0 Then xsp1=xsp1-beweglichkeit
If xsp1<xkugel And sp1st=0 Then xsp1=xsp1+beweglichkeit

If xsp2>xkugel And sp2st=0 Then xsp2=xsp2-beweglichkeit
If xsp2<xkugel And sp2st=0 Then xsp2=xsp2+beweglichkeit

;die Tastatursteuerung, wenn die Steuerungsvariable 1 ist:
If KeyDown(203) And sp1st=1 Then xsp1=xsp1-beweglichkeit;linke Pfeiltaste
If KeyDown(205) And sp1st=1 Then xsp1=xsp1+beweglichkeit;rechte Pfeiltaste

If KeyDown(44) And sp2st=1 Then xsp2=xsp2-beweglichkeit;Y Taste
If KeyDown(45) And sp2st=1 Then xsp2=xsp2+beweglichkeit;X Taste

;die Maussteuerung, wenn die Steuerungsvariable 2 ist:
If sp1st=2 Then xsp1=xsp1+MouseXSpeed()
If sp2st=2 Then xsp2=xsp2+MouseXSpeed()

;die Überprüfung:
If xsp1<70 Then xsp1=70
If xsp1>xmax-70 Then xsp1=xmax-70
If xsp2<70 Then xsp2=70
If xsp2>xmax-70 Then xsp2=xmax-70

;die Kollisionsabfrage der Spieler
If ImagesCollide(spieler1,xsp1,ymax-10,0,kugel,xkugel,ykugel,0) Then ;wenn eine Kollision ist
PlaySound(sound)
winkel=360-winkel ;prallt die Kugel ab
abweichung=2*(xsp1-xkugel) ;damit kannst du die Richtung der Kugel steuern
winkel=winkel+abweichung
EndIf

If ImagesCollide(spieler2,xsp2,10,0,kugel,xkugel,ykugel,0) Then
PlaySound(sound)
winkel=360-winkel
abweichung=2*(xsp2-xkugel)
winkel=winkel-abweichung
EndIf

;damit der Winkel nicht über den Bereich von 0-360 geht:
If winkel>360 Then winkel=winkel-360
If winkel<0 Then winkel=winkel+360



;Kollisionsabfrage Seitenwände
If xkugel<60 Then
winkel=180-winkel ;damit prallt die Kugel ab
EndIf

If xkugel>xmax-60 Then
winkel=180-winkel
EndIf


;wenn die Kugel durchgelassen wurde
If ykugel<-10 Then ;oben
fehlersp2=fehlersp2+1 ;der Obere bekommt einen Fehlerpunkt dazu
resetkugel ;ein Funktionsaufruf
EndIf

If ykugel>ymax+10 Then ;unten
fehlersp1=fehlersp1+1 ;der Untere bekommt einen Fehlerpunkt dazu
resetkugel ;ein Funktionsaufruf
EndIf



;das Berechnen der Kugelkoordinaten
xkugel=xkugel+Cos(winkel)*geschwindigkeit
ykugel=ykugel-Sin(winkel)*geschwindigkeit

;einige Informationen werden auf den Bildschirm gemalt
Text 100,200,"Spielstand: "+fehlersp2 + " : " + fehlersp1


If fehlersp1=51 Then End
If fehlersp2=51 Then End


DrawImage kugel,xkugel,ykugel;nur damit man sieht, das sie existiert
DrawImage spieler1,xsp1,ymax-10
DrawImage spieler2,xsp2,10

Flip ;da wir den Hintergrundpuffer aktiviert haben, wechseln wir jetzt die Seiten, damit wir was sehen
Cls ;der nichtsichtbare Bereich wird gelöscht
Until KeyHit(1)
End


Function resetkugel()
xkugel=xmax/2:ykugel=ymax/2
If Rand(0,1)=1 Then winkel=Rand(105,45) Else winkel=Rand(315,225);der Winkel wird durch Zufall ermittelt
End Function
  • Zuletzt bearbeitet von enaz am Do, Sep 21, 2006 16:01, insgesamt einmal bearbeitet

Hubsi

BeitragDo, Sep 21, 2006 16:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Code? Very Happy Scheint mir ein Fehler im Doublebuffering zu sein Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

robotx

BeitragDo, Sep 21, 2006 16:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann nimm kein schwarzes Bild! Rolling Eyes

Woher sollen wir wissen was du falsch machst, wenn du nichts zum Problem sagst?

Hast du BackBuffer ?
Sind alle Bilder vorhanden?
Zeige mal den Codeausschnitt!

mfg robotx Very Happy

Edit: Man bin ich langsam! Embarassed
www.botbomb.robotzgames.de
www.robotzgames.de

DerHase

BeitragDo, Sep 21, 2006 16:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast Du das wunderbare "Flip" und das wunderbare "Cls" benützt?

robotx

BeitragDo, Sep 21, 2006 16:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja hat er, aber wo bitte schön lädst du das Hintergrundbild und zeichnest es?

robotx
www.botbomb.robotzgames.de
www.robotzgames.de
 

enaz

BeitragDo, Sep 21, 2006 16:10
Antworten mit Zitat
Benutzer-Profile anzeigen
genau das ist ja das Problem. Wo genau muss ich das hinschreiben:
DrawImage Background,0,0 : Hintergrund

Muss ich das ganz am Anfang machen, oder nach der Auflösung oder was?

DerHase

BeitragDo, Sep 21, 2006 16:11
Antworten mit Zitat
Benutzer-Profile anzeigen
DerHase hat Folgendes geschrieben:
Zeichne einfach ein Bild (DrawImage) bevor Du Deinen Ball etc. zeichnest.
 

enaz

BeitragDo, Sep 21, 2006 16:29
Antworten mit Zitat
Benutzer-Profile anzeigen
jetzt hab ich das nopch hinzugefügt:
Background=LoadImage("Bild.bmp")
DrawImage Background,0,0

Das Bild wird aber immer noch nicht angezeigt

robotx

BeitragDo, Sep 21, 2006 16:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Global Background = LoadImage("Bild.bmp")
das kommt an den Anfang des Codes, wo du auch z.B. die Schläger und den Ball lädst.

DrawImage Background,0,0

kommt vor alle anderen DrawImage Befehle

So muss es gehen!

robotx

Edit: Ich habe es bei mir mal getestet und es funktioniert einwandfrei.
www.botbomb.robotzgames.de
www.robotzgames.de
 

enaz

BeitragDo, Sep 21, 2006 17:17
Antworten mit Zitat
Benutzer-Profile anzeigen
robotx hat Folgendes geschrieben:
Global Background = LoadImage("Bild.bmp")
das kommt an den Anfang des Codes, wo du auch z.B. die Schläger und den Ball lädst.

DrawImage Background,0,0

kommt vor alle anderen DrawImage Befehle

So muss es gehen!

robotx

Edit: Ich habe es bei mir mal getestet und es funktioniert einwandfrei.


Jo funtzt!!!!!
Danke für eure Bemühungen!!!

Schranz0r

BeitragFr, Sep 22, 2006 13:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Repeat
  CLS ;<<<<<<--------------GANZ AM ANFANG!!

   Drawimage Background,0,0
   alles andere


Flip ;<<<<<<<<<<-------- AM Ende!!!
Until keyhit(1)


Versuchs mal so !


Weil in deinen Code zeichnest du die Bilder, löschts sie, und flipst sie dann in den Vordergrund... kann net gehen
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • Zuletzt bearbeitet von Schranz0r am Fr, Sep 22, 2006 13:50, insgesamt 2-mal bearbeitet

D2006

Administrator

BeitragSa, Sep 23, 2006 12:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Er hat
Code: [AUSKLAPPEN]
Flip
Cls


Das kommt auf exakt das gleiche heraus, womit dein Post sinnfrei wird, Schranz0r.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group