Wie kann ich ein menü mit einem Spiel verknüpfen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Splash

Betreff: Wie kann ich ein menü mit einem Spiel verknüpfen

BeitragDo, Okt 18, 2007 20:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab MAl Ne Frage und zwar: ie kann ich ein menü mit einem Spiel verknüpfen?? Hab schon tuts gemacht aber ich blick da noch nich so ganz durch vllt könnte mir das einer mal erklären ?!?!?!?!?!? Question Question Question

BladeRunner

Moderator

BeitragDo, Okt 18, 2007 20:05
Antworten mit Zitat
Benutzer-Profile anzeigen
~VERSCHOBEN~
Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde.

Mit SUCHEN, das gabs in Beginner grade erst.
Und in F&T gehören keine Anfragen.
EDIT: Und weniger Satzzeichen tun es auch.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

D2006

Administrator

BeitragDo, Okt 18, 2007 20:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Was willst du jetzt hören?

Eine Faustregel? Eine Wunderanleitung?

Bist du nicht der Meinung, dass das extrem davon abhängt, wie das Menü und das Spiel aufgebaut / strukturiert sind?

Hast du denn schon ein Spiel, was ein Menü braucht?
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
 

Mr Hopp

BeitragDo, Okt 18, 2007 21:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht wollte er ja einen kleinen Denkanstoß und mehr nicht haben? Rolling Eyes

Ich packe das gesammte Spiel in eine Funktion rein. Nun habe ich im Menü logischerweiße einen Start-Button. Drückt man nun auf diesen, wird die Funktion aufgerufen - das Spiel gestartet.

Beispielcode:
Code: [AUSKLAPPEN]
Graphics 400,300,0,2
SetBuffer BackBuffer()

Repeat
Cls

   ;Zeichnet den Start-Button
   Rect 150,100,100,20,0
   Text 200,110,"START",1,1
   
   ;Zeichnet den Ende-Button
   Rect 150,150,100,20,0
   Text 200,160,"ENDE",1,1
   
   ;Bei Mausklick...
   If MouseHit(1) Then
      If MouseX()>150 And MouseX()<250 And MouseY()>100 And MouseY()<120 Then   spiel     ;Per Start-Button wird das Spiel gestartet
      If MouseX()>150 And MouseX()<250 And MouseY()>150 And MouseY()<170 Then End      ;Per Ende-Button wird das Programm beendet
   EndIf
   
Flip
Until KeyHit(1)

;-------------------------------------------------------------------------------------------------------

Function spiel()
   Cls
   Locate 0,0
   For i=1 To 10
      Print i
      Delay(1000)
   Next
   Print "Spiel beendet! Taste drücken, um ins Menü zu kommen"
   WaitKey
End Function


Anmerkung: Code oberhalb der Linie: Menü. Unterhalb der Linie: Spiel an sich
Zitat:
Wie poste ich falsch?

Nachdem ich Google, die FAQ's und die Boardsuche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen, in den falschen Unterforen, mit kreativen Titeln und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann.

mabox

BeitragDo, Okt 18, 2007 21:15
Antworten mit Zitat
Benutzer-Profile anzeigen
https://www.blitzforum.de/foru...hp?t=25571
Schau mal da rein.........der Beitrag von Bladerunner.
Vllt hilft dir das Wink

mfg
Maurits
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage
 

Splash

Betreff: Thx

BeitragFr, Okt 19, 2007 15:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die antworten klappt soweit aber wenn ich auf Spiel starten gehe, dann kommt: "Illegaly Memory Adress".

Kann mir jmd vllt erklärn was das bedeutet????

The_Nici

BeitragFr, Okt 19, 2007 15:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Falsche Speicher Adresse

Englisch?
 

Splash

BeitragFr, Okt 19, 2007 15:29
Antworten mit Zitat
Benutzer-Profile anzeigen
und wie behebe ich das problem??

BladeRunner

Moderator

BeitragFr, Okt 19, 2007 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Schalte bitte den Debugger an, dann wirst Du aller Voraussicht nach eine bessere Fehlerbeschreibung bekommen. Ich vermute am ehesten werden Bilder nicht mehr gefunden weil Du nach ihrem Laden ein neues Graphics hast oder weil die Variablen nicht mehr gültig sind.

The_nici, Du flutest letzterdings das Forum häufiger mit nichtssagenden Einzeilern in denen Du wohl demonstrieren willst dass Du den Kinderschuhen entwachsen bist. Leider wirkst Du damit allenfalls überheblich, und meist postest Du offensichtliches mit geringschätzigem Tonfall. Lass den Quark bitte.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Splash

BeitragFr, Okt 19, 2007 17:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich hab ma n bissle rum proniert bin aber zukeinem ergebnis gekommen .
es existieren alle Grafik dateien...
 

wutzili

Betreff: Re: Thx

BeitragFr, Okt 19, 2007 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Splash hat Folgendes geschrieben:
.........

????


Also ich habe mein mein aufbau nach mehrmaligen Hilfestellungen supper hinbekommen

also ich habe ne Main loop (Grafik usw) die in ner schleife läuft und schaut welcher zustand (also Buttom gedrückt wurde) gerade aktuell ist. Dann eine globale.bb wo ich halt alle variablen habe und die zu landenden Bilder halt. Die einzelnen Programmebenen (Functionen) sind alle eigene code.bb die über include in der Main aufgeruffen werden. Und eine schalter.bb der das schalten der gamezustand 1 an oder 15 an steuert. Klapt wunderbar! Vieleicht kann ich Dir ja mit meinem nichteinmal Halbwissen helfen. Smile
 

Splash

BeitragFr, Okt 19, 2007 17:36
Antworten mit Zitat
Benutzer-Profile anzeigen
vllt auch ne einfachere Lösung??? ^^
 

wutzili

BeitragFr, Okt 19, 2007 17:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Splash hat Folgendes geschrieben:
vllt auch ne einfachere Lösung??? ^^


Glaube mir das ist einfach Wink

BladeRunner

Moderator

BeitragFr, Okt 19, 2007 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Ohne Code werden wir dir nicht helfen können.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Splash

BeitragFr, Okt 19, 2007 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Graphics3D 640,480,16,2
SetBuffer BackBuffer()


; -----------------------------------------------------------------------------------------------------------------
; MENÜ
; -Bilder laden
schlaeger = LoadImage("Balken.bmp")
MaskImage schlaeger,0,0,255

ball = LoadImage("Ball.bmp")
MaskImage ball,0,0,255

Platte = LoadImage("platte.bmp")

schlaegerb = LoadImage("Balkenb.bmp")
MaskImage schlaegerb,0,0,255

; - Bilder Laden

starten = LoadImage("SpielStarten.bmp")
MaskImage starten,0,0,0

startenp = LoadImage("SpielStartenPressed.bmp")
MaskImage starten,0,0,0

beenden = LoadImage("Beenden.bmp")
MaskImage beenden,0,0,0

beendenp = LoadImage("beendenpressed.bmp")
MaskImage beendenp,0,0,0

Mauspfeil = LoadImage("Mauspfeil.bmp")
MaskImage Mauspfeil,0,0,255
Winkel = 290
RotateImage Mauspfeil,Winkel                     ; -> Winkel ändern
MidHandle Mauspfeil   
                  
;-----------------------------------------------------------------------------------------


Function Ende()                              ; -> Beenden Funktion
End
End Function


Repeat
Cls

; - Bilder Zeichnen


DrawImage starten,200,100
DrawImage beenden,200,300
kanal = PlayMusic("bgm.wav")
 

; - Mauszeiger in Betrieb nehmen

Mausx = MouseX()
Mausy = MouseY()


; - Einstellung für Buttonveränderung

If ImagesCollide(starten,200,100,0,Mauspfeil,Mausx,Mausy,0) Then
DrawImage startenp,200,100
EndIf


If ImagesCollide(beenden,200,300,0,Mauspfeil,Mausx,Mausy,0) Then
DrawImage beendenp,200,300
EndIf


; - Mausklick

If MouseHit (1)
If ImagesCollide(starten,200,100,0,Mauspfeil,Mausx,Mausy,0) Then
Start()
ElseIf ImagesCollide(beenden,200,300,0,Mauspfeil,Mausx,Mausy,0) Then
Ende()
EndIf
EndIf


; - Mauspfeil zeichnen

DrawImage Mauspfeil,Mausx,Mausy

; - Mauspfeil verstecken

HidePointer()

Flip()

Until KeyHit (1)






; ---------------------------------------------------------------------------------------------------------------------
;   HAUPTSPIEL

; -Sounds Laden
Wandtreffer = LoadSound("Wandtreffer.wav")
Punkttreffer = LoadSound("Punkttreffer.wav")

; -Globale Variablen
Global Ballx = 320
Global Bally = 240
Global Speed = 3
Global xspeed = Speed
Global yspeed = Speed
Global Punkte%

Function Start()
Repeat

Cls

; - Cheat  NOCH NICHT FERTIG!!!!

If KeyHit(20) Then
Speed = 3
End If


; - Hintergrund Zeichnen
DrawImage Platte,0,0

; -Schlaegerposition
schlaegerx = 100
schlaegery = MouseY()

;-Ball bewegen
Ballx = Ballx + xspeed
Bally = Bally + yspeed

;-Bally Abfrage
If Bally > 480 - ImageHeight(Ball) Or Bally < 0 Then
PlaySound Wandtreffer
yspeed = -yspeed
EndIf

;-Ballx Abfrage
If Ballx > 640 - ImageWidth(Ball) Or Ballx < 0 Then
PlaySound Wandtreffer
xspeed = -xspeed
EndIf

;-SchlaegerY Abfrage
If Schlaegery > 480 - ImageHeight(schlaeger) Then
Schlaegery = 480 - ImageHeight(schlaeger)
EndIf

;-Kollisionsabfrage
If ImagesCollide (schlaeger,Schlaegerx,Schlaegery,0,Ball,Ballx,Bally,0) Then
Punkte% = Punkte% + 1
xspeed = -xspeed
PlaySound Punkttreffer
xspeed = xspeed + 1
EndIf

;-Game Over Abfrage
If Ballx < 100 Then
Cls
Text 320,240,"Game Over",1,1
Text 320,260,"Erreichte Punkte:"+Punkte%,1,1
If Punkte% > 1 Then
Print"Sie haben einen neuen Highscore erreicht"
Print Highscore
End If
Flip()
Delay 4000
End
EndIf

;-Spielaus-Linie
Line 99,0,99,480

;-Bilder zeichnen
DrawImage Ball,Ballx,Bally
DrawImage schlaeger, Schlaegerx, Schlaegery
If KeyHit(20) Then
DrawImage schlaegerb, Schlaeger,Schlaegery
End If
;-Punkte anzeigen
Text 0,10,"Punkte :"+Punkte%

;-Bildpuffer tauschen
HidePointer()
Flip()
Until KeyHit (1)
End Function



Nebenbei ich wollt n sound einbaun aber wenn ich playmusic mache kommt nur soen rauschen^^
 

wutzili

BeitragFr, Okt 19, 2007 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Splash hat Folgendes geschrieben:
Dein Code....


Eine Frage: ist das alles in ein und der selben datei?
Also irgendwas.bb halt


Die Bilder im oberen Teil wo Du alle globalen haben solltest haben halt kein Global davor,
und mitten im Code haste auf einmal Globale.
 

Splash

BeitragFr, Okt 19, 2007 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin n ziemlicher neuling erklär mir wie ichs besser machen soll^^^

Eingeproggt

BeitragFr, Okt 19, 2007 18:17
Antworten mit Zitat
Benutzer-Profile anzeigen
wutzili meint wohl, du sollst die globalen Variablen am Anfang deklarieren. Dient ein wenig der Übersicht, ist aber kein Fehler solange du eine Varialbe nicht zweimal deklarierst (Blitz würde dann eh einen Fehler ausgeben)

Ich gebe dir zu dem Code noch einen Tip, wie du die Übersicht verbessern kannst:
Einrücken.
Das heißt, jedesmal wenn ein Block "eröffnet" wird, die Zeile um einen Tabulator-Schritt weiter einrücken.

Aus
Code: [AUSKLAPPEN]
If x=1000 Then
Print "Hallo"
WaitKey()
Endif


würde dann
Code: [AUSKLAPPEN]
If x=1000 Then
  Print "Hallo"
  WaitKey()
Endif


Was die Erkennung für andere Menschen erleichtert und sie dir dann schneller und besser helfen können.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
 

Splash

BeitragFr, Okt 19, 2007 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
OK das is t ein guter Tipp aber was ist jetzt mit dem eigentlichen Problwem??

Ok das Problem mit der Msik ist gelöst!!
Der befehl stand an der falschen stelle!!!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group