Извините за перевод, давайте посмотрим, могу ли я что-то внести.
для работы с purebasic в Windows вам не нужны никакие переменные окружения,
что, если вам нужно принять во внимание, что для его работы должен быть установлен DirectX, и я думаю, что библиотеки redist,
я думаю ничего другого
важные вещи для использования спрайтов,
вызвать функцию Initsprite()
создать окно окна,
спрайт можно загрузить с помощью load sprite или создать,
если используется загрузочный спрайт или загрузочное изображение,
usepngimagedecoder() (перед загрузкой)
usepngimageencoder() перед записью в png
иногда вам нужно сначала открыть подпрограмму png или jpg или bmp
С изображениями дело обстоит иначе, так как для них не нужно создавать окно, их можно загружать или создавать, применять фильтры и т. д., а также сохранять их без необходимости создания окон
Код:If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0 Or InitSound() = 0
MessageRequester("Error", "Can't open screen & sprite enviroment!", 0)
End
EndIf
;
desktop_quantity = ExamineDesktops()
;Define.i w, h,
;Debug "You have"+Str(desktop_quantity)+" desktops"
i=0
w = DesktopWidth(i)
h = DesktopHeight(i)
;Debug "Screen:"+Str(i)+", Width="+Str(w)+" Height="+Str(h)
If desktop_quantity>1
i=1
w1 = DesktopWidth(i)
h1 = DesktopHeight(i)
;Debug "Screen:"+Str(i)+", Width="+Str(w)+" Height="+Str(h)
EndIf
If OpenWindow(0, 0, 0, w, h, "sprites", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_Maximize )
If OpenWindowedScreen(WindowID(0), 0, 0, w, h, 0, 0, 0)
UsePNGImageDecoder()
;example load
LoadSprite (1,"atlantis_temple_reconstruccion_71EO2NI0.png")
;example create
xlen=SpriteWidth(1); take width of sprite 1
ylen=SpriteHeight(1);
Dim mask(xlen,ylen)
StartDrawing(SpriteOutput(1))
For x= 0 To xlen-1
For y= 0 To ylen-1
color=Point(x,y)
colorr=Red(color)
colorf=RGB(colorr,colorr,colorr);conver to gray
mask(x,y)=colorf
Next
Next
StopDrawing()
CreateSprite(2, xlen,ylen)
StartDrawing(SpriteOutput(2))
For x= 0 To xlen-1
For y= 0 To ylen-1
color=mask(x,y)
Plot(x,y,color)
Next
Next
StopDrawing()
UsePNGImageEncoder()
SaveSprite (2,"gray.png",UsePNGImageEncoder)
Repeat
SetFrameRate(72)
FlipBuffers()
ClearScreen(0)
DisplayTransparentSprite(1,1,1)
DisplayTransparentSprite(2,100,200)
; Next
; Delay(400)
ExamineKeyboard()
If KeyboardPushed(#PB_Key_D)
Xcam=Xcam-20
EndIf
If KeyboardPushed(#PB_Key_A)
Xcam=Xcam+20
EndIf
If KeyboardPushed(#PB_Key_W)
ycam=ycam+20
EndIf
If KeyboardPushed(#PB_Key_S)
ycam=ycam-20
EndIf
Delay(50)
;
event = 0;
Repeat
event = WindowEvent()
Until Not event;
Until KeyboardPushed(#PB_Key_Escape)
MessageRequester("close", "good luuck", 0)
EndIf
Else
MessageRequester("Error", "Can't open windowed screen!", 0)
End
EndIf
Debug "eend"
End