Verfasst: 07.03.2008 12:05
Box() ist schneller.Tombi hat geschrieben:Wegen dem "dicken des Rahmens" - wäre da jetzt die normale Linien-Funktion besser oder doch lieber die Box Funktion (nur Rahmen)?
Box() ist schneller.Tombi hat geschrieben:Wegen dem "dicken des Rahmens" - wäre da jetzt die normale Linien-Funktion besser oder doch lieber die Box Funktion (nur Rahmen)?
c4s hat geschrieben:Ich hab dann noch eine zusätzliche Frage dazu:
Gibt es eine (einfache) Möglichkeit die Dicke der Linien bei eben der Box
oder einer Linie selbst einzustellen?
Code: Alles auswählen
DrawingMode(#PB_2DDrawing_Outlined)
For i=0 To fat-1
Box( x+i, y+i, w-i*2, h-i*2, $00ff00)
Next
Code: Alles auswählen
Box( x+i, y+i, w-i*2, h-i*2, $00ff00) ; nach innen
Box( x-i, y-i, w+i*2, h+i*2, $00ff00) ; nach außen
Code: Alles auswählen
If OpenWindow(0, #PB_Ignore,#PB_Ignore,640,480, "PureBasic Window", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
If CreateGadgetList(WindowID(0))
ButtonGadget(0, 10,10,80,24,"BOX")
EndIf
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_Event_Gadget
Select EventGadget()
Case 0
DC = StartDrawing(WindowOutput(0))
Pen = CreatePen_(#PS_SOLID,4,$FF0000)
OldPen = SelectObject_(Dc,Pen)
DrawingMode(#PB_2DDrawing_Outlined)
Box(100, 100, 40, 40, #Null)
SelectObject_(Dc,OldPen)
DeleteObject_(Pen)
StopDrawing()
EndSelect
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit = 1
EndIf
End
Code: Alles auswählen
InitSprite()
InitKeyboard()
Radius = 400
Radius1 = 1
ScreenX = 1280
ScreenY = 1024
OpenScreen(ScreenX,ScreenY,16,"XXX")
Repeat
ClearScreen(255+256*255+256*256*255) ;weiss
StartDrawing(ScreenOutput())
FrontColor(0+256*0+256*256*0) ;schwarz
Circle(ScreenX/2,ScreenY/2,Radius) ;groß
FrontColor(255+256*255+256*256*255) ;weiss
Circle(ScreenX/2,ScreenY/2,Radius1) ;klein
Radius + 1
Radius1 + 1 ; der soll aber nun nur um 0,1 größer werden!!!
If Radius > ScreenX
Radius = ScreenX
EndIf
StopDrawing()
FlipBuffers()
ExamineKeyboard()
Until KeyboardPushed(1)
Code: Alles auswählen
;...
Radius1 = 10
;...
Circle(ScreenX/2,ScreenY/2, Radius1/10 ) ;ein zehntel verwenden
;...
Radius1 + 1 ; so wird er effektiv nur um 0,1 größer!