Ein Bild geladen mit Loadimage und dann darstellen ?

Für allgemeine Fragen zur Programmierung mit PureBasic.
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

Ein Bild geladen mit Loadimage und dann darstellen ?

Beitrag von funkheld »

Hallo, guten Tag.
Wie kann ich ein Bild von Loadimage bitte darstellen ?
Diese Bild wurde geladen :
CreateImage(#image_0, 500,500)
LoadImage(#image_0 ,"d:\purebasic\test-pure\data\flaeche1.bmp")

Es soll hier drin dargestellt werden:
StartDrawing(ScreenOutput())
......

Wie geht das bitte?

Danke.
Gruss


Code: Alles auswählen

Global angle.f,x.f,y.f,x1.f,y1.f,xs.f,ys.f
Global delta.l,winkel.l,zahl.l,bild.l

Enumeration
  #Window_0
  #sprite_0
  #strgadget_0
  #image_0
EndEnumeration

Procedure DisplayTransformSprite(Sprite, X.f, Y.f, Width.f, Height.f, Angle.f, CenterX.f=0, CenterY.f=0) 
  Protected Sin.f = Sin(Radian(Angle)), Cos.f = Cos(Radian(Angle))
  TransformSprite(Sprite, Cos*(-Width*0.5-CenterX) - Sin*(-Height*0.5-CenterY), Sin*(-Width*0.5-CenterX) + Cos*(-Height*0.5-CenterY), Cos*( Width*0.5-CenterX) - Sin*(-Height*0.5-CenterY), Sin*( Width*0.5-CenterX) + Cos*(-Height*0.5-CenterY), Cos*( Width*0.5-CenterX) - Sin*( Height*0.5-CenterY), Sin*( Width*0.5-CenterX) + Cos*( Height*0.5-CenterY), Cos*(-Width*0.5-CenterX) - Sin*( Height*0.5-CenterY), Sin*(-Width*0.5-CenterX) + Cos*( Height*0.5-CenterY))
  DisplaySprite(Sprite, X, Y) 
EndProcedure 

InitSprite()

OpenWindow(#Window_0, 0, 0, 800, 600, "Sprite", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Window_0), 10, 10,500,500, 0, 0, 0)

CreateImage(#image_0, 500,500)
LoadImage(#image_0 ,"d:\purebasic\test-pure\data\flaeche1.bmp")

StringGadget(#strgadget_0, 600,  10, 100, 20, "")

CreateSprite(#sprite_0, 100,100)
StartDrawing(SpriteOutput(#sprite_0))
  FillArea(0, 0, #PB_Any, $FF0000)
StopDrawing()

xs=100
ys=100
delta=1

zahl=0
SetGadgetText(#strgadget_0,Str(zahl))
Repeat
  
  Event = WaitWindowEvent(1)    
  Select Event
    Case #PB_Event_Gadget
      EventGadget = EventGadget()
      
      EventType = EventType
    Case #PB_Event_CloseWindow
      EventWindow = EventWindow()
      If EventWindow = #Window_0
        CloseWindow(#Window_0)
        Break
      EndIf
  EndSelect 
  
  ClearScreen(RGB(255,255,0))
  
  StartDrawing(ScreenOutput())
    ...............hier soll das Bild bitte rein.
    For winkel= (angle-30) To (angle+30) Step 4
      x=Sin(-winkel*#PI/180)*75
      y=Cos(-winkel*#PI/180)*75 
      If Point(xs+x,ys+y)= RGB(255,0,0)
        SetGadgetText(#strgadget_0,Str(zahl))
        zahl=zahl+1
      EndIf  
      Plot(xs+x,ys+y,RGB(0,0,0))
      
      x=Sin(-winkel*#PI/180)*40
      y=Cos(-winkel*#PI/180)*40 
      
      If Point(xs+x,ys+y)= RGB(255,0,0)
        SetGadgetText(#strgadget_0,Str(zahl))
        zahl=zahl+1
      EndIf 
      Plot(xs+x,ys+y,RGB(0,0,0))
    Next 
  StopDrawing() 
    
  If GetAsyncKeyState_(#VK_RIGHT)
    angle=angle+1
  ElseIf GetAsyncKeyState_(#VK_LEFT)
    angle=angle-1
  EndIf
 
  If GetAsyncKeyState_(#VK_UP)
    y1=Sin((angle+90)/180*#PI)*delta
    x1=Cos((angle+90)/180*#PI)*delta
    xs+x1
    ys+y1   
  ElseIf GetAsyncKeyState_(#VK_DOWN)
    y1=Sin((angle+90)/180*#PI)*delta
    x1=Cos((angle+90)/180*#PI)*delta
    xs-x1
    ys-y1
  EndIf 
  
  DisplayTransformSprite(#sprite_0, xs,ys,30,40, angle,0,0) 
  
  FlipBuffers()
ForEver
Benutzeravatar
mhs
Beiträge: 224
Registriert: 11.01.2009 16:30
Wohnort: Graben
Kontaktdaten:

Re: Ein Bild geladen mit Loadimage und dann darstellen ?

Beitrag von mhs »

Michael Hack

Michael Hack Software :: Softwareentwicklung | Webentwicklung | IT-Dienstleistungen
www.michaelhacksoftware.de :: www.mh-s.de :: www.michael-hack.de
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

Re: Ein Bild geladen mit Loadimage und dann darstellen ?

Beitrag von funkheld »

Danke es funktioniert.

Gruss
Antworten