*heul* Menüproblem --> Wie denn jetzt?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

DATIS

Betreff: *heul* Menüproblem --> Wie denn jetzt?

BeitragMi, Jan 04, 2006 19:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Blitzer!
Ich bin erbitterter anfänger und habe ein Problem.
Da ich zuerst mit C++ programmiert hab' ist das jetzt etwas problematisch...
Also, ich habe mir das Buch (jetzt lerne ich) Spiele Programmieren mit Blitz Basic gekauft. Einmal durchgerackert und bin auf ein folgendes Problem gestoßen:
1.Programm geschrieben (das zeige ich euch nicht)
2.N' Menü reingebaut
3.... Da bin ich noch net.
Denn der Fehler ist, dass das Menü nich funktiotutet.
Das nervt Twisted Evil !
Kann mir einer Helfen?
Frauen und Technik?
Männer und BHs?

Beides möglich.

bruZard

BeitragMi, Jan 04, 2006 19:59
Antworten mit Zitat
Benutzer-Profile anzeigen
*piep*

"Hier Vertragswerkstatt Hühserlohn, wie kann ich Ihnen helfen?"

"... da ist so ein graues Ding in meinem Auto ... das geht nicht, wieso geht das nicht?"

*klick*


So liest sich Deine Problembeschreibung.

Nachdenken, neu schreiben. Bis dahin:

Setzen -> 6
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

DATIS

Betreff: Also der Code:

BeitragMi, Jan 04, 2006 20:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Den hatte ich noch vergessen:
Code: [AUSKLAPPEN]
HAUPTMENU.BB
Graphics 800,600,32,1
hinter = LoadImage ("hilfe.bmp")
tiles = LoadImage ("blocks1.bmp")
maus = LoadImage ("pointer.bmp")
font = LoadFont("System", 40, 1, 0, 0)
dancer = LoadAnimImage("C:\WINDOWS\DATIS SYSTEM\anim.bmp",180,168,0,9)
SetFont font
Color 0,0,0

; 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(4) : Dim MenuName$(4)
MenuZeile(1) = 100 : MenuName$(1) = "Befehlsübersicht"
MenuZeile(2) = 200 : MenuName$(2) = "Über das Datis System"
MenuZeile(3) = 300 : MenuName$(3) = "Der Programmierer"
MenuZeile(4) = 400 : MenuName$(4) = "Zurück"

;
; Hauptmenü-Schleife
;
Repeat
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 Einstellungen()
  If Menu = 3 Then Ende()
  If Menu = 4 Then Ende()
 EndIf
 
 Until KeyHit(1)
End

;
; Funktionen für Menüpunkte
;

Function Start()
 Repeat
  Cls
  Text 100,100, "Spielstart"
  Flip
 Until KeyHit(1)
End Function

Function Einstellungen()
 Repeat
  Cls
  Text 100,100, "Einstellungen"
  Flip
 Until KeyHit(1)
End Function

Function Ende()
 End
End Function
Frauen und Technik?
Männer und BHs?

Beides möglich.

DATIS

Betreff: Und der Fehler:

BeitragMi, Jan 04, 2006 20:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Fehler:
Ich will eine animierte Grafik reinbauen.
Diese Graphik soll dann an einer bestimmten stelle stehen und sich bewegen.
Ich habs schon halbwegs versucht aber dan zeichnet er den curser und so weiter net.
FÜRCHTERLICH Exclamation

Außerdem hat er noch andere Probleme!!!!!
Frauen und Technik?
Männer und BHs?

Beides möglich.

bruZard

BeitragMi, Jan 04, 2006 20:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Erstmal:

Direkt nach dem "Repeat" muss das "Menu = 0" weg. Kein Schwein klickt so schnell dass er es schafft innerhalb eines Schleifendurchlaufs diesen Wert zu ändern.

Zweitens:
Code: [AUSKLAPPEN]

If MouseHit(1) Then
  If Menu = 1 Then Start()
  If Menu = 2 Then Einstellungen()
  If Menu = 3 Then Ende()
  If Menu = 4 Then Ende()
EndIf


Bevor Du das abfragst musst Du bei der Kollisionserkennung den Wert "Menu" auf Null setzen wenn sich nix getan hat. Aber auch wirklich _nur dann_.

Stelle Dir vor: Deine Schleife benötigt bei mir sicher kaum eine Millisekunde um durchzulaufen. Exakt soviel Zeit hätte ich um irgendwas anzuklicken.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

DATIS

Betreff: Achso

BeitragMi, Jan 04, 2006 20:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Achso.
Kannst du das auch als ganzen Quelltext schreiben - ich bin noch ein kind!
Und wie gesagt: erbitteter anfänger!
Frauen und Technik?
Männer und BHs?

Beides möglich.

bruZard

BeitragMi, Jan 04, 2006 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Nee, Freundchen. Das Denken nehme ich Dir ganz sicher nicht ab.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

DATIS

BeitragMi, Jan 04, 2006 20:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Schade
Frauen und Technik?
Männer und BHs?

Beides möglich.

Kryan

BeitragMi, Jan 04, 2006 20:22
Antworten mit Zitat
Benutzer-Profile anzeigen
das sieht mir aber sehr vom buch abgeschrieben aus

DATIS

Betreff: (Hab' ich jetzt einfach kopiert - reichte mir)

BeitragMi, Jan 04, 2006 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Besser so?
Code: [AUSKLAPPEN]
; HAUPTMENU.BB
Graphics 640,480
hinter = LoadImage ("stars.bmp")
tiles = LoadImage ("blocks1.bmp")
maus = LoadImage ("pointer.bmp")
font = LoadFont("Times New Roman", 40, 1, 0, 0)
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) = "Einstellungen"
MenuZeile(3) = 300 : MenuName$(3) = "Ende"

;
; Hauptmenü-Schleife
;
SetBuffer BackBuffer()
Repeat
 TileBlock hinter
 Menu = 0
 X = MouseX()
 Y = MouseY()
   
 For I=1 To 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

 DrawImage maus, X,Y
 Flip

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

;
; Funktionen für Menüpunkte
;

Function Start()
 Repeat
  Cls
  Text 100,100, "Spielstart"
  Flip
 Until KeyHit(1)
End Function

Function Einstellungen()
 Repeat
  Cls
  Text 100,100, "Einstellungen"
  Flip
 Until KeyHit(1)
End Function

Function Ende()
 Repeat
 Cls
 Text 100,100, "Ende"
 Flip
 Until KeyHit(1) Or KeyHit(57)
 End
End Function
Frauen und Technik?
Männer und BHs?

Beides möglich.

Kryan

BeitragMi, Jan 04, 2006 20:25
Antworten mit Zitat
Benutzer-Profile anzeigen
wo ist denn nun die animierte figur, die du unbedingt einbauen wolltest?

DATIS

Betreff: In der Tat

BeitragMi, Jan 04, 2006 20:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Gut, es klappt!
Wunderbar!
Aber ein Frägelchen hätte ich noch (Hauptproblem):
Wie kann ich jetzt noch ein zweites animiertes Bild reinpacken?
Wenn es alleine steht funktioniert es, aber ich weiß net, wo ich das ding plazieren soll!
user posted image
Frauen und Technik?
Männer und BHs?

Beides möglich.

DATIS

BeitragMi, Jan 04, 2006 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Erde isses!
Ich habe Sie mit einem Konverter in ein Bitmap umgewandelt!

Ach - habe ich gerade erst gesehen:
Zitat:
Das sieht aber sehr Selbstgeschrieben aus!


Nein leider net!
Ich habs mir von einer CD "fast" abgeschrieben!
Das meiste habe ich selbst versucht und jetzt habe ich oben (weil es mir reichte) einfach den original Quelltext kopiert!
Frauen und Technik?
Männer und BHs?

Beides möglich.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group