Name einsetzen(erledigt)

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Flori-D

Betreff: Name einsetzen(erledigt)

BeitragMi, Jan 21, 2004 11:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.Warum functioniert das nicht?

Code: [AUSKLAPPEN]
;Name eingeben
Print "Bitte geben sie den Namen von Spieler1 ein"
Name$ = Input$("Name: ")
Print "Viel Spass beim Spiel "+ Name$ +" ."
Print "Bitte geben sie den Namen von Spieler ein."
Name2$ = Input$("Name: ")
Print "Viel Spass beim Spiel "+ Name2$ +" ."
Delay 200
Bis hierhin funktioniert das noch aber hier:
Code: [AUSKLAPPEN]
;Regeln
If PunktX = 640 Then
Text 250,250, " "+ Name2$ +" hat Veloren" <<Name wird nicht angezeigt
Flip
Delay 2000
Return 0
EndIf

;Regeln2
If PunktX = 0 Then
Text 250,250, " "+ Name$+" hat Veloren" <<<Name wird nicht angezeigt
Flip
Delay 2000
Return 0
EndIf
Hier zeigt er den NAmen nicht an.
BB is Macht!

Homepage: www.flori-d.de
  • Zuletzt bearbeitet von Flori-D am Mi, Jan 21, 2004 15:49, insgesamt einmal bearbeitet

Hubsi

BeitragMi, Jan 21, 2004 12:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Schlecht zu sagen. Hast Du das in einer Function? Dann Global machen oder übergeben. Und grundsätzlich nur einmal Flip verwenden, like so:
Code: [AUSKLAPPEN]
Repeat
; lustiger Code

Flip
Until irgendwas
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

BIG BUG

BeitragMi, Jan 21, 2004 12:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich kombiniere mal, dass du Name$ und Name2$ nicht als Global definiert hast. Am Besten zeigst du bei sowas die gesamte Funktion.

Außerdem solltest du Rand-Koordinaten nicht mit "=" abfragen sondern mit ">=" und "<=", damit das Spiel auch auf unerwartete Situationen reagieren kann.
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)

Flori-D

BeitragMi, Jan 21, 2004 12:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier mal das stückchen Code bis dahin:Code: [AUSKLAPPEN]
Graphics 640,480
SetBuffer BackBuffer()
AppTitle "Ultimate Tennis"

;Name eingeben
Print "Bitte geben sie den Namen von Spieler1 ein"
Name$ = Input$("Name: ")
Print "Viel Spass beim Spiel "+ Name$ +" ."
Print "Bitte geben sie den Namen von Spieler ein."
Name2$ = Input$("Name: ")
Print "Viel Spass beim Spiel "+ Name2$ +" ."
Delay 200

Graphics 640,480,16,1
Global tiles = LoadImage ("GFX/blocks1.bmp")
Global maus = LoadImage ("GFX/pointer.bmp")
Global font = LoadFont("Times New Roman", 40, 1, 0, 0)
Global Kiste = LoadImage("GFX/Kiste.bmp")
Global Spieler1 = LoadImage("GFX/Kiste2.bmp")
Global Punkt = LoadImage("GFX/Punkt.bmp")
Global schlag = LoadSound("Sound/004.wav")
Global background = LoadSound("Sound/Dreamland.mp3")
Global hintergrund = LoadImage("GFX/Tennisfeld.bmp")
Global PunktX
Global PunktY
Global PunktDirX
Global PunktDirY

SetFont font
; Graphik für Menüpunkt erzeugen

stein = CreateImage(32,32)
SetBuffer ImageBuffer(stein)
DrawImageRect tiles, 0, 0, 444, 308, 32, 32
ScaleImage stein, 8, 2

; Graphik für aktiven Spielstein erzeugen

aktivstein = CreateImage(32,32)
SetBuffer ImageBuffer(aktivstein)
DrawImageRect tiles, 0, 0, 2, 342, 32, 32
ScaleImage aktivstein, 8, 2

; Menü definieren

Dim MenuZeile(3) : Dim MenuName$(3)
MenuZeile(1) = 100: MenuName$(1) = "Start"
MenuZeile(2) = 200 : MenuName$(2) = "Spezial"
MenuZeile(3) = 300 : MenuName$(3) = "Ende"

;
; Hauptmenü-Schleife
;
SetBuffer BackBuffer()
Repeat
 TileBlock hintergrund
 Menu = 0
 X = MouseX()
 Y = MouseY()
   
 For I=1 To 4
  If ImageRectOverlap (maus, X, Y, 192, 100*I, 256, 64) Then
   DrawImage aktivstein, 192, I * 100
   Menu = I
  Else
   DrawImage stein, 192, I * 100
  EndIf
  Text (640 - StringWidth( MenuName$(I) )) / 2, I*100 + 12, MenuName$(I)
 Next

 DrawImage maus, X,Y
 Flip

 If MouseHit(1) Then
  If Menu = 1 Then Start()
  If Menu = 2 Then Spezial()
  If Menu = 3 Then Ende()
 EndIf
 
 Until KeyHit(1)
End

;
; Funktionen für Menüpunkte
;

Function Start()
 Repeat
  Cls
  SetBuffer BackBuffer()

;Konstanten:
 PlayerSpeed=5

;Startdaten für den Ball
PunktX=100
PunktY=100
PunktDirX=2
PunktDirY=-2

;Kiste zeichnen;
 X = 360
 Y = 350
 X2 = 150
 Y2 = 150

 hinterx = Rand(0,640)
 hintery = Rand(0,480)

 Timer=CreateTimer(50)
;hintergrundsound
PlaySound (background)
Repeat
WaitEvent(Timer)
Cls
DrawImage hintergrund, 0,0
DrawImage Kiste, X,Y
DrawImage Spieler1, X2,Y2

;Bewegung der Kiste;
If KeyDown(200) = 1 Then Y = Y - PlayerSpeed
If KeyDown(208) = 1 Then Y = Y + PlayerSpeed
If KeyDown(205) = 1 Then X = X + PlayerSpeed
If KeyDown(203) = 1 Then X = X - PlayerSpeed

;MC Ball bewegen:
PunktX=PunktX+PunktDirX
PunktY=PunktY+PunktDirY

;Randteste Ball
If PunktY <= 30 Then PunktDirY=BallDirY*-2
If PunktY => 450 Then PunktDirY=BallDirY*-2


;Regeln
If PunktX = 640 Then
Text 250,250, " "+ Name2$ +" hat Veloren"
Flip
Delay 2000
Return 0
EndIf

;Regeln2
If PunktX = 0 Then
Text 250,250, " "+ Name$+" hat Veloren"
Flip
Delay 2000
Return 0
EndIf
BB is Macht!

Homepage: www.flori-d.de

Tobchen

BeitragMi, Jan 21, 2004 13:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich's richtig sehe, befindet sich die Anzeige, wer gewonnen hat, in einer Funktion (Du solltest mal einrücken.). Und die Variablen Name$ und name2$ müssen globalisiert werden. So, wie die anderen beiden es dir schon geschrieben haben. Setze einfach an den Anfang des Codes:
Code: [AUSKLAPPEN]
Global Name$
Global Name2$

Und alles ist wieder gut.
Tobchen - die Welt von Tobi!

Flori-D

BeitragMi, Jan 21, 2004 13:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab das jetzt davof gesetzt.Jetzt kommt aber bei(<<<<)der fehler Array Indexout of bons.Das war vorher nicht.
Code: [AUSKLAPPEN]
Graphics 640,480
SetBuffer BackBuffer()
AppTitle "Ultimate Tennis"

Global Name$
Global Name2$
;Name eingeben
Print "Bitte geben sie den Namen von Spieler1 ein"
Name$ = Input$("Name: ")
Print "Viel Spass beim Spiel "+ Name$ +" ."
Print "Bitte geben sie den Namen von Spieler ein."
Name2$ = Input$("Name: ")
Print "Viel Spass beim Spiel "+ Name2$ +" ."
Delay 200

Graphics 640,480,16,1
Global tiles = LoadImage ("GFX/blocks1.bmp")
Global maus = LoadImage ("GFX/pointer.bmp")
Global font = LoadFont("Times New Roman", 40, 1, 0, 0)
Global Kiste = LoadImage("GFX/Kiste.bmp")
Global Spieler1 = LoadImage("GFX/Kiste2.bmp")
Global Punkt = LoadImage("GFX/Punkt.bmp")
Global schlag = LoadSound("Sound/004.wav")
Global background = LoadSound("Sound/Dreamland.mp3")
Global hintergrund = LoadImage("GFX/Tennisfeld.bmp")
Global PunktX
Global PunktY
Global PunktDirX
Global PunktDirY

SetFont font
; Graphik für Menüpunkt erzeugen

stein = CreateImage(32,32)
SetBuffer ImageBuffer(stein)
DrawImageRect tiles, 0, 0, 444, 308, 32, 32
ScaleImage stein, 8, 2

; Graphik für aktiven Spielstein erzeugen

aktivstein = CreateImage(32,32)
SetBuffer ImageBuffer(aktivstein)
DrawImageRect tiles, 0, 0, 2, 342, 32, 32
ScaleImage aktivstein, 8, 2

; Menü definieren

Dim MenuZeile(3) : Dim MenuName$(3)
MenuZeile(1) = 100: MenuName$(1) = "Start"
MenuZeile(2) = 200 : MenuName$(2) = "Spezial"
MenuZeile(3) = 300 : MenuName$(3) = "Ende"

;
; Hauptmenü-Schleife
;
SetBuffer BackBuffer()
Repeat
 TileBlock hintergrund
 Menu = 0
 X = MouseX()
 Y = MouseY()
   
 For I=1 To 4
  If ImageRectOverlap (maus, X, Y, 192, 100*I, 256, 64) Then
   DrawImage aktivstein, 192, I * 100
   Menu = I
  Else
   DrawImage stein, 192, I * 100
  EndIf
  Text (640 - StringWidth( MenuName$(I) )) / 2, I*100 + 12,<<<<< MenuName$(I)
 Next

 DrawImage maus, X,Y
 Flip

 If MouseHit(1) Then
  If Menu = 1 Then Start()
  If Menu = 2 Then Spezial()
  If Menu = 3 Then Ende()
 EndIf
 
 Until KeyHit(1)
End

;
; Funktionen für Menüpunkte
;

Function Start()
 Repeat
  Cls
  SetBuffer BackBuffer()

;Konstanten:
 PlayerSpeed=5

;Startdaten für den Ball
PunktX=100
PunktY=100
PunktDirX=2
PunktDirY=-2

;Kiste zeichnen;
 X = 360
 Y = 350
 X2 = 150
 Y2 = 150

 hinterx = Rand(0,640)
 hintery = Rand(0,480)

 Timer=CreateTimer(50)
;hintergrundsound
PlaySound (background)
Repeat
WaitEvent(Timer)
Cls
DrawImage hintergrund, 0,0
DrawImage Kiste, X,Y
DrawImage Spieler1, X2,Y2

;Bewegung der Kiste;
If KeyDown(200) = 1 Then Y = Y - PlayerSpeed
If KeyDown(208) = 1 Then Y = Y + PlayerSpeed
If KeyDown(205) = 1 Then X = X + PlayerSpeed
If KeyDown(203) = 1 Then X = X - PlayerSpeed

;MC Ball bewegen:
PunktX=PunktX+PunktDirX
PunktY=PunktY+PunktDirY

;Randteste Ball
If PunktY <= 30 Then PunktDirY=BallDirY*-2
If PunktY => 450 Then PunktDirY=BallDirY*-2


;Regeln
If PunktX = 640 Then
Text 250,250, " "+ Name2$ +" hat Veloren"
Flip
Delay 2000
Return 0
EndIf

;Regeln2
If PunktX = 0 Then
Text 250,250, " "+ Name$+" hat Veloren"
Flip
Delay 2000
Return 0
EndIf
BB is Macht!

Homepage: www.flori-d.de

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMi, Jan 21, 2004 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Fehler liegt an dieser schleife
Code: [AUSKLAPPEN]
 For I=1 To 4 ; dimfeld ist nur Dim MenuName$(3);<<<<<<<<<<<
  If ImageRectOverlap (maus, X, Y, 192, 100*I, 256, 64) Then
   DrawImage aktivstein, 192, I * 100
   Menu = I
  Else
   DrawImage stein, 192, I * 100
  EndIf
  Text (640 - StringWidth( MenuName$(I) )) / 2, I*100 + 12,<<<<< MenuName$(I)
 Next

entweder die schleife von 0 to 3
oder Dim MenuName$(4), wobei die namen dann auch anders zugewiesen werden müssen
[BB2D | BB3D | BB+]

Flori-D

BeitragMi, Jan 21, 2004 15:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh,ich trottel. Embarassed Der fehler stammt noch von einer vorheriegen Menü function. Embarassed
BB is Macht!

Homepage: www.flori-d.de

Flori-D

BeitragMi, Jan 21, 2004 15:47
Antworten mit Zitat
Benutzer-Profile anzeigen
So es geht jetzt.THX,
BB is Macht!

Homepage: www.flori-d.de

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group