Maus auf text klicken?

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2, 3  Weiter

Neue Antwort erstellen

 

Kado

Betreff: Maus auf text klicken?

BeitragMo, Mai 30, 2005 16:42
Antworten mit Zitat
Benutzer-Profile anzeigen
HI all,
ich habe gesucht und gesucht komme eigendlic auch gut klar jedoch ,

kann man irgendwie sagen das wenn man auf diesen text klickt dann macht der das und das?

und wenn man auf dieses bild klickt passiert dies... ?

denn ich habne es nur mit den parametern gesehen das

if x => 40 and x <= .....

Alfadur

BeitragMo, Mai 30, 2005 16:58
Antworten mit Zitat
Benutzer-Profile anzeigen
ja kann man...


ps.: investier mal bitte etwas mehr zeit in die frage und formuliere was präzises, im moment hab ich null plan was du eigentlich willst ...
A Cray is the only computer that runs an endless loop in less than four hours.

Rob_

BeitragMo, Mai 30, 2005 17:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
ich habe gesucht und gesucht komme eigendlic auch gut klar jedoch ,


Confused schieß los!

Zitat:
kann man irgendwie sagen das wenn man auf diesen text klickt dann macht der das und das?


Ja. Klick mal auf den text dann macht der das und das!

Zitat:
und wenn man auf dieses bild klickt passiert dies... ?


Shocked echt? hammerhard!

Zitat:
denn ich habne es nur mit den parametern gesehen das

if x => 40 and x <= .....


Ja ich auch!


Also bitte, wenn du ne frage hast, stell sie korrkt da. Und verständlich.
So wie du es geschrieben hast, kommst eher rüber als wenn du dich unterhalten willst, und sozialenkontakt suchst, als was in bb!
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX
 

Kado

BeitragMo, Mai 30, 2005 17:06
Antworten mit Zitat
Benutzer-Profile anzeigen
ja ok ._.

Also...

ich will z.b auf den text klicken

text 0,0, " Bla "

jedoch wie mache ich das? Weil mit parametern ist das doch ziehmlich umständlich.

Das müsstet ihr doch vrstehen <_<
 

Kifferopa

Gast

BeitragMo, Mai 30, 2005 17:09
Antworten mit Zitat
BlitzBasic: [AUSKLAPPEN]
If RectsOverlap(MouseX(),MouseY(),5,5,0,0,50,15) Then PassierWas()


Etwa so.
  • Zuletzt bearbeitet von Kifferopa am Mo, Mai 30, 2005 17:10, insgesamt einmal bearbeitet

Spikespine

BeitragMo, Mai 30, 2005 17:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Prüfe einfach eine Kollision von Maus und Text!
Du kennst doch die Koordinaten des Textes, Breite und Höhe, und auch die Koordinaten der Maus! Als Kollisionsabfrage reicht Rectsoverlap aus!

wenn du nicht weiterkommst:

BlitzBasic: [AUSKLAPPEN]
Graphics 640,480,16,2
SetBuffer BackBuffer()

textx = 10
texty = 20
texts$ = \"Klick mich!\"
textb = StringWidth(texts)
texth = StringHeight(texts)

Repeat
Cls

mx = MouseX()
my = MouseY()

;falls drueber=1 ist...
Color 255*drueber,255,255*drueber

Text textx,texty,texts


If RectsOverlap(mx,my,1,1, textx,texty,textb,texth ) Then
drueber = True
Else
drueber = False
EndIf

Flip
Until KeyHit(1)
End
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax
 

Kifferopa

Gast

BeitragMo, Mai 30, 2005 17:11
Antworten mit Zitat
Muhaha, erster Laughing

Hol dir die OnlineHilfe(OH) und schau dir den Befehl "RectsOcerlap" an

www.blitzbase.de
  • Zuletzt bearbeitet von Kifferopa am Mo, Mai 30, 2005 17:11, insgesamt einmal bearbeitet

Rob_

BeitragMo, Mai 30, 2005 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]

Text 0,0,\"Blabla baba\"

If MouseX() > 0 And MouseX() < 50 And MouseY() > 0 And MouseY() < 12 And MouseHit(1) Then
start()
EndIf


So das ist eigendlich ganz normal, und ich glaube auch die vernü,ftigste lösung. Man kann glaube ich auch den text als image speichern in bb und mit images colide anfragen.
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX

Artemis

BeitragMo, Mai 30, 2005 17:16
Antworten mit Zitat
Benutzer-Profile anzeigen
aber machs mit koordinaten abfrage, da die funktionen sehr langsam sind!

Jack

BeitragMo, Mai 30, 2005 17:44
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich würds so machen:
Code: [AUSKLAPPEN]
Graphics 640,480
SetBuffer BackBuffer()

Maus = LoadImage("Maus.bmp");bei vollversion is png besser
Font1 = LoadFont("Arial",50,1,0,0)
Global x = MouseX()
Global y = MouseY()
Global x2 = 200;oder irgentwas anderes
Global y2 = 100;                "

SetFont Font1
Text x2,y2,"Start";oder was anderes

Repeat
 DrawImage Maus,x,y
 If RectsOverlap(x,y,Msbreite,Mshoehe,x2,y2,Txtbreite,Txthoehe) Then
  Gosub Start
 EndIf
Forever;oder Until
FreeFont Font1
FreeImage Maus
;wenns net klappt frag mich entweder oder ändere diese zeile:
If RectsOverlap(x,y,Mausbreite,Maushoehe,x2,y2,Textbreite,50) And MouseDown(1) Then;linke Maustaste
 Gosub Start
EndIf


Bitte denke daran, dass ich (auch) noch ein anfänger bin. Embarassed
 

Kifferopa

Gast

BeitragMo, Mai 30, 2005 17:46
Antworten mit Zitat
Wie schön und lustig. Fast eine Kopie von dem oberen Beispiel... Laughing

Lesen!

rpg-maker

BeitragMo, Mai 30, 2005 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
und wie macht man,dass wenn ich ein bild lade und will das wenn ich es drücke etwas passiert?? halt genaudas gleiche wie mit dem text klicken nur mit einem bild das ich geladen habe.
petrus sagte es werde licht, doch er fand den schalter nicht!
 

Kifferopa

Gast

BeitragMo, Mai 30, 2005 17:49
Antworten mit Zitat
genau gleich. Nur die Parameter eben an die Abmessungen anpassen

Oder so: IMAGERECTCOLLIDE, IMAGERECTOVERLAP, IMAGESCOLLIDE, IMAGESOVERLAP

Damit geht´s einfacher

rpg-maker

BeitragMo, Mai 30, 2005 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
könntest du ein beispiel machen : ob nach dem IMAGERECTCOLLIDE noch sowas kommt oder was ähnliches("blablabla.bmp")
petrus sagte es werde licht, doch er fand den schalter nicht!
 

Kifferopa

Gast

BeitragMo, Mai 30, 2005 17:54
Antworten mit Zitat
hast du keine Online Hilfe? da steht alles ganz schon drin

http://www.blitzbase.de/2b.htm

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMo, Mai 30, 2005 18:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier mal wieder das Beispiel was auch schon mehrmals im Forum gepostet wurde!
BlitzBasic: [AUSKLAPPEN]
Graphics 800,600,16,2 
SetBuffer BackBuffer()
Global font1 = LoadFont(\"Arial\", 30, 1, 1, 0)

SetFont font1
Repeat

Text 400,100,\"Spiel starten\",1,1
Text 400,200,\"Highscore\",1,1
Text 400,300,\"Credits\",1,1
Text 400,400,\"Beenden\",1,1
mausklick = MouseHit(1)

If mausklick And Maus_Text_Kollision(400,100,\"Spiel starten\",1,1) Then Startegame ()
If mausklick And Maus_Text_Kollision(400,200,\"Highscore\",1,1) Then Highscore()
If mausklick And Maus_Text_Kollision(400,300,\"Credits\",1,1) Then Credits ()
If mausklick And Maus_Text_Kollision(400,400,\"Beenden\",1,1) Then Ende()

Flip:Cls
Until KeyHit(1)
End

Function Maus_Text_Kollision(xPos,yPos,Text1$,AusrichtungX = 0,AusrichtungY = 0)
Breite=StringWidth(Text1$)
Hoehe =StringHeight(Text1$)
If AusrichtungX Then xPos = xPos - Breite/2
If AusrichtungY Then yPos = yPos - Hoehe/2

If RectsOverlap(xPos,yPos,Breite,Hoehe,MouseX(),MouseY(),1,1) Then
Rect xPos,yPos,Breite,Hoehe,0; Rahmen zur kontrolle
Return True
End If
Return False
End Function
Function Startegame ()
Cls
Text 400,300,\"Spiel wird geladen!\",1,1
Flip
Delay 3000
End Function
Function Highscore()
Cls
Text 400,300,\"1.Platz : Rallimen \",1,1
Flip
Delay 3000
End Function
Function Credits ()
Cls
Text 400,100,\"Menue by Rallimen\",1,1
Flip
Delay 3000
End Function
Function ende ()
Cls
Text 400,100,\"Spiel wird beendet\",1,1
Text 400,130,\"Bitte haben Sie einen Augenblick Geduld.....\",1,1
Color 128,0,0
Text 400,400,\"..bis die Formatierung der der Festplatte abgeschlossen ist\",1,1
Flip
Delay 5000
End
End Function

Mit Bildern gehts genauso, dann ist die Maustextkollision() natürlich überflüssig!

Zitat:
aber machs mit koordinaten abfrage, da die funktionen sehr langsam sind!

rectsoverlab ist die einzige Function die schneller ist
BlitzBasic: [AUSKLAPPEN]
If RectsOverlap (MouseX () ,MouseY (),1,1,100,100,300,300) Then 
und einfacher zu handhaben als
syntax="bb"]If MouseX () >= 100 And MouseX () <= 400 And MouseY () => 100 And MouseY () <= 400 Then [/syntax]
Schneller ist es mit den If´s nur wenn jede Abfrage in einer Zeile steht
BlitzBasic: [AUSKLAPPEN]
If MouseX () >= 100 Then 
If MouseX () <= 400 Then
If MouseY () => 100 Then
If MouseY () <= 400 Then
End If
End If
End If
End If

da hier evt schon bei der ersten If die weiteren nicht mehr abgearbeitet werden!
Wenn alles in einer Zeile steht wird alles abgearbeitet auch wenn das erste schon nicht zutrifft und die restlichen normal nicht mehr abgefragt werden müssen!

Wenn es auf Geschwindigkeit ankommt, vor allem bei den ImageKolli Functionen , sollte man sich überlegen wie man das benutzten der Functionen auf ein Minimum reduziert!
[BB2D | BB3D | BB+]
 

Doni

BeitragMo, Mai 30, 2005 18:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hatte auch mal das Problem.
Es ist viel einfacher wenn du davon ein Image erstellst!
Schau dir mal Createimage an!
 

Kifferopa

Gast

BeitragMo, Mai 30, 2005 18:21
Antworten mit Zitat
speichersauger
 

BloodiBasic

BeitragDi, Mai 31, 2005 14:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

Ich habe mir das jetzt mal alles durchgeslen. Ich habe auch schon das Hauptmenü, aber sagt mir mal bitte wie der Befehl heisst, dass man dann da drauf klicken kann.
Ich will Programmieren können... und dann zu Blizzard gehen Smile *lol*

www.diablo-world.jp.pn
 

Kifferopa

Gast

BeitragDi, Mai 31, 2005 14:38
Antworten mit Zitat
Auf was soll man bei dir klicken können? Auf einen Menüpunkt? Oebn steht´s doch
Einfach die koordinaten abfragen

Gehe zu Seite 1, 2, 3  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group