Basketball Playbook erstellen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
alter Mann
Beiträge: 201
Registriert: 29.08.2008 09:13
Wohnort: hinterm Mond

Beitrag von alter Mann »

.. ob das allerdings nicht den Rahmen sprengt für einen anscheinend Total-Neueinsteiger, wage ich in Frage zu stellen.
Da hast Du wahrscheinlich recht, aber nachdem ich die API-Zeichenfunktionen gefunden hatte, hat mich der Ehrgeiz gepackt. Das größte Problem war für mich herauszufinden, wie man mit API-Funktionen auf ein Image-Gadget malt.
die Übergabe der Arrays irritiert mich etwas.
das wirkt auf mich, als ob mehrere Elemente gezeichnet werden sollten.
außerdem wäre es m.A.n. vorzuziehen, gleich mit POINT structs zu arbeiten, bzw. mit RECT.
Ich bin halt Fan von Arrays. :D Ich wollte die Übergabe so allgemein wie möglich halten, ist so eine Angewohnheit, falls man das noch mal irgendwo anders braucht.
die Bezier funktionen scheinen nicht verwendet zu werden?
Nein, das hatte ich nicht mehr geschafft. Kommt vielleicht noch rein und dann noch ordentlich kommentiert und ab damit in Stargates Codearchiv.
Wird aber erst heute Abend...
Win11 64Bit / PB 6.0
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

> und ab damit in Stargates Codearchiv
Da gehören gute Codes auch hin :allright:
Win11 x64 | PB 6.20
Benutzeravatar
alter Mann
Beiträge: 201
Registriert: 29.08.2008 09:13
Wohnort: hinterm Mond

Beitrag von alter Mann »

Win11 64Bit / PB 6.0
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

schöner Code! :allright:
Ich habe im Supportthread zu STARGATEs Codearchiv mal geschrieben, dass
eine direkte Verlinkung gut wäre (nicht ins Edit-Feld :lol: )
Win11 x64 | PB 6.20
P1TBULL
Beiträge: 51
Registriert: 18.03.2008 02:24

Re: Basketball Playbook erstellen

Beitrag von P1TBULL »

Hallo,

wenn ich ein Hintergrundbild für das ImageGadget verwende verschwindet das Bild beim Zeichnen und die "geraden" Pfeile werden nicht mehr richtig gezeichnet. Woran kann das liegen?

Liebe Grüße

Hier mal der geänderte Abschnitt:

Code: Alles auswählen

Procedure.i Open_WindowMain()
  
  If CatchImage(#ImageID_0,?court) = 0
    MessageRequester("Achtung!","Kann Image nicht erstellen")
    End
  EndIf

  
  ; F: Fenster definieren
  If OpenWindow(#Window_0, 50, 50, 750, 750, "Pfeile malen und Images positionieren",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    
    ImageGadget(#Image_0, 145, 5, 600, 600, ImageID(#ImageID_0))
Bild
c4s
Beiträge: 1235
Registriert: 19.09.2007 22:18

Re: Basketball Playbook erstellen

Beitrag von c4s »

Legst du mehrere ImageGadgets übereinander oder wie?
Mal einfach alles nötige in ein Bild - fertig.
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Benutzeravatar
alter Mann
Beiträge: 201
Registriert: 29.08.2008 09:13
Wohnort: hinterm Mond

Re: Basketball Playbook erstellen

Beitrag von alter Mann »

du musst auf das Image #ImageID_0 zeichnen

z.B. so

Code: Alles auswählen

Procedure Main()
  ; F: Hauptfunktion
  If CreateImage(#ImageID_0,600,600) = 0
    MessageRequester("Achtung!","Kann Image nicht erstellen")
    End
  EndIf

 ;################## eingefügt
 LoadImage(#Image_2,"D:\temp\test.bmp")  ; oder mit CatchImage...
 ;##################

  If CreateImage(#ImageID_1,110,20) = 0
    MessageRequester("Achtung!","Kann Image nicht erstellen")
    End
  EndIf
  
  StartDrawing(ImageOutput(#ImageID_1)) ; Farbe des Images-Button zeichnen
  glColor = RGB(255,255,255)
  Box(0,0,109,19,glColor)
  StopDrawing()

  If Open_WindowMain() = 0
    MessageRequester("Achtung!","Kann Fenster nicht öffnen")
    End
  EndIf

  StartDrawing(ImageOutput(#ImageID_0)) ; Hintergrund des Images zeichnen
  Box(0,0,ImageWidth(#ImageID_0),ImageHeight(#ImageID_0),RGB(50,50,50))

 ;#####################eingefügt
  If IsImage(#Image_2)
    DrawImage(ImageID(#Image_2),0,0,ImageWidth(#ImageID_0),ImageHeight(#ImageID_0))
  EndIf
 ;#####################
  StopDrawing()
  SetGadgetState(#Image_0,ImageID(#ImageID_0))
....

und dann immer neu als Hintergrund zeichnen

Code: Alles auswählen

Procedure Draw (iAnz.i, Array iX.i(1), Array iY.i(1) )
  ; F: Pfeil zeichnen vorbereiten
  ; E: hDC                     Windows Device Context
  ;    iAnz                    Anzahl Koordinaten
  ;    iX(),iY()               Koordinaten

  Protected iTyp = GetGadgetState(#Combo_0)  ; Pfeillinientyp aus Combobox auslesen
  If iTyp = -1
    iTyp = #PS_SOLID
  Else
    iTyp = GetGadgetItemData(#Combo_0,iTyp)
  EndIf
  Protected hDC = StartDrawing(ImageOutput(#ImageID_0))  ; Device Context des Imagegadgets
  Box(0,0,GadgetWidth(#Image_0),GadgetHeight(#Image_0),RGB(50,50,50))  ; Hintergrund

  ;#######################eingefügt
  If IsImage(#Image_2)
    DrawImage(ImageID(#Image_2),0,0,ImageWidth(#ImageID_0),ImageHeight(#ImageID_0))  
  EndIf
  ;#######################
...
Win11 64Bit / PB 6.0
P1TBULL
Beiträge: 51
Registriert: 18.03.2008 02:24

Re: Basketball Playbook erstellen

Beitrag von P1TBULL »

Juhuuu es klappt :bounce:

Vielen Dank!!!!
Bild
P1TBULL
Beiträge: 51
Registriert: 18.03.2008 02:24

Re: Basketball Playbook erstellen

Beitrag von P1TBULL »

Hallo,

ich hab noch ein kleines Problem. Ich wollte über die Funktion Bilder einzufügen ein Bild mit transparentem Hintergrund einbauen aber es wird immer ein weißer Hintergrund anstatt einem transparentem angezeigt. Kann mir jemand helfen wie ich den Hintergrund transparent bekomme?

Liebe Grüße
Bild
Benutzeravatar
alter Mann
Beiträge: 201
Registriert: 29.08.2008 09:13
Wohnort: hinterm Mond

Re: Basketball Playbook erstellen

Beitrag von alter Mann »

schau dir mal die Hilfe zu DrawAlphaImage an
Win11 64Bit / PB 6.0
Antworten