Button abrunden

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

CaeSar

Betreff: Button abrunden

BeitragMi, Dez 19, 2007 20:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe jetzt meinen Button, nur ist er sehr eckig.
Ich weiß garnicht wie ich das machen soll mit dem abrunden an den ecken des Buttons.

Code: [AUSKLAPPEN]

Graphics 800,600,16,2
HidePointer

Mousezeiger=CreateImage(10,10)
SetBuffer ImageBuffer(Mousezeiger)
Color 0,255,0
Rect 0,0,10,10,1

Button=CreateImage(100,30)

R=255
G=0

Repeat

SetBuffer ImageBuffer(Button)
Color R,G,0
Rect 0,0,100,30,1
SetBuffer BackBuffer()


If ImagesCollide(Mousezeiger,MouseX(),MouseY(),0,Button,350,270,0) Then

   Einstellung=Einstellung+MouseHit(1)
   If Einstellung>3 Then Einstellung=0
   
   G=150
   Else
   G=0

EndIf

Select Einstellung
   Case 0
      Wechsel$="Niedrig"
   Case 1
      Wechsel$="Mittel"
   Case 2
      Wechsel$="Hoch"
   Case 3
      Wechsel$="Extrem"
End Select

FlushMouse

DrawImage Button,350,270
Color 0,0,255
Text 360,280,Wechsel$
DrawImage Mousezeiger,MouseX(),MouseY()

Flip
Cls
Until KeyHit(1)
End


Wär nett wenn mir jemand helfen könnte !!
mfg Cae$ar

aMul

Sieger des Minimalist Compo 01/13

BeitragMi, Dez 19, 2007 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Indem du das Bild mit einem Bildbearbeitungsprogramm erstellst und per LoadImage() lädst?

Für einfache Sachen tut es hier sogar Microsoft Paint (2)...
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver
 

CaeSar

BeitragMi, Dez 19, 2007 21:17
Antworten mit Zitat
Benutzer-Profile anzeigen
es muss doch auch was anderes geben, anstatt das bild zu malen.
Man muss es doch irgendwie abrunden können ??

mfg Cae$ar

mahe

BeitragMi, Dez 19, 2007 21:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst mit "oval" Kreise erzeugen.
Wenn du einen Button aus zwei Kreisen und einem Rechteck zusammensetzt sieht es auch abgerundet aus.
ʇɹǝıdɯnɹɹoʞ ɹnʇɐuƃıs - ǝpoɥʇǝɯ-ɹoɹɹıɯ ɹǝp uı ,ɹoɹɹǝ,
 

Gast

BeitragMi, Dez 19, 2007 21:21
Antworten mit Zitat
Code: [AUSKLAPPEN]

Oval 0,0,32,12
Oval 32,0,32,12
Rect 16,0,32,12

So meinte es mahe...
 

CaeSar

BeitragMi, Dez 19, 2007 21:37
Antworten mit Zitat
Benutzer-Profile anzeigen
mhh is ja auch garnet so schlecht eure Ideen, nur wird wenn ich bei jeden Button 1 Rechteck und 2 Ovale brauch, der Arbeitsspeicher sehr belastet.

Aber ansonsten könnte man das schon so machen.

mfg Cae$ar

SpionAtom

BeitragMi, Dez 19, 2007 21:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann male den Button einmal mit den Ovalen, und speichere das ganze in einem Bild ab (createImage...)

So hab ich mal abgerundete Rechtecke gezeichnet.
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

mahe

BeitragMi, Dez 19, 2007 22:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Was mir gerade in Deinem Code aufgefallen ist:
Code: [AUSKLAPPEN]

SetBuffer ImageBuffer(Button)
Color R,G,0
Rect 0,0,100,30,1
SetBuffer BackBuffer()

Dieser Teil gehört absolut nicht in die Schleife.

Du musst das Bild nur einmal erstellen, dann bleibt es Dir erhalten bis du es wieder veränderst oder löschst.
Deshalb ist es auch absolut kein Problem wenn ein Button aus drei Objekten erstellt wird. Das Bild bleibt gleich groß nur vergrößerst sich der Aufwand beim Erstellen minimal (einmal beim Programmstart und in diesem Fall unmessbar).
ʇɹǝıdɯnɹɹoʞ ɹnʇɐuƃıs - ǝpoɥʇǝɯ-ɹoɹɹıɯ ɹǝp uı ,ɹoɹɹǝ,
 

CaeSar

BeitragDo, Dez 20, 2007 17:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Das musste ich machen damit ich die Farbe bei Kollision verändern kann !!

mfg Cae$ar

mahe

BeitragDo, Dez 20, 2007 17:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann erstell zwei Bilder mit unterschiedlicher Farbe und zeige je nach Situation eines davon an.
So ist das sehr hässlich zumal Du dafür kein Bild erstellen müsstest.
ʇɹǝıdɯnɹɹoʞ ɹnʇɐuƃıs - ǝpoɥʇǝɯ-ɹoɹɹıɯ ɹǝp uı ,ɹoɹɹǝ,

SpionAtom

BeitragDo, Dez 20, 2007 19:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Mausrad, um den "Ecken-radius" zu verändern...

Code: [AUSKLAPPEN]
SetBuffer BackBuffer()      
      w = 100
      h = 70
      d = 20

   Repeat
      x = MouseX() - w/2
      y = MouseY() - h/2
      d = d + MouseZSpeed()      
      Cls      
      ;Color 50, 50, 50: Rect x, y, w, h, 0
      Color 50, 150, 255:      
      Oval x, y, d, d, 1
      Oval x + w - d, y, d, d, 1
      Oval x, y + h - d, d, d, 1
      Oval x + w - d, y + h - d, d, d, 1
      Rect x + d/2, y, w - d, h
      Rect x, y + d/2, w, h - d      
      Flip()   
   
   Until KeyDown(1)
   End
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080
 

CaeSar

BeitragDo, Dez 20, 2007 20:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Gut danke,

dann werde ich das auch so machen mit den vielen Ovalen und so, aber ich werde daraus eine Funktion machen die ich dann immer nutze.

Danke Very Happy
mfg Cae$ar

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group