Challenge:
Version:
3
Winner?:
No
Code Snippet:
Sync On:Sync Rate 60:Autocam Off `Set effect area Global ax=50 Global ay=50 Get Image 2,0,0,ax,ay,1 Null = Make Vector2(1) Make Object Cube 1,2 Position Object 1,-3,0,10 Color Object 1,Rgb(0,255,0) Make Object Sphere 2,2 Position Object 2,3,0,8 Sprite 2,0,0,2 Stretch Sprite 2,200,200 s#=Sprite Width(2) Do Center Text Screen Width()/2.0,100,"HELLO WORLD" Update_Mouse_Area() s#=s#+(MouseMoveZ()*.01) Size Sprite 2,s#,s# Sprite 2,MouseX()-ax,MouseY()-ay,2 Sync Loop Function Update_Mouse_Area() p1 as Dword p2 as Dword c as Dword x=MouseX():y=MouseY() if x<(ax/2+1) or x>Screen Width()-(ax/2+1) Then Exitfunction If y<(ay/2+1) or y>Screen Width()-(ay/2+1) Then ExitFunction Get Image 2,MouseX()-(ax/2),MouseY()-(ay/2),MouseX()+(ax/2),MouseY()+(ay/2),1 if mouseclick() = 2 then invert() if mouseclick() = 1 then black_white() Endfunction function invert() make memblock from image 2,2 for ix = 0 to Memblock_Width(2)-1 for iy = 0 to Memblock_Height(2)-1 pp = Get_Pixel_Pos(ix,iy,2) write memblock byte 2,pp+0,255-memblock byte(2,pp+0) write memblock byte 2,pp+1,255-memblock byte(2,pp+1) write memblock byte 2,pp+2,255-memblock byte(2,pp+2) next iy next ix make image from memblock 2,2 endfunction Function black_white() c as dword make memblock from image 2,2 for ix = 0 to Memblock_Width(2)-1 for iy = 0 to Memblock_Height(2)-1 pp = Get_Pixel_Pos(ix,iy,2) r=memblock byte(2,pp+0) g=memblock byte(2,pp+1) b=memblock byte(2,pp+2) a=(r+g+b)/3 write memblock byte 2,pp+0,a write memblock byte 2,pp+1,a write memblock byte 2,pp+2,a next iy next ix make image from memblock 2,2 endfunction Function Memblock_Width(MemblockID) If Memblock Exist(MemblockID)=0 then Exitfunction 0 If Get Memblock Size(MemblockID)<12 then exitfunction 0 w=Memblock Dword(MemblockID,0) Endfunction w Function Memblock_Height(MemblockID) If Memblock Exist(MemblockID)=0 then Exitfunction 0 If Get Memblock Size(MemblockID)<12 then exitfunction 0 h=Memblock Dword(MemblockID,4) Endfunction h Function Memblock_Depth(MemblockID) If Memblock Exist(MemblockID)=0 then Exitfunction 0 If Get Memblock Size(MemblockID)<12 then exitfunction 0 d=Memblock Dword(MemblockID,8) Endfunction d Function Get_Pixel_Pos(x,y,MemblockID) p as dword p=0 if Memblock Exist(MemblockID)=0 Then Exitfunction p w=Memblock_Width(MemblockID) h=Memblock_Height(MemblockID) d=Memblock_Depth(MemblockID) p=y*(w*(d/8))+x*(d/8) maxn as dword maxn = h*w*(d/8) if p>Get Memblock Size(MemblockID)-1 p=Get Memblock Size(MemblockID)-1 endif p=p+12 if p<12 then p=12 Endfunction p