This thrilling Ucigame demo illustrates timers and sprite rotation. Each of the five letters in "LUNCH" appears, after a delay, at a random spot on the canvas, rotates one or more times, and then disappears. The sprite images are all in images/lunch.png. | |
LunchTimer.java import ucigame.*; public class LunchTimer extends Ucigame { Sprite bigL, bigU, bigN, bigC, bigH; double bigLRotation = 0; double bigURotation = 0; double bigNRotation = 0; double bigCRotation = 0; double bigHRotation = 0; int WIDTH = 250, HEIGHT = 250; public void setup() { window.size(WIDTH, HEIGHT); window.title("LunchTimer"); framerate(30); canvas.background(230, 230, 180); // Create the five sprites from five parts of lunch.png bigL = makeSprite(50,50); bigL.addFrame(getImage("images/lunch.png", 255), 0, 0); bigL.position(random(WIDTH - 50), random(HEIGHT - 50)); bigL.hide(); bigU = makeSprite(50,50); bigU.addFrame(getImage("images/lunch.png", 255), 50, 0); bigU.position(random(WIDTH - 50), random(HEIGHT - 50)); bigU.hide(); bigN = makeSprite(50,50); bigN.addFrame(getImage("images/lunch.png", 255), 100, 0); bigN.position(random(WIDTH - 50), random(HEIGHT - 50)); bigN.hide(); bigC = makeSprite(50,50); bigC.addFrame(getImage("images/lunch.png", 255), 150, 0); bigC.position(random(WIDTH - 50), random(HEIGHT - 50)); bigC.hide(); bigH = makeSprite(50,50); bigH.addFrame(getImage("images/lunch.png", 255), 200, 0); bigH.position(random(WIDTH - 50), random(HEIGHT - 50)); bigH.hide(); startTimer("bigLappear", 2000); startTimer("bigUappear", 3000); startTimer("bigNappear", 4000); startTimer("bigCappear", 5000); startTimer("bigHappear", 7000); } public void draw() { canvas.clear(); bigL.rotate(bigLRotation); bigL.draw(); bigU.rotate(bigURotation); bigU.draw(); bigN.rotate(bigNRotation); bigN.draw(); bigC.rotate(bigCRotation); bigC.draw(); bigH.rotate(bigHRotation); bigH.draw(); } public void bigLappearTimer() { bigL.show(); stopTimer("bigLappear"); startTimer("bigLrotator", 100); } public void bigLrotatorTimer() { bigLRotation += 360/80; if (bigLRotation >= 360) { stopTimer("bigLrotator"); startTimer("bigLdisappear", 2000); } } public void bigLdisappearTimer() { bigL.hide(); stopTimer("bigLdisappear"); } public void bigUappearTimer() { bigU.show(); stopTimer("bigUappear"); startTimer("bigUrotator", 50); } public void bigUrotatorTimer() { bigURotation += 720/140; if (bigURotation >= 720) { stopTimer("bigUrotator"); startTimer("bigUdisappear", 3000); } } public void bigUdisappearTimer() { bigU.hide(); stopTimer("bigUdisappear"); } public void bigNappearTimer() { bigN.show(); stopTimer("bigNappear"); startTimer("bigNrotator", 500); } public void bigNrotatorTimer() { bigNRotation += 360/12; if (bigNRotation >= 360) { stopTimer("bigNrotator"); startTimer("bigNdisappear", 4000); } } public void bigNdisappearTimer() { bigN.hide(); stopTimer("bigNdisappear"); } public void bigCappearTimer() { bigC.show(); stopTimer("bigCappear"); startTimer("bigCrotator", 50); } public void bigCrotatorTimer() { bigCRotation += 1080/100; if (bigCRotation >= 1080) { stopTimer("bigCrotator"); startTimer("bigCdisappear", 5000); } } public void bigCdisappearTimer() { bigC.hide(); stopTimer("bigCdisappear"); } public void bigHappearTimer() { bigH.show(); stopTimer("bigHappear"); startTimer("bigHrotator", 50); } public void bigHrotatorTimer() { bigHRotation += 360/60; if (bigHRotation >= 360) { stopTimer("bigHrotator"); startTimer("bigHdisappear", 6000); } } public void bigHdisappearTimer() { bigH.hide(); stopTimer("bigHdisappear"); } } |