program sdltest; import SDL; Exception QuitNow; Void main() { try { sdlInit(); setWMTitle("SDL Test in Kaya","Kaya SDL"); screen = newSurface(640,480,BPP32,false); pic = loadSurface("url-large.bmp"); px = 88; py = 31; /*pic = loadSurface("kaya_64.bmp"); px = 64; py = 72; setTransparency(pic,SDLColour(192,192,192,255));*/ x = 0; y = 0; while(true) { case nextEvent() of { KeyDown(k,_) -> if (k == NormalKey('q')) { throw(QuitNow); } else if (k == NormalKey('b')) { blitSurface(pic,Rect(0,0,px,py),screen,Rect(0,0,px,py)); updateScreen(screen); } else if (k == FunctionKey(3)) { blitSurface(pic,Rect(0,0,px,py),screen,Rect(300,300,px,py)); updateScreen(screen); } else if (k == ArrowRightKey) { blitSurface(pic,Rect(0,0,px,py),screen,Rect(x+50,y,px,py)); updateScreen(screen); } else if (k == NormalKey('')) { drawRectangle(screen,Rect(x,y,20,20),SDLColour(x%256,y%256,(x+y)%256,0)); updateScreen(screen); } else if (k == NormalKey('P')) { drawRectangle(screen,Rect(x-20,y-20,20,20),SDLColour(x%256,y%256,(x+y)%256,0)); updateScreen(screen); } else { blitSurface(pic,Rect(0,0,px,py),screen,Rect(x,y,px,py)); updateScreen(screen); } | MouseButton(b,x,y) -> blitSurface(pic,Rect(0,0,px,py),screen,Rect(x,y,px,py)); updateScreen(screen); | MouseMove(x,y) -> ; | default -> ; } } } catch(e) { putStrLn(sdlError()); exceptionBacktrace(e); sdlQuit(); } }