Kollision mit Text/Proportionalität bei Auflösung
Übersicht

ChrizesBetreff: Kollision mit Text/Proportionalität bei Auflösung |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi Leute,
Problem 1: Gibt es eine Möglichkeit , eine Kollisionsüberprüfung mit der Maus und einem beliebigen Text zu benutzen? Ich möchte meinen Text(per Befehl Text und setfont) nicht in Grafiken umwandeln! Problem 2: Wie kann ich es austüfteln ![]() Möchte sowas nicht statisch lösen^^ Es handelt sich um eine 2D-Anwendung. --- Kann mir jemand helfen? mfg, Chrizes |
||
P4 3.4Ghz 3GB Ram 1TB HDD ATI Radeon x1650pro
Guter Computer, schlechter Code^^ |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo, ich habe mal ein Menue mit Text Kollision erstellt, ist relativ einfach zu handhaben
Code: [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 |
||
[BB2D | BB3D | BB+]
|
Lador |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi, schau dir mal die Befehle StringWidth(String$) und StringHeight(String$) an. Dann machste genau wie bei den Bildern eine Kollisionsabfrage.
Naja, wüsste jetzt nur, dass du GraphicsWidth() und GraphicsHeight() überprüfst und dann z.B. eine Variable, die die FontHeight bestimmt, bei einer bestimmten Auflösung auf z.B. 20 stellst. Und dann lädst du eben Code: [AUSKLAPPEN] Font = LoadFont("Arial",FontHoehe,1,0,0)
oder wie du es eben haben willst. Eine andere Mögloichkeit wäre, dass du dir eine Formel ausdenkst, z.B. FontHoehe = GraphicsHeight()/20. MFG Lador Edit: Argh...Sorry dachte du willst die FontHöhe und nicht, wie du es platzieren kannst...Naja, statisch, immer zentriert oder eben eine Formel, wobei das eigentlich weder bei der FontHöhe noch beim Platzieren sehr sinnvoll ist. |
||
Chrizes |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Rallimen: Werd mir dein Zeug mal genauer angucken enthält Sachen, die ich anders machen würde(anders gelernt ![]() @Lador: Und wie zentriere ich das Zeug, dann ist es doch immer nur in der Mitte. Geht das vllt. mit origin? mfg, Chrizes |
||
P4 3.4Ghz 3GB Ram 1TB HDD ATI Radeon x1650pro
Guter Computer, schlechter Code^^ |
Lador |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi, du schreibst einfach
Code: [AUSKLAPPEN] Text x,y,String$,1 ;Für X-zentriert
Text x,y,String$,0,1 ;Für Y-zentriert Text x,y,String$,1,1 ;Für XY-zentriert MFG Lador |
||
Chrizes |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Tjo, danke.
Ich werd das dann mal ausprobieren! mfg, Chrizes |
||
P4 3.4Ghz 3GB Ram 1TB HDD ATI Radeon x1650pro
Guter Computer, schlechter Code^^ |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group