Namenseingabe für spätere Highscoreliste??
Übersicht

Desantes |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich will das er mir die Gesamtpunkte später in einer Highscoretabelle anzeigt. Ich hab schon spasseshalber mal In der Function Menü() Print
Spieler_punkti% eingegeben, leider ohne Wirkung . Er zeigt mir dann immer 0 Punkte an. Woran kann das liegen? Mfg Desantes |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
hast du die variable als Global deklariert?
Global Spieler_punkti% |
||
[BB2D | BB3D | BB+]
|
Desantes |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn ich das Global in der Schleife davor setze bekomme ich folgende Fehlermeldung.
"Global can only appear in main programm" Hab schon versucht das Gloabbl inkl .der Variablen in das Hauptprogramm zu schreiben, was aber leider auch ohne Wirkung blieb. Mfg Desantes |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Global muß die Variable gemacht werden im Haiuptteil
bevor diese benutzt wird und das nur einmal wenn es dann nicht geht, hast du der Variablen noch keinen Wert zugewiesen oder diesen vorher wieder zurück gesetzt auf 0 bevor du ihn mit Print ausgibst |
||
[BB2D | BB3D | BB+]
|
Desantes |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es klappt einfach nicht hat den keiner NE Idee zur Lösung des Problems?
Mfg Desantes |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn der letzte code den du hier gepostet hast der aktuelle ist dann scau dir mal die Variablennamen mal genauer an
Spieler_punkti% und Spieler_punktei% fällt dir was auf ja... sind veschieden dann sag mal ob der code aktuell ist oder nicht?! |
||
[BB2D | BB3D | BB+]
|
- Zuletzt bearbeitet von Rallimen am Fr, Feb 13, 2004 23:13, insgesamt einmal bearbeitet
Desantes |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab ich schon abgeändert, leider ohne erfolg.
Zudem tritt noch ein anderes Phänomen auf, ich hab den Code mal nen bisschen abgespeckt und einfach mal die in Function Spiel() nen "Print Computerpunkte" eingesetzt. Nun gibt er mir in der mitte des Bildschirmes zwar Punkte aus nur sind das leider nicht die Punkte des Computers sondern die des Spielers und zweitens habe ich den Punktezähler nirgends in der Schleife als Variable definiert , wie kommt er dann an die Ausgabewerte? Code: [AUSKLAPPEN] ;Start Menü
SetBuffer BackBuffer() Graphics 640,480,16,2 Hintergrund = LoadImage("Startbild.bmp") ;Zuweisen des Hintergrundbildes DrawImage Hintergrund,Hintergrund_y,Hintergrund_x ;Starten des Hintergrundbildes While Not KeyHit(1) If KeyDown(2) Then Spiel If KeyDown (1) Then Menü If KeyDown (5) Then End Wend ;Das eigentliche Spiel Function Spiel() Graphics 640,480,16,2 ;Grafik und Auflösung AppTitle "Pong" ;Titel SetBuffer BackBuffer() ; Buffer für die Grafik BAll = LoadImage("Ball.bmp") ; zuweisen der Bilder Computer=LoadImage ("Schläger.bmp") Spieler=LoadImage("Schläger.bmp") Spieler_x=30 ;Variable und Position des Spielers Spieler_y=400 Computer_x=600 ;Variable und position des Computers Computer_y=420 SpeedX = 7 ; Anfangsgeschwindigkeit SpeedY = 7 BAll_x = 50 ; Ball Position BAll_y = 100 While Not KeyHit(1) ;Ende des Spieles durch drücken von ESC If KeyDown (200) ;Schläger bewegung des Spielers Spieler_y=Spieler_y-4 If Spieler_y<0 Then Spieler_y=0 EndIf If KeyDown (208) Spieler_y=Spieler_y+4 If Spieler_y>400 Then Spieler_y=400 EndIf ; Collison zwischen Schläger und Ball If ImagesCollide(Spieler,Spieler_x,Spieler_y,0,BAll,Ball_x,Ball_y,0) Then SpeedX= SpeedX-(2*SpeedX) If ImagesCollide(BAll,Ball_x,Ball_y,0,Computer,Computer_x,Computer_y,0) Then SpeedX= SpeedX-(2*SpeedX) If BAll_x<1 Then Spielerpunkte=Spielerpunkte+10 ; Punktezähler des Players If Ball_x>600 Then Computerpunkte=Computerpunkte+10 ; Punktezähler des Computer If Computer_y>400 Then Computer_y=400 ; Bewegungsende des Computer If Computer_y<0 Then Computer_y=0 ; Nicht über den Rand hinaus gehen random = Rand(1,10) ; Zufalls generator If Ball_y>Computer_y Then ; If random = 1 Then Computer_y=Computer_y Else Computer_y=Computer_y-Rand(4,10) EndIf If Ball_y<Computer_y Then If random = 1 Then Computer_y = Computer_y Else Computer_y=Computer_y+Rand(4,10) EndIf Cls ; Laden des Designs für den Ball DrawImage Ball,Ball_x,Ball_y ;Collsion mit den Rändern oder dem BAll If Ball_x<1 Or Ball_x>GraphicsWidth()-40 Then Ball_x=Rand(50,300) Ball_y=Rand(60,400) VelX=Rand(5,8) VelY=Rand(5,8) If Ball_y<1 Or Ball_y>GraphicsHeight()-40 Then SpeedY =- SpeedY ;Modernisieren der Ball position Ball_x = BAll_x + SpeedX Ball_y = Ball_y + SpeedY DrawImage Spieler,Spieler_x,Spieler_y ; Design des Spielers DrawImage Computer,Computer_x,Computer_y ; Design des Computer ; Tabellen Position Text 300,0,Computerpunkte,1 Text 340,0,Spielerpunkte,1 ; Tabellen Text Locate 220,1 Print "Player" Locate 370,1 Print"Hall 3000" Locate 300, 200 Print Computerpunkte If Spielerpunkte=>30 Then Name ;Spielende bei 1 Ball im aus ; Buffer Flip Wend ; Wiederholung der While Schleife() End Function ;Spielende und Namenseingabe für die Highscore Function Name() ; Function der Namenseingabe FlushKeys() Graphics 640,480,16,2 SetBuffer BackBuffer() Name=LoadImage ("Nameneingabe.bmp") Print Computer_punkti DrawImage Name, Name_x, Name_y Locate 200,350 ;Namenseingabe spielername$ = Input(" ") ;Variablenname des Spielers End ; Spielende - Sprung aus der Schleife (muß später versetzt werden) End Function ; Function des Hauptmenüs, bis jetzt noch ohne Funktion Function Menü() SetBuffer BackBuffer() Graphics 640,480,16,2 Hintergrund = LoadImage("Startbild.bmp") ;Laden des Startbilschirmes DrawImage Hintergrund,Hintergrund_y,Hintergrund_x While Not KeyHit(1) If KeyDown(2) Then Spiel If KeyDown (1) Then Menü If KeyDown (5) Then End Wend End Function Mfg Desantes |
||
Desantes |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Weiß den keiner RAt?
Ich bin echt schon am verzweifeln!! Desantes |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
setz das ganz oben rein
Code: [AUSKLAPPEN] Global Spielerpunkte,Computerpunkte
und so mußt du das ändern dann gehts auch Code: [AUSKLAPPEN] Function Name() ; Function der Namenseingabe
FlushKeys() Graphics 640,480,16,2 SetBuffer BackBuffer() Name= LoadImage ("Gfx/Auswahlpfeil.bmp") ;Color 100,100,100 Locate 10,250 ;Namenseingabe Print Computerpunkte + " PC Punkte";<<<<<<<<<<<<<<<<<<<<<<<<<<<<< fehler Print Spielerpunkte + " Player Punkte" Locate 200,350 ;Namenseingabe DrawImage Name, Name_x, Name_y spielername$ = Input(" ") ;Variablenname des Spielers End ; Spielende - Sprung aus der Schleife (muß später versetzt werden) End Function und mach das besser mit text und Flip ; hab mich jetzt allerdings an deinen Programmstiel gehalten |
||
[BB2D | BB3D | BB+]
|
Desantes |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich bin dir zu tausendfachen Dank verfallen. Es funzt nu einwandfrei.
NAchdem ich den alten Printbefehl gegen "Print punkte + Spielerpunkte" ersetzt habe und die sortieroutine des Punktezählers beglichen habe funzt alles einwandfrei und ich kann endlich die Variable in die Bubble Sort übernehmen. Vielen Dank nochmal für deine Mühe Sascha |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group