Maus auf text klicken?

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2, 3  Weiter

Neue Antwort erstellen

 

BloodiBasic

BeitragDi, Mai 31, 2005 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Das hat mir aber nicht viel weitergeholfen.
Ich will Programmieren können... und dann zu Blizzard gehen Smile *lol*

www.diablo-world.jp.pn

Artemis

BeitragDi, Mai 31, 2005 14:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Rallimen hat Folgendes geschrieben:
und einfacher zu handhaben als
BlitzBasic: [AUSKLAPPEN]
If MouseX () >= 100 And MouseX () <= 400 And MouseY () => 100 And MouseY () <= 400 Then 

Büdde hier als Funktionen:BlitzBasic: [AUSKLAPPEN]

Function PointInRect(pointx,pointy,rectx,recty,rectwidth,rectheight)
If (pointx >= rectx) And (pointy >= recty) And (pointx <= (rectx + rectwidth)) And (pointy <= (recty + rectheight)) Then Return 1
Return 0
End Function

Function PointInCircel(pointx,pointy,circelx,circely,circelradius)
If (((pointx-(circelx+(circelradius/2)))^2)+((pointy-(circely+(circelradius/2)))^2)) <= circelradius Then Return 1
Return 0
End Function

Function RectInRect(rect1x,rect1y,rect1w,rect1h,rect2x,rect2y,rect2w,rect2h)
If (rect1x >= rect2x) And (rect1y >= rect2y) And ((rect1x+rect1w) <= (rect2x+rect2w)) And ((rect1y+rect1h) <= (rect2y+rect2h)) Then Return 1
Return 0
End Function
  • Zuletzt bearbeitet von Artemis am Sa, Feb 23, 2008 20:07, insgesamt einmal bearbeitet
 

BloodiBasic

BeitragDi, Mai 31, 2005 14:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Und was kommt in den "()" Klammern da oben rein?
Ich will Programmieren können... und dann zu Blizzard gehen Smile *lol*

www.diablo-world.jp.pn

Artemis

BeitragDi, Mai 31, 2005 14:58
Antworten mit Zitat
Benutzer-Profile anzeigen
PointInRect:
  • pointx : x-koordinate des punktes (bei dir wahrscheinlich die maus also MouseX())
  • pointy : y-koordinate des punktes (bei dir wahrscheinlich die maus also MouseY())
  • rectx : x-koordinate des rechtecks
  • recty : y-koordinate des rechtecks
  • rectwidth : breite des rechtecks
  • rectheight : höhe des rechtecks
 

BloodiBasic

BeitragDi, Mai 31, 2005 15:03
Antworten mit Zitat
Benutzer-Profile anzeigen
ah ok aber was hat ir das jetzt weitergeholfen?
Ich will Programmieren können... und dann zu Blizzard gehen Smile *lol*

www.diablo-world.jp.pn

Artemis

BeitragDi, Mai 31, 2005 15:05
Antworten mit Zitat
Benutzer-Profile anzeigen
BloodiBasic hat Folgendes geschrieben:
ah ok aber was hat ir das jetzt weitergeholfen?

Was meinst du genau??
Was der Code gebracht hat oder ob dus immer noch nicht verstanden hast?
 

BloodiBasic

BeitragDi, Mai 31, 2005 15:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

Also ich habe ja ein Hauptmenü, wo steht:

Text 400,100,"Start game",1,1
Text 400,200,"bla bla
Text 400,300 und so weiter,1,1

Und da will ich dann draufklicken können auf: Start Game.
Ich will Programmieren können... und dann zu Blizzard gehen Smile *lol*

www.diablo-world.jp.pn
 

Kifferopa

Gast

BeitragDi, Mai 31, 2005 15:16
Antworten mit Zitat
steht auf der ersten Seite alles Evil or Very Mad

Artemis

BeitragDi, Mai 31, 2005 15:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier:
BlitzBasic: [AUSKLAPPEN]

Function PointOverMiddledText(pointx,pointy,textx,texty,txt$)
If (pointx => textx-(StringWidth(txt$)/2)) And (pointy => texty-(FontHeight()/2)) And (pointx <= textx+(StringWidth(txt$))) And (pointy <= texty+(FontHeight()/2)) Then Return 1
Return 0
End Function


Machs einfach so:BlitzBasic: [AUSKLAPPEN]

Graphics 800,600,32,2
SetBuffer(BackBuffer())
Repeat
Text 400,100,\"LOL\",1,1
Text 400,200,\"LOLOLO\",1,1
Text 400,300,\"AD\",1,1
If MouseDown(1) Then
If PointOverMiddledText(MouseX(),MouseY(),400,100,\"LOL\") Then Text 0,0,\"LOL Klicked\"
If PointOverMiddledText(MouseX(),MouseY(),400,200,\"LOLOLO\") Then Text 0,0,\"LOLOLO Klicked\"
If PointOverMiddledText(MouseX(),MouseY(),400,300,\"AD\") Then Text 0,0,\"AD Klicked\"
EndIf
Flip
Cls
Until KeyHit(1)
Function PointOverMiddledText(pointx,pointy,textx,texty,txt$)
If (pointx => textx-(StringWidth(txt$)/2)) And (pointy => texty-(FontHeight()/2)) And (pointx <= textx+(StringWidth(txt$))) And (pointy <= texty+(FontHeight()/2)) Then Return 1
Return 0
End Function
 

BloodiBasic

BeitragDi, Mai 31, 2005 15:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab deins mal kopiert und es funktioniert nicht
Ich will Programmieren können... und dann zu Blizzard gehen Smile *lol*

www.diablo-world.jp.pn
 

Kifferopa

Gast

BeitragDi, Mai 31, 2005 15:40
Antworten mit Zitat
Du sollst nicht einfach den Code von anderen kopieren

-Gott

Alfadur

BeitragDi, Mai 31, 2005 15:52
Antworten mit Zitat
Benutzer-Profile anzeigen
also bei mir funktionierts prächtig, wenn ich den code kopiere... zu dumm zum kopieren?

also kleiner, auch für dich : zeig bißchen eigeninitiative, geh auf www.robsite.de und lies dir die beginner tutorials durch, probiere ein wenig und dann kannst du gerne wiederkommen und fragen stellen ...
A Cray is the only computer that runs an endless loop in less than four hours.

rpg-maker

BeitragDi, Mai 31, 2005 20:01
Antworten mit Zitat
Benutzer-Profile anzeigen
kann mir bitte jemand (inteligenter *lol*) ein menü machen ???BITTE???
ich hab die bilder auch unten dran . ich bin schon seit einer woche dran und check das net richtig.ich verzweifle schon richtig .
es wäre sehr nett wenn das jemand übernehmen könnte.

user posted image
petrus sagte es werde licht, doch er fand den schalter nicht!
 

Kifferopa

Gast

BeitragMi, Jun 01, 2005 13:41
Antworten mit Zitat
Ich sehe keine Bilder Rolling Eyes

Alfadur

BeitragMi, Jun 01, 2005 14:16
Antworten mit Zitat
Benutzer-Profile anzeigen
der gute hat ja auch auf seine festplatte verlinkt ... *narf*
A Cray is the only computer that runs an endless loop in less than four hours.
 

Kado

BeitragMi, Jun 01, 2005 19:34
Antworten mit Zitat
Benutzer-Profile anzeigen
hi all,
ich habe ein kleines prob mit dem code, ich habe denverändert ... jedoch wenn ich auf zutaten kaufen gehe (muss man nichtmal klicken) komm sofort die andere funktion ... , und habve eine frage wie mache ich das das man länger in diesem zutenkaufen function bleibt?

BlitzBasic: [AUSKLAPPEN]
Graphics 800,600,32,2
SetBuffer(BackBuffer())
menu = 0
Repeat
Text 400,100,\"LOL\",1,1
Text 400,200,\"LOLOLO\",1,1
Text 400,300,\"AD\",1,1
If MouseHit(1) Then
If PointOverMiddledText(MouseX(),MouseY(),400,100,\"LOL\") Then menu = 1
If PointOverMiddledText(MouseX(),MouseY(),400,200,\"LOLOLO\") Then Text 0,0,\"LOLOLO Klicked\"
If PointOverMiddledText(MouseX(),MouseY(),400,300,\"AD\") Then Text 0,0,\"AD Klicked\"
EndIf
Flip
Cls

If menu = 1

Cls
;aktion-------------Eis----------
Text 0,0, \"Zutaten Kaufen\"
Text 0,15, \"Eis herstellen\"
Text 0,30, \"Eis verkaufen\"
Text 0,45, \"Eis essen\"
Text 0,75, \"Preis ändern\"
;aktion--------Nahrungsmittel----
Text 0,90, \"Nahrungsmittel kaufen\"
Text 0,105, \"Nahrungsmittel essen\"
Text 0,130, \"Nahrungsmittel verkaufen\"
;aktion --------Wohnung-------
Text 0,145, \"Zur Wohnung gehen\"

If MouseHit(1) Then
If PointOverMiddledText(MouseX(),MouseY(),0,0,\"Zutaten Kaufen\") Then ZutatenKaufen()
EndIf

EndIf

Until KeyHit(1)

;funktion----------eis----------
Function ZutatenKaufen()
Repeat
Cls
Text 0,0, \"Zutat\"
Text 0,15, \"Zurück\"
Until MouseHit(1) And PointOverMiddledText(MouseX(),MouseY(),0,0,\"Zurück\") Text 50,50, \"Bla\"
End Function



Function PointOverMiddledText(pointx,pointy,textx,texty,txt$)
If (pointx => textx-(StringWidth(txt$)/2)) And (pointy => texty-(FontHeight()/2)) And (pointx <= textx+(StringWidth(txt$))) And (pointy <= texty+(FontHeight()/2)) Then Return 1
Return 0
End Function
 

Nox

BeitragMi, Jun 01, 2005 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Rallimen hat Folgendes geschrieben:
Schneller ist es mit den If´s nur wenn jede Abfrage in einer Zeile steht, 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!


Das dürfte, denke ich, so nicht korrekt sein. Bei deinem Beispiel gibt es nur logisch UND-verknüpfte Bedingungen. Schlägt auch nur eine davon fehl (ohne die nachfolgenden zu prüfen), wird abgebrochen. Um das vernünftig zu erklären, müsste man bis auf Assembler runterschrauben. Smile
 

Kado

BeitragMi, Jun 01, 2005 19:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Nox hat Folgendes geschrieben:
Rallimen hat Folgendes geschrieben:
Schneller ist es mit den If´s nur wenn jede Abfrage in einer Zeile steht, 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!


Das dürfte, denke ich, so nicht korrekt sein. Bei deinem Beispiel gibt es nur logisch UND-verknüpfte Bedingungen. Schlägt auch nur eine davon fehl (ohne die nachfolgenden zu prüfen), wird abgebrochen. Um das vernünftig zu erklären, müsste man bis auf Assembler runterschrauben. Smile


meinste mich? o.O" , wenn ja , muss ich dann noch eine andere funktion amchen oder was ?._.
 

Nox

BeitragMi, Jun 01, 2005 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hehe sorry, wollte dich nicht verwirren. Very Happy Meinte dich nicht, habe ja rallimen zitiert.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMi, Jun 01, 2005 20:25
Antworten mit Zitat
Benutzer-Profile anzeigen
@Nox

Zitat:
Das dürfte, denke ich, so nicht korrekt sein. Bei deinem Beispiel gibt es nur logisch UND-verknüpfte Bedingungen. Schlägt auch nur eine davon fehl (ohne die nachfolgenden zu prüfen), wird abgebrochen. Um das vernünftig zu erklären, müsste man bis auf Assembler runterschrauben.

Und das hast du bestimmt auch getestet! Very Happy

Ich wills dann mal testen!

BlitzBasic: [AUSKLAPPEN]
If test()= 0 And test()= 0 And  test()= 0  Then
Print \" alle Test = null\"
End If
WaitKey()
Function Test()
Print \" Function Test aufgerufen\"
Return 1
End Function


da keine der Bedingungen zutrifft sollte nach deiner Aussage die Function Test nur einmal aufgerufen werden!
Oder? Very Happy
Dann probiert es mal
Hier noch der Gegenbeweis:BlitzBasic: [AUSKLAPPEN]
If test () = 0 Then
If test () = 0 Then
If test () = 0 Then
Print \" alle Test = null\"
End If
End If
End If
WaitKey ()

Function Test ()
Print \" Function Test aufgerufen\"
Return 1
End Function


hier noch eine etws andere Variante mit der es dann auch in einer zeile funktioniert, aber da rate ich von ab!
Spagetti-Code!BlitzBasic: [AUSKLAPPEN]
If test()= 0 Then If test()= 0 Then If test()= 0  Then 
Print \" alle Test = null\"
End If
WaitKey()
Function Test()
Print \" Function Test aufgerufen\"
Return 1
End Function
[BB2D | BB3D | BB+]

Gehe zu Seite Zurück  1, 2, 3  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group