Seite 1 von 1
Box innen Leer?
Verfasst: 22.08.2009 10:08
von Raphi
Hallo,
ich wollte eine Box zeichnen wo man nur die Umrandung sieht.
Ich weiß aber nich wie man das macht (Und die Box soll in der Mitte Leer sein, also man soll durchgucken können)
Kann mir jemand helfen?
Verfasst: 22.08.2009 10:20
von X360 Andy
DrawingMode(#PB_2DDrawing_Outlined)
Verfasst: 22.08.2009 10:31
von Mok
Das hättest du in der Hilfe leicht gefunden!
Ich weiß, ich weiß, die "Newcomer" und Anfänger sollte man nicht gleich Flamen, aber wenn man die PureBasic-Hilfe aufruft (
[F1]), Dann die Bibliothek für die Befehlsrefernz auswählt, und die 2D-Drawung-Lib öffnet, sollte man schon in der Lage sein, ein paar Befehle zu verdächtigen, und die auch in der Hilfe nachzulesen.
Und wenn die Hilfe nichts ausspuckt gibt's 2 weitere Möglichkeiten:
- Die Board-Suchfunktion (aka SuFu)
- wenn die (etwas dämliche) Foren-SuFu auch nix finden will, gibts noch die Möglichkeit bie unserem Freund Google <SUCHBEGRIFF> site:www.purebasic.fr/german einzugeben.
Zum Beispiel hättest du bei dem Suchterm box+innen site:www.purebasic.fr/german schon einiges nützliches gefunden.
Ich hoffe, dass ich damit im Namen aller anderen "Boarder" spreche.
MfG, Mok
Verfasst: 22.08.2009 10:44
von Raphi
Also irgenwie zeigt es bei mir die Box nicht an?
Code: Alles auswählen
CreateSprite(2,4,4)
StartDrawing(SpriteOutput(2))
DrawingMode(#PB_2DDrawing_Outlined)
Box(2,10,10,RGB(0,100,200))
StopDrawing()
TransparentSpriteColor(2,0)
DisplayTranparentSprite hab ich aufgerufen!
Mit
Code: Alles auswählen
CreateSprite(2,4,4)
StartDrawing(SpriteOutput(2))
DrawingMode(#PB_2DDrawing_Outlined)
Circle(2,10,10,RGB(0,100,200))
StopDrawing()
TransparentSpriteColor(2,0)
funktioniert es
Verfasst: 22.08.2009 10:50
von DarkDragon
Raphi hat geschrieben:Also irgenwie zeigt es bei mir die Box nicht an?
Code: Alles auswählen
CreateSprite(2,4,4)
StartDrawing(SpriteOutput(2))
DrawingMode(#PB_2DDrawing_Outlined)
Box(2,10,10,RGB(0,100,200))
StopDrawing()
TransparentSpriteColor(2,0)
DisplayTranparentSprite hab ich aufgerufen!
Mit
Code: Alles auswählen
CreateSprite(2,4,4)
StartDrawing(SpriteOutput(2))
DrawingMode(#PB_2DDrawing_Outlined)
Circle(2,10,10,RGB(0,100,200))
StopDrawing()
TransparentSpriteColor(2,0)
funktioniert es

Der war gut. Überprüf doch bitte mal deine Parameter in Box(). In der Statusleiste in der PureBasic IDE findest du wenn du den Cursor zwischen die Klammern setzt sogar fettgedruckt bei welchem Parameter der Cursor ist.
Hier eine Beschreibung zu Box:
Box(x, y, Breite, Höhe [, Farbe])
Du hast im Parameter Höhe die Farbe.
Verfasst: 22.08.2009 12:50
von Raphi

is ja Peinlich aber so
Code: Alles auswählen
CreateSprite(2,4,4)
StartDrawing(SpriteOutput(2))
DrawingMode(#PB_2DDrawing_Outlined)
Box(100,100,100,100,RGB(0,100,200))
StopDrawing()
TransparentSpriteColor(2,0)
funzts trozdem nicht!
edit:
hier nochmal der ganze code:
Code: Alles auswählen
InitSprite()
InitMouse()
InitKeyboard()
#ges = 8
OpenScreen(1024,768,32,"Spritebewegung")
For X = 1 To 9
LoadSprite(10+x,"Figuren\Female Paladin\FP_000"+Str(x) + ".bmp",0)
TransparentSpriteColor(10+x,RGB(0,0,128))
Next
For X = 10 To 72
LoadSprite(10+x,"Figuren\Female Paladin\FP_00"+Str(x) + ".bmp",0)
TransparentSpriteColor(10+x,RGB(0,0,128))
Next
CreateSprite(2,10,10)
StartDrawing(SpriteOutput(2))
DrawingMode(#PB_2DDrawing_Outlined)
Box(100,100,100,100,RGB(0,100,200))
StopDrawing()
TransparentSpriteColor(2,0)
Repeat
ExamineMouse()
ExamineKeyboard()
ClearScreen(0)
DisplayTransparentSprite(11,sx,sy)
DisplayTransparentSprite(2,MouseX(),MouseY())
If MouseButton(#PB_MouseButton_Left)
zx = MouseX() - 40
zy = MouseY() - 82
EndIf
If zx < sx
sx - #ges
EndIf
If zx > sx
sx + #ges
EndIf
If zy < sy
sy - #ges
EndIf
If zy > sy
sy + #ges
EndIf
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Verfasst: 22.08.2009 13:21
von X360 Andy
Wie soll das den auch gehen wenn du bei
Ein 4 mal 4 großes Sprite erstellst.
Und dann bei 100px / 100px anfängst zu zeichnen ( obwohl dein Sprite ja nichtmal so groß ist )
Hier wie es geht
Code: Alles auswählen
CreateSprite(2,100,100)
StartDrawing(SpriteOutput(2))
DrawingMode(#PB_2DDrawing_Outlined)
Box(0,0,100,100,RGB(0,100,200))
StopDrawing()
TransparentSpriteColor(2,0)
Verfasst: 22.08.2009 14:11
von Kaeru Gaman
ebent!
... aber hier scheint ein gravierendes Realisierungsdefizit vorzuliegen.
bei einem 4x4pix großen Sprite kann auch die Box höchstens 4x4 sein, wenn sie komplett zu sehen sein soll.
wäre also zum Beispiel
Code: Alles auswählen
CreateSprite(2, 4, 4)
StartDrawing(SpriteOutput(2))
DrawingMode(#PB_2DDrawing_Outlined)
Box( 0, 0, 4, 4,RGB(0, 100, 200))
StopDrawing()
was dann die pixel so belegt:
wird also sehr klein.
.... ich würde doch empfehlen, sich erstmal grundlegende Gedanken über Koordinaten und so zu machen.
Verfasst: 24.08.2009 13:50
von Raphi
Ok.Vielen dank Leute
