Идея возникла после недолгого обсуждения демки Scroller Again/darklite&offence. Я решил написать простой эффект и застрял на два дня. Получился некий наклонный шрифт, который я не смог исправить. В финале стала пропадать верхняя линия шрифта - исправил. Пусть полежит пока.
Написал на пуревасике простое рисование, одно решение появилось сразу:
If OpenWindow(0, 0, 0, 512, 384, "CanvasGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CanvasGadget(0, 0, 0, 512, 384)
CreateImage(0,512,384)
StartDrawing(ImageOutput(0))
Box(0,0,256,192,0)
m$="Megascroll"
For x=1 To Len(m$)
c=Asc(Mid(m$,x,1))-32
For y=0 To 7
cc=PeekA(?zxfnt+c*8+y)
For j=0 To 7
If cc & (128>>j)
Box(20+2*(x*8+j),2*y,2,2,$FFFFFF)
;Box(2*(x*8+j-y),2*(x*8-8+j+y),4,2,$FF)
Box(2*(x*8+j-y),2*(x*8-8+j+y),4,2,$FF)
EndIf
Next j
Next y
Next x
StopDrawing()
SaveImage(0,"45degree.bmp")
If StartDrawing(CanvasOutput(0))
DrawImage(ImageID(0),0,0);,512,384)
StopDrawing()
EndIf
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
EndIf
DataSection
zxfnt:
IncludeBinary "SQUARE.FNT"
CanvasGadget(0, 0, 0, 512, 384)
CreateImage(0,512,384)
StartDrawing(ImageOutput(0))
Box(0,0,256,192,0)
m$="Megascroll"
For x=1 To Len(m$)
c=Asc(Mid(m$,x,1))-32
For y=0 To 7
cc=PeekA(?zxfnt+c*8+y)
For j=0 To 7
If cc & (128>>j)
Box(20+2*(x*8+j),2*y,2,2,$FFFFFF)
;Box(2*(x*8+j-y),2*(x*8-8+j+y),4,2,$FF)
Box(2*(x*8+j-y),2*(x*8-8+j+y),4,2,$FF)
EndIf
Next j
Next y
Next x
StopDrawing()
SaveImage(0,"45degree.bmp")
If StartDrawing(CanvasOutput(0))
DrawImage(ImageID(0),0,0);,512,384)
StopDrawing()
EndIf
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
EndIf
DataSection
zxfnt:
IncludeBinary "SQUARE.FNT"
Дополнение. Осилил вторую часть.



Комментарии
Отправить комментарий