Box innen Leer?

Anfängerfragen zum Programmieren mit PureBasic.
Raphi
Beiträge: 175
Registriert: 06.08.2009 16:32
Computerausstattung: Intel Core 2 Duo Processor (2 x 3 Ghz), ATI Radeon HD 4870 (512 MB), 4 GB DDR-2 Ram, Microsoft Windows 7 Ultimate, MBox 2 Mini Soundkarte

Box innen Leer?

Beitrag 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?
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag von X360 Andy »

DrawingMode(#PB_2DDrawing_Outlined)
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Beitrag 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:
  1. Die Board-Suchfunktion (aka SuFu)
  2. 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
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Raphi
Beiträge: 175
Registriert: 06.08.2009 16:32
Computerausstattung: Intel Core 2 Duo Processor (2 x 3 Ghz), ATI Radeon HD 4870 (512 MB), 4 GB DDR-2 Ram, Microsoft Windows 7 Ultimate, MBox 2 Mini Soundkarte

Beitrag 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
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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
:lol: 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. :wink:
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Raphi
Beiträge: 175
Registriert: 06.08.2009 16:32
Computerausstattung: Intel Core 2 Duo Processor (2 x 3 Ghz), ATI Radeon HD 4870 (512 MB), 4 GB DDR-2 Ram, Microsoft Windows 7 Ultimate, MBox 2 Mini Soundkarte

Beitrag von Raphi »

:oops: 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)
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag von X360 Andy »

Wie soll das den auch gehen wenn du bei

Code: Alles auswählen

CreateSprite(2,4,4) 
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)
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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:

Code: Alles auswählen

XXXX
X--X
X--X
XXXX
wird also sehr klein.

.... ich würde doch empfehlen, sich erstmal grundlegende Gedanken über Koordinaten und so zu machen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Raphi
Beiträge: 175
Registriert: 06.08.2009 16:32
Computerausstattung: Intel Core 2 Duo Processor (2 x 3 Ghz), ATI Radeon HD 4870 (512 MB), 4 GB DDR-2 Ram, Microsoft Windows 7 Ultimate, MBox 2 Mini Soundkarte

Beitrag von Raphi »

Ok.Vielen dank Leute :allright:
Antworten