Pointer bewegt sich nich

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

BLACK_FALL

Betreff: Pointer bewegt sich nich

BeitragDo, Sep 16, 2004 22:14
Antworten mit Zitat
Benutzer-Profile anzeigen
also so langsam bin ichs leid mit dem neuanfang!!!
ich hab ein menü gebaut bzw wollte!!!
am anfang ging ja noch alles bis sich der mauszeiger auf einmal nicht mehr bewegte !!!
wisst ihr vieleicht wo dran es liegen könnte??
Code: [AUSKLAPPEN]
Graphics 800,600
SetBuffer BackBuffer()

Global Back = LoadImage("graphics\main\Back.jpg")
Global ButStart = LoadImage("graphics\main\Start.jpg")
Global Pointer = LoadImage("graphics\main\Pointer.png")
Global MausX = MouseX()
Global MausY = MouseY()
MaskImage ButStart,0,255,0
MaskImage Pointer,0,255,0

Repeat
Hauptmenue(0)
Flip
Cls
Until KeyHit(1)

Function Hauptmenue(a)
DrawImage Back,0,0
DrawImage ButStart,260,220
DrawImage Pointer,MausX,MausY
If MouseDown(1) Then
If ImagesOverlap(Pointer,MausX,MausY,ButStart,260,220) Then End
End If
End Function
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
°°°!!!!BLITZ BASIC 4 EVER!!!!°°°°
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
 

Timo

BeitragDo, Sep 16, 2004 22:28
Antworten mit Zitat
Benutzer-Profile anzeigen
du musst in der Schleife die Maus-Koordinaten aktualisieren...
Code: [AUSKLAPPEN]
Graphics 800,600
SetBuffer BackBuffer()

Global Back = LoadImage("graphics\main\Back.jpg")
Global ButStart = LoadImage("graphics\main\Start.jpg")
Global Pointer = LoadImage("graphics\main\Pointer.png")
Global MausX = MouseX()
Global MausY = MouseY()
MaskImage ButStart,0,255,0
MaskImage Pointer,0,255,0

Repeat
MausX = MouseX()
MausY = MouseY()
Hauptmenue(0)
Flip
Cls
Until KeyHit(1)

Function Hauptmenue(a)
DrawImage Back,0,0
DrawImage ButStart,260,220
DrawImage Pointer,MausX,MausY
If MouseDown(1) Then
If ImagesOverlap(Pointer,MausX,MausY,ButStart,260,220) Then End
End If
End Function


nicht ausprobiert, sollte aber funktionieren Wink
PS: und warum übergibst du der Funktion Hauptmenue() einen Wert, wenn du ihn in der Funktion garnicht benutzt?
  • Zuletzt bearbeitet von Timo am Do, Sep 16, 2004 22:29, insgesamt einmal bearbeitet
 

Dom

BeitragDo, Sep 16, 2004 22:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Ups. verlesen.
  • Zuletzt bearbeitet von Dom am Do, Sep 16, 2004 22:29, insgesamt einmal bearbeitet
 

David

BeitragDo, Sep 16, 2004 22:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Neuanfang nennst du das? Konntest du schonmal programmieren?
Du musst die Mauskoordinaten natürlich bei jedem Schleifendurchlauf updaten.

Edit: Hachje, Timo war schneller Smile

grüße
http://bl4ckd0g.funpic.de

BLACK_FALL

BeitragFr, Sep 17, 2004 8:58
Antworten mit Zitat
Benutzer-Profile anzeigen
JA ich konnte schonmal proggen aber halt nich so gut weil ich nich lange durgehalten hab!!!jetzt versuch ich halt nen neuanlauf
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
°°°!!!!BLITZ BASIC 4 EVER!!!!°°°°
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

BLACK_FALL

BeitragFr, Sep 17, 2004 20:54
Antworten mit Zitat
Benutzer-Profile anzeigen
ok ich werds versuchen!!!
aver ich hab jetzt schon wieder n paar probs!!!
kann man aus einer function eine andere function aufrufen??
Wenn nich wie kann ich dann Hauptmenü und Spiel anders aufrufen??
ich will das so haben das ich jeder zeit das hauptmenü und spiel aufrufen kann!!!
desshalb das mit den functionen
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
°°°!!!!BLITZ BASIC 4 EVER!!!!°°°°
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
 

David

BeitragFr, Sep 17, 2004 21:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Natürlich kannst du aus einer Funktion eine andere aufrufen.
Wieso versuchst du's nicht einfach?

grüße
http://bl4ckd0g.funpic.de

Gina

BeitragFr, Sep 17, 2004 21:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

also mein Spiel besteht nur aus Funktionen und da hüpfe ich zwischen denen hin und her. Du mußt halt nur aufpassen, dass vor dem Ende der Funktion auch ein Ziel vermerkt ist...

etwa so:

Function menue()
...
wenn auf startspiel geklickt dann spiel()
wenn Spiel laden dann laden()
wenn auf beenden dann beenden()
...
End Function

Function Spiel()
...
wenn Esc gedrückt dann Menue()
bei Spielende Highscore()
...
End Function

und so weiter...

Gina.
www.jk-spiele.de

BLACK_FALL

BeitragSa, Sep 18, 2004 10:05
Antworten mit Zitat
Benutzer-Profile anzeigen
hey danke!!! ich werde es jetzt mal versuchen und dann nochma schreiben ob es funktionier oder nich

och man:-( ich glaub ich bin einfach zu doof!!!

was is jetzt hier dran falsch???wenn ich auf start klicke dann kommt nix
Code: [AUSKLAPPEN]
Graphics 800,600
SetBuffer BackBuffer()

Global Back = LoadImage("graphics\main\Back.jpg")
Global ButStart = LoadImage("graphics\main\Start.jpg")
Global Pointer = LoadImage("graphics\main\Pointer.png")
Global ButBeenden = LoadImage("graphics\main\Beenden.jpg")
Global MausX = MouseX()
Global MausY = MouseY()
Global Modus = 1
MaskImage ButStart,0,255,0
MaskImage Pointer,0,255,0
MaskImage ButBeenden,0,255,0

Repeat
Hauptmenue(0)
Flip
Cls
Until KeyHit(1)
;###################################Hauptmenü###################################################
Function Hauptmenue(a)
MausX = MouseX()
MausY = MouseY()
DrawImage Back,0,0
DrawImage ButStart,260,220
DrawImage ButBeenden,260,360
DrawImage Pointer,MausX,MausY
If MouseHit(1) Then
If ImagesOverlap(Pointer,MausX,MausY,ButBeenden,260,360) Then End
End If
If MouseHit(1) Then
If ImagesOverlap(Pointer,MausX,MausY,ButStart,260,220) Then Spiel(0)
End If
End Function
;####################################Das Spiel##################################################
Function Spiel(b)
MausX = MouseX()
MausY = MouseY()
DrawImage Back,0,0
End Function
;###############################################################################################
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
°°°!!!!BLITZ BASIC 4 EVER!!!!°°°°
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
 

Timo

BeitragSa, Sep 18, 2004 10:16
Antworten mit Zitat
Benutzer-Profile anzeigen
So - müsste funzen, hab es aber nicht ausprobiert. Warum übergibst du den Funktionen eigentlich nutzlose Varialben?!!!! Du musst nicht zwingend einer Funktion eine Variable übergeben... hab es mal geändert Wink
KeyHit() schnappt sich den Code der zu letzt gedrückten Taste. Wenn du dannach wieder KeyHit() im Code stehen hast, wird vermutlich 0 übergeben werden, denn der Benutzer wird es nicht schafen in einer Millisekunde eine Taste zu drücken Wink

Code: [AUSKLAPPEN]
Graphics 800,600
SetBuffer BackBuffer()

Global Back = LoadImage("graphics\main\Back.jpg")
Global ButStart = LoadImage("graphics\main\Start.jpg")
Global Pointer = LoadImage("graphics\main\Pointer.png")
Global ButBeenden = LoadImage("graphics\main\Beenden.jpg")
Global MausX = MouseX()
Global MausY = MouseY()
Global Modus = 1
MaskImage ButStart,0,255,0
MaskImage Pointer,0,255,0
MaskImage ButBeenden,0,255,0

Repeat
Hauptmenue()
Flip
Cls
Until KeyHit(1)
;###################################Hauptmenü###################################################
Function Hauptmenue()
MausX = MouseX()
MausY = MouseY()
DrawImage Back,0,0
DrawImage ButStart,260,220
DrawImage ButBeenden,260,360
DrawImage Pointer,MausX,MausY
If MouseHit(1) Then
  If ImagesOverlap(Pointer,MausX,MausY,ButBeenden,260,360) Then End
  If ImagesOverlap(Pointer,MausX,MausY,ButStart,260,220) Then Spiel()
End If
End Function
;####################################Das Spiel##################################################
Function Spiel()
MausX = MouseX()
MausY = MouseY()
DrawImage Back,0,0
End Function
;###############################################################################################

BLACK_FALL

BeitragSa, Sep 18, 2004 10:22
Antworten mit Zitat
Benutzer-Profile anzeigen
der ruft jetzt zwar die funktion auf aber nur ein bruchteil einer sekunde
kann das vieleicht an der hauptschleife liegen??
weil der ja die ghanze zeit nur die function hauptmenue aufruft!!!
MAnn bitte helft mir
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
°°°!!!!BLITZ BASIC 4 EVER!!!!°°°°
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
 

Timo

BeitragSa, Sep 18, 2004 11:27
Antworten mit Zitat
Benutzer-Profile anzeigen
So hier mal eine überarbeitete und getestete Version. Mit der 1 Millisekunde Zeit zum Taste drücken meinte ich die Zeit zwischen dem ersten Keyhit() und dem Zweiten in deinem Code. Bitte gewöhn dir an, zeilen in If,Case Bedingungen oder Schleifen einzurücken, wird dannach echt übersichtlicher Wink
In die Funktion Spie() muss natürlich auch wieder ne Schleife rein, sonst springt er zurück in die Funktion Hauptmenue() und diese wieder zurück in die alte schleife, drum siehts so aus, als würde nichts passieren Wink
Das sollte dir jetzt aber helfen...



Code: [AUSKLAPPEN]
Graphics 800,600,32,2
SetBuffer BackBuffer()

Global Back = LoadImage("graphics\main\Back.jpg")
Global ButStart = LoadImage("graphics\main\Start.jpg")
Global Pointer = LoadImage("graphics\main\Pointer.png")
Global ButBeenden = LoadImage("graphics\main\Beenden.jpg")
Global MausX = MouseX()
Global MausY = MouseY()
Global Modus = 1
MaskImage ButStart,0,255,0
MaskImage Pointer,0,255,0
MaskImage ButBeenden,0,255,0

Repeat
  Hauptmenue()
  flip
Until KeyHit(1)


;###################################Hauptmenü###################################################
Function Hauptmenue()
  MausX = MouseX()
  MausY = MouseY()
  DrawImage Back,0,0
  DrawImage ButStart,260,220
  DrawImage ButBeenden,260,360
  DrawImage Pointer,MausX,MausY
  If MouseHit(1) Then
    If ImagesOverlap(Pointer,MausX,MausY,ButBeenden,260,360) Then End
    If ImagesOverlap(Pointer,MausX,MausY,ButStart,260,220) Then Spiel()
  End If
End Function



;####################################Das Spiel##################################################
Function Spiel()
  For x = 1 to 840
    DrawBlock Back,0,0
    Text x,300,"so ab hier beginnt das Spiel"
    Text x,320,"Dafür brauchst du aber ne neue Schleife"
    flip
  next
  end
End Function
;###########

BLACK_FALL

BeitragSa, Sep 18, 2004 12:55
Antworten mit Zitat
Benutzer-Profile anzeigen
aber dann muss ich doch nich in der hauptmenue function auch eine schleife rein oder?
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
°°°!!!!BLITZ BASIC 4 EVER!!!!°°°°
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
 

Timo

BeitragSa, Sep 18, 2004 13:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Mal ganz davon abgesehen das ichs ganz anders machen würde (damit man später es wesentlich leichter hat Wink )....
nein! da muss keine Schleife rein.
Deine Programmstruktur sieht im Moment folgendermaßem aus:
Code: [AUSKLAPPEN]


Solange nicht ESC gedrückt wurde
  - führe die Funktion Hauptmenue aus
     - male das menu
     - wurde der beendenbutton gedrückt?
          - ja wurde er, also beenden
     - wurde der startbutton gedrückt?
          - ja wurde er, also ruf die Funktion Start auf
  - flippe die seite
Wiederhole alles


Wenn auf einmal die Funktion Start aufgerufen wird, dann ist das bei diesem Code hier ein eigenständiger Bereich mit einer Eigenen Schleife. Alles was jetzt im Spiel passiert, geschieht nur noch in der Funktion Start oder halt in anderen Funktionen, springt aber nicht mehr zurück in die Schleife wie oben beschrieben...

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group