44 lines
1.2 KiB
HolyC
44 lines
1.2 KiB
HolyC
|
/*$LK,"gr.dc",A="MN:CGrGlbls"$ is the persistent layer. You can access
|
|||
|
it directly but two tasks accessing it simultaneously
|
|||
|
with no $LK,"DCAlias",A="MN:DCAlias"$() will screw-up color and stuff.
|
|||
|
*/
|
|||
|
|
|||
|
U0 SunMoon()
|
|||
|
{
|
|||
|
I64 i,x,y,radius;
|
|||
|
|
|||
|
AutoComplete; //AutoComplete Off
|
|||
|
WinBorder; //No Border
|
|||
|
WinMax; //Maximize window
|
|||
|
DocClear; //Clear command-line text
|
|||
|
Fs->text_attr=BLACK<<4+WHITE; //Current $LK,"CTask",A="MN:CTask"$ is Fs segment register.
|
|||
|
|
|||
|
for (i=0;i<0x8000;i+=0x200) {
|
|||
|
//Sun
|
|||
|
x=0.2*GR_WIDTH; y=0.5*GR_HEIGHT; radius=120;
|
|||
|
gr.dc->color=DKGRAY;
|
|||
|
GrCircle(gr.dc,x,y,radius);
|
|||
|
gr.dc->color=ROPF_DITHER+RED<<16+YELLOW;
|
|||
|
GrFloodFill(gr.dc,x,y);
|
|||
|
|
|||
|
//Moon
|
|||
|
x=0.8*GR_WIDTH-i/0x200; y=0.5*GR_HEIGHT; radius=75;
|
|||
|
gr.dc->color=DKGRAY;
|
|||
|
GrCircle(gr.dc,x,y,radius);
|
|||
|
//<CTRL-ALT-a> for the "<22>" character.
|
|||
|
GrCircle(gr.dc,x+0.5*radius,y,1.2*radius,,<EFBFBD>-.31*<EFBFBD>,0.62*<EFBFBD>);
|
|||
|
gr.dc->color=ROPF_PROBABILITY_DITHER+LTGRAY<<16+BLACK;
|
|||
|
gr.dc->dither_probability_u16=i; //U16 can be [0,65535]
|
|||
|
GrFloodFill(gr.dc,x+0.5*radius,y);
|
|||
|
gr.dc->dither_probability_u16=2*i; //U16 can be [0,65535]
|
|||
|
GrFloodFill(gr.dc,x-0.75*radius,y);
|
|||
|
|
|||
|
Refresh; //Typically 30 fps
|
|||
|
DCFill;
|
|||
|
}
|
|||
|
|
|||
|
Fs->text_attr=WHITE<<4+BLUE;
|
|||
|
}
|
|||
|
|
|||
|
SunMoon;
|