Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.55 KB | None | 0 0
  1. // Stavros Messinis, Jimmy Messinis //<>// //<>//
  2. // The Cube Athens
  3.  
  4.  
  5.  
  6. import org.openkinect.freenect.*;
  7. import org.openkinect.processing.*;
  8.  
  9. import java.util.Timer;
  10.  
  11. import java.util.TimerTask;
  12.  
  13. import processing.video.*;
  14. Movie myMovie;
  15. //Movie myTheme;
  16.  
  17. // Kinect Library object
  18.  
  19.  
  20. Kinect kinect;
  21. // Timer class
  22. Timer timer;
  23. Timer timer2;
  24.  
  25.  
  26. //import processing.sound.*;
  27. //SoundFile sndTheme;
  28. //SoundFile sndDrop;
  29.  
  30. int timeToPlay = 120000; // 2 * 60 * 1000
  31. float running;
  32.  
  33. boolean showData =true, showKinectDetect=true;
  34. boolean playedVid=false;
  35. boolean instructionsPlayed=false;
  36. boolean instructionsPlayed1=false;
  37. boolean puzzleSelected = false;
  38. boolean pickingUp = false;
  39. boolean snapped = false;
  40. boolean winner=false;
  41. boolean playingPuzzleSelect=false;
  42.  
  43. // We'll use a lookup table so that we don't have to repeat the math over and over
  44. float[] depthLookUp = new float[2048];
  45. int timeBetweenScreens=2000;
  46. public int xpos=450;
  47. public int ypos=1000;
  48. float newX,newY;
  49. int x=0;
  50. int y=0;
  51. public String path;
  52. int pcsdisplayed = 0;
  53.  
  54. int sceneSelection;
  55. int selectTime=6000,firstSelectTime;
  56. int imgPickedUp = 0;
  57. int c=0;
  58. boolean introPlayed = false;
  59. boolean introPlayed1 = false;
  60. float timeElapsed, timeElapsed2=0, startTime, startTime2=0;
  61. float pixelArea, pixelAreaLast;
  62. float lasttimecheck;
  63. int sceneNo,sceneComplete;
  64. int scene;
  65. boolean chosen =false;
  66. int[] startTimeArr;
  67. float midX,midY;
  68. int selectedPiece = 6;
  69. boolean dragging = false;
  70.  
  71. PImage[] images = new PImage[6];
  72. PImage[][] pcs = new PImage[6][6];
  73. PImage imgScene1;
  74. PImage imgScene2;
  75. PImage imgScene3;
  76. PImage imgScene4;
  77. PImage imgScene5;
  78. PImage imgScene6;
  79. PImage imgLose;
  80. PImage imgGifts;
  81. PImage imgPlacement;
  82. PImage imgOutro;
  83.  
  84. PImage imgBG;
  85. PImage imgBG2;
  86.  
  87. PImage img1complete;
  88. PImage imgIntro;
  89. PImage imgInstructions;
  90. PImage imgPuzzleSelect;
  91. PImage imgWinner;
  92.  
  93. PImage img;
  94. PImage imgOpenedHand;
  95. PImage imgClosedHand;
  96.  
  97. int selectedPiece2;
  98. boolean didSnap = false;
  99. PImage[] snappedImages = new PImage[6];
  100.  
  101. int imgLength = 286;
  102. int imgHeight = 286;
  103. float x0 = 65, y0 = 443,
  104. x1 = x0 + (2*imgLength/3) + 17 , y1 = y0,
  105. x2 = x1 + (2*imgLength/3) , y2 = y0,
  106. x3 = x0 , y3 = y0 + imgHeight / 2,
  107. x4 = x1 , y4 = y3,
  108. x5 = x2 , y5 = y4;
  109.  
  110.  
  111.  
  112.  
  113.  
  114. float firstSelectTime2=0;
  115. boolean reading=false;
  116. void setup() {
  117. fullScreen();
  118.  
  119. loadImages();
  120. loadPieces();
  121.  
  122. kinect = new Kinect(this);
  123. kinect.initDepth();
  124. kinect.enableMirror(true);
  125.  
  126. img = createImage(kinect.width, kinect.height,RGB);
  127.  
  128.  
  129. timer = new Timer(timeToPlay);
  130. startTime = millis();
  131. timer2 = new Timer(2000);
  132. //sndTheme = new SoundFile(this, ".//images//Theme.mp3");
  133. //sndTheme.loop();
  134. //sndPop = new SoundFile(this, ".//images//select.wav");
  135. //sndDrop = new SoundFile(this, ".//images//drop.wav");
  136.  
  137.  
  138. //println(kinect.width,kinect.height);
  139.  
  140. }
  141.  
  142. void draw() {
  143. //println(mouseX, mouseY);
  144. running = millis();
  145.  
  146. if (!introPlayed){
  147. playIntro();
  148. //image(myTheme, 0, midY, 1,1);
  149. //myTheme.play();
  150.  
  151. } else if (introPlayed) {
  152. playInstructions();
  153. } else if (instructionsPlayed ){
  154. reading=true;
  155. playPuzzleSelect();
  156. } else if (puzzleSelected ==true && reading== true){
  157.  
  158. //workinghere
  159. playPuzzle();
  160.  
  161. }
  162.  
  163. if (winner){
  164.  
  165.  
  166. //reading=false;
  167. println("Playing winners");
  168. handAnimate(1,newX,newY);
  169. image(imgWinner,0,0);
  170. image(myMovie, 0, midY, 768,468);
  171. myMovie.play();
  172.  
  173. if (!playedVid){
  174. firstSelectTime=millis();
  175. }
  176. playedVid=true;
  177.  
  178.  
  179. println("timeVid");
  180.  
  181. timeElapsed2=millis()-firstSelectTime;
  182. println(timeElapsed2,firstSelectTime);
  183.  
  184. if (timeElapsed2 >12000 && winner){
  185. //puzzleSelected=true;
  186. //println("chosen ",sceneSelection);
  187.  
  188. println("timeElapsed");
  189. instructionsPlayed = false;
  190. introPlayed = false;
  191. //playedVid=false;
  192. // introPlayed=false;
  193. instructionsPlayed=false;
  194. puzzleSelected = false;
  195. winner=false;
  196. reading=true;
  197. playIntro();
  198.  
  199.  
  200. }
  201.  
  202.  
  203.  
  204. winner=false;
  205.  
  206. //reading=true;
  207.  
  208.  
  209. //if (playedVid==true){
  210. //float timestartVid=millis();
  211. //println("restarting");
  212. //running=7990;
  213.  
  214. //}
  215. }
  216. }
  217.  
  218.  
  219.  
  220. void playIntro(){
  221. reading=false;
  222. if (!introPlayed1){
  223. firstSelectTime=millis();
  224. }
  225. introPlayed1=true;
  226. image(imgIntro,0,0);
  227.  
  228.  
  229. println("Intro");
  230.  
  231. timeElapsed2=millis()-firstSelectTime;
  232. println(timeElapsed2,firstSelectTime);
  233. if (timeElapsed2 >5000){
  234. introPlayed=true;
  235. playInstructions();
  236. }
  237.  
  238. }
  239.  
  240. void playInstructions(){
  241. if (!playingPuzzleSelect){
  242. reading=false;
  243. if (!instructionsPlayed1) {
  244. firstSelectTime=millis();
  245. }
  246. instructionsPlayed1=true;
  247. image(imgInstructions,0,0);
  248. println("Playing Instructions");
  249.  
  250. timeElapsed2=millis()-firstSelectTime;
  251. println(timeElapsed2,firstSelectTime);
  252. if (timeElapsed2 >5000){
  253. instructionsPlayed=true;
  254. playPuzzleSelect();
  255. }
  256. }
  257. }
  258.  
  259.  
  260.  
  261.  
  262.  
  263. void sorryYouLost(){
  264. reading=false;
  265. image(imgLose, 0, 0);
  266. //delay(5000);
  267. introPlayed = false;
  268.  
  269. }
  270.  
  271. void playPuzzle(){
  272. if (!winner){
  273.  
  274. reading=true;
  275. playScene(sceneSelection);
  276. drawSnappedImages();
  277.  
  278.  
  279. tint(255,100);
  280. image(img,midX,midY);
  281. tint(255,255);
  282.  
  283. handAnimate(1,newX,newY);
  284.  
  285. if (timer.isFinished()) {
  286. sorryYouLost();
  287. } else {
  288.  
  289. timer.render();
  290.  
  291.  
  292. if (isPickingUp()) {
  293. //sndPop.play();
  294. dragging = true;
  295. }
  296.  
  297. if (dragging){
  298. dragPiece(sceneSelection, selectedPiece);
  299. snap(sceneSelection,selectedPiece);
  300. //image(
  301. }
  302.  
  303. }
  304. }
  305. }
  306.  
  307. void drawSnappedImages(){
  308.  
  309.  
  310. for (int i=0;i < snappedImages.length; i++){
  311. float theX, theY;
  312. if (snappedImages[i] != null) {
  313. switch (i){
  314. case 0:
  315. theX = x0; theY = y0;
  316. //delay(1000);
  317. winner=true;
  318.  
  319. introPlayed = false;
  320. // reading=false;
  321.  
  322. break;
  323. case 1:
  324. theX = x1; theY = y1;
  325. break;
  326. case 2:
  327. theX = x2 -40; theY = y2;
  328. break;
  329. case 3:
  330. theX = x3; theY = y3;
  331. break;
  332. case 4:
  333. theX = x4; theY = y4 + 65;
  334. break;
  335. case 5:
  336. theX = x5 - 40; theY = y5;
  337.  
  338. break;
  339. default:
  340. theX = 0; theY = 0;
  341. }
  342.  
  343. image(snappedImages[i], theX, theY);
  344. //sndDrop.play();
  345.  
  346.  
  347. }
  348.  
  349. }
  350. }
  351.  
  352. void playScene(int num){
  353. if (!winner){
  354. reading=true;
  355. puzzleSelected=true;
  356. if (sceneComplete!=1){
  357. image(imgBG,0,0);
  358.  
  359. switch(num) {
  360. case 1:
  361. tint(255, 90);
  362. image(imgScene1,midX,midY);
  363. tint(255, 255);
  364. for (int d=0; d < selectedPiece;d++){
  365. image(pcs[num-1][d],400,900);
  366. //println(d);
  367. }
  368. break;
  369. case 2:
  370. //println("case2");
  371. tint(255, 90);
  372. image(imgScene2,midX,midY);
  373. tint(255, 255);
  374. for (int d=0; d < selectedPiece;d++){
  375. image(pcs[num-1][d],400,900);
  376.  
  377. }
  378.  
  379. break;
  380. case 3:
  381. tint(255, 90);
  382. image(imgScene3,midX,midY);
  383. tint(255, 255);
  384. for (int d=0; d < selectedPiece;d++){
  385. image(pcs[num-1][d],400,900);
  386. }
  387. break;
  388.  
  389. case 4:
  390. tint(255, 90);
  391. image(imgScene4,midX,midY);
  392. tint(255, 255);
  393. for (int d=0; d < selectedPiece;d++){
  394. image(pcs[num-1][d],400,900);
  395. }
  396. break;
  397.  
  398. case 5:
  399. tint(255, 90);
  400. image(imgScene5,midX,midY);
  401. tint(255, 255);
  402. for (int d=0; d < selectedPiece;d++){
  403. image(pcs[num-1][d],400,900);
  404. }
  405. break;
  406. case 6:
  407. tint(255, 90);
  408. image(imgScene6,midX,midY);
  409. tint(255, 255);
  410. for (int d=0; d < selectedPiece;d++){
  411. image(pcs[num-1][d],400,900);
  412. }
  413. break;
  414. }
  415.  
  416. }
  417.  
  418. }
  419. }
  420.  
  421. void handAnimate(int state, float newX, float newY){
  422. if (state==1){
  423. image(imgOpenedHand, newX,newY);
  424. }else{
  425. image(imgClosedHand,newX,newY);
  426. }
  427. }
  428.  
  429.  
  430.  
  431.  
  432. void playWinner(){
  433. //reading=false;
  434. println("Playing winner");
  435. image(imgWinner,0,0);
  436. firstSelectTime2=millis();
  437. println("tm:",firstSelectTime2);
  438. playedVid=true;
  439. restartApp();
  440. println("playing Vid");
  441. timeElapsed2=millis()-firstSelectTime2;
  442. println(timeElapsed2,firstSelectTime2);
  443. //stop();
  444.  
  445. }
  446.  
  447.  
  448.  
  449. void playPuzzleSelect(){
  450. playingPuzzleSelect=true;
  451. if (!winner && reading==true){
  452. image(imgPuzzleSelect,0,0);
  453. kinectRead();
  454. selectScene();
  455. }
  456. }
  457.  
  458.  
  459. //SELECT SCENE
  460. void selectScene(){
  461. if (!puzzleSelected ){
  462. stroke(255);
  463. noFill();
  464.  
  465. if (newX>=47 && newX<=373) { // 1st puzzle
  466. if (newY>=400 && newY<=580){
  467. if (sceneSelection!=1){
  468. firstSelectTime=millis();
  469. }
  470.  
  471. sceneSelection=1;
  472.  
  473. //println("selecing TL");
  474.  
  475. timeElapsed2=millis()-firstSelectTime;
  476. //println(timeElapsed2,firstSelectTime);
  477.  
  478. if (timeElapsed2 >2000){
  479. //puzzleSelected=true;
  480. //println("chosen ",sceneSelection);
  481. fill(255,55);
  482. rect(40,395,340,195);
  483. }
  484. }
  485. }
  486.  
  487. if (newX>=362 && newX<=719) { // 2nd puzzle
  488. if (newY>=400 && newY<=580){
  489. if (sceneSelection!=2){
  490. firstSelectTime=millis();
  491. }
  492.  
  493. sceneSelection=2;
  494.  
  495. //println("selecing TR");
  496.  
  497. timeElapsed2=millis()-firstSelectTime;
  498. //println(timeElapsed2,firstSelectTime);
  499.  
  500. if (timeElapsed2 >2000){
  501. //puzzleSelected=true;
  502. //println("chosen ",sceneSelection);
  503. fill(255,55);
  504. rect(385,395,340,195);
  505. }
  506. }
  507. }
  508.  
  509. if (newX>=47 && newX<=373) { // 3rd puzzle
  510. if (newY>=600 && newY<=780){
  511. if (sceneSelection!=3){
  512. firstSelectTime=millis();
  513. }
  514.  
  515. sceneSelection=3;
  516.  
  517. //println("selecing ML");
  518.  
  519. timeElapsed2=millis()-firstSelectTime;
  520. //println(timeElapsed2,firstSelectTime);
  521.  
  522. if (timeElapsed2 >2000){
  523. //println("chosen ",sceneSelection);
  524. fill(255,55);
  525. rect(40,595,340,195);
  526. }
  527. }
  528. }
  529.  
  530. if (newX>=362 && newX<=719) {
  531. if (newY>=600 && newY<=780){
  532. if (sceneSelection!=4){
  533. firstSelectTime=millis();}
  534. sceneSelection=4;
  535. //println("selecing MR");
  536. timeElapsed2=millis()-firstSelectTime;
  537. //println(timeElapsed2,firstSelectTime);
  538. if (timeElapsed2 >2000){
  539. //puzzleSelected=true;
  540. //println("chosen ",sceneSelection);
  541. fill(255,55);
  542. rect(385,595,340,195);
  543. }
  544. }
  545. }
  546.  
  547. if (newX>=47 && newX<=373) {
  548. if (newY>=800 && newY<=980){
  549. if (sceneSelection!=5){
  550.  
  551. firstSelectTime=millis();}
  552. sceneSelection=5;
  553. //println("selecing BL");
  554. timeElapsed2=millis()-firstSelectTime;
  555. //println(timeElapsed2,firstSelectTime);
  556. if (timeElapsed2 >2000){
  557. //puzzleSelected=true;
  558. //println("chosen ",sceneSelection);
  559. fill(255,55);
  560. rect(40,795,340,195);
  561. }
  562. }
  563. }
  564.  
  565. if (newX>=362 && newX<=719) {
  566. if (newY>=800 && newY<=980){
  567. if (sceneSelection!=6){
  568. firstSelectTime=millis();}
  569. sceneSelection=6;
  570. //println("selecing BR");
  571. timeElapsed2=millis()-firstSelectTime;
  572. //println(timeElapsed2,firstSelectTime);
  573. if (timeElapsed2 >2000){
  574. //puzzleSelected=true;
  575. //println("chosen ",sceneSelection);
  576. fill(255,55);
  577. rect(385,795,340,195);
  578. }
  579. }
  580. }
  581.  
  582. switch (sceneSelection) {
  583. case 1:
  584. rect(40,395,340,195);
  585. if (millis()-firstSelectTime>2000) {
  586. //image(
  587. playScene(1);
  588. timer.start();
  589. //println(millis()-firstSelectTime);
  590. }
  591. break;
  592.  
  593. case 2:
  594.  
  595. rect(385,395,340,195);
  596. if (millis()-firstSelectTime>2000) {
  597. playScene(2);
  598. timer.start();
  599. //println(millis()-firstSelectTime);
  600. }
  601.  
  602. break;
  603.  
  604. case 3:
  605. timeElapsed2=0;
  606. rect(40,595,340,195);
  607. if (millis()-firstSelectTime>2000) {
  608. playScene(3);
  609. timer.start();
  610. //println(millis()-firstSelectTime);
  611. }
  612. break;
  613. case 4:
  614. timeElapsed2=0;
  615. rect(385,595,340,195);
  616. if (millis()-firstSelectTime>2000) {
  617. playScene(4);
  618. timer.start();
  619. //println(millis()-firstSelectTime);
  620. }
  621. break;
  622. case 5:
  623. timeElapsed2=0;
  624. rect(40,795,340,195);
  625. if (millis()-firstSelectTime>2000) {
  626. playScene(5);
  627. timer.start();
  628. //println(millis()-firstSelectTime);
  629. }
  630. break;
  631. case 6:
  632. timeElapsed2=0;
  633. rect(385,795,340,195);
  634. if (millis()-firstSelectTime>2000) {
  635. playScene(6);
  636. timer.start();
  637. //println(millis()-firstSelectTime);
  638. }
  639. break;
  640. default:
  641. rect(0,0,0,0);
  642. firstSelectTime=0;
  643. sceneSelection=0;
  644. timeElapsed2=0;
  645. }
  646.  
  647.  
  648. }
  649.  
  650. }
  651.  
  652. //READ KINECT DATA
  653. void kinectRead(){
  654. if (reading==true){
  655.  
  656. //background(255);
  657. img.loadPixels();
  658.  
  659. // Get the raw depth as array of integers
  660. int[] depth = kinect.getRawDepth();
  661. float sumX=0;
  662. float sumY=0;
  663. float totalPixels =0;
  664.  
  665.  
  666. float minThresh=300;
  667. float maxThresh=800;
  668.  
  669. for (int x = 0; x < kinect.width; x++) {
  670. for (int y = 0; y < kinect.height; y++) {
  671. int offset = (x + y*kinect.width);
  672. int d=depth[offset];
  673.  
  674. if (d >minThresh && d< maxThresh) {
  675. img.pixels[offset] =color (200,0,0);
  676. sumX +=x;
  677. sumY +=y;
  678. totalPixels ++;
  679. } else {
  680. img.pixels[offset]=color(0);
  681. }
  682. }
  683. }
  684.  
  685. img.updatePixels();
  686.  
  687. midX = (768/2)-(kinect.width/2);
  688. midY = (1366/2)-(kinect.height/2);
  689.  
  690. if (showKinectDetect==true) {
  691. tint(255,123);
  692. image(img,midX,midY);
  693. tint(255,255);
  694. }
  695. if(pixelAreaLast>pixelArea){
  696. //println("NoChange");
  697. } else {
  698. pixelAreaLast=pixelArea;
  699. }
  700.  
  701. delay(10);
  702.  
  703. pixelArea = sumX*sumY/1000000;
  704. float avgX = sumX / totalPixels;
  705. float avgY = sumY / totalPixels;
  706. fill(255,0,255);
  707.  
  708. if (pixelArea > 1000000) {
  709. //ellipse(avgX+midX,avgY+midY,64,64);
  710. //map newX and newY from avgX and avgY to cover all the screen
  711. //newX=mouseX;
  712. //newY=mouseY;
  713. newX=map(avgX,0,kinect.width,0,width);
  714. newY=map(avgY,0,kinect.height,0,height);
  715. //newX=map(mouseX,0,kinect.width,0,width);
  716. //newY=map(mouseY,0,kinect.height,0,height);
  717. handAnimate(1,newX,newY);
  718. } else {
  719. //newX=mouseX;
  720. //newY=mouseY;
  721. //newX=map(mouseX,0,kinect.width,0,width);
  722. //newY=map(mouseY,0,kinect.height,0,height);
  723. newX=map(avgX,0,kinect.width,0,width);
  724. newY=map(avgY,0,kinect.height,0,height);
  725. handAnimate(0,newX,newY);
  726. //ellipse(newX,newY,64,64);
  727. //image(img1complete,avgX+midX,avgY+midY);
  728. }
  729.  
  730.  
  731.  
  732.  
  733. //if (avgX >470 && avgY>450){
  734. // println ("in the box");
  735. // imgPickedUp=c;
  736. //}
  737. //Show Data on top left of screen if showData boolean is true
  738. if (showData == true) {
  739. fill(0);
  740. text(pixelArea,10,10);
  741. //text ("x:"+avgX+"y:"+avgY,midX+10,midY+20);
  742. text ("x:"+newX+"y:"+newY,10,20);
  743.  
  744. text ("Mx:"+mouseX+"My:"+mouseY,10,40);
  745. newX=mouseX;
  746. newY=mouseY;
  747. text ("Px%Delta:"+(pixelArea/pixelAreaLast)*100,10,50);
  748. //delay(1000);
  749. //if pixelArea
  750. }
  751.  
  752. }
  753. }
  754.  
  755. void drawDebug(){
  756. fill(0);
  757. text(pixelArea,10,10);
  758. //text ("x:"+avgX+"y:"+avgY,midX+10,midY+20);
  759. text ("x:"+newX+"y:"+newY,10,20);
  760.  
  761. text ("Mx:"+mouseX+"My:"+mouseY,10,40);
  762. text ("Px%Delta:"+(pixelArea/pixelAreaLast)*100,10,50);
  763. //delay(1000);
  764. //if pixelArea
  765. }
  766.  
  767. boolean isPickingUp(){
  768. if (newX>=400 && newX<=680) {
  769. if (newY>=900 && newY<=1185){
  770. if (!pickingUp){
  771. firstSelectTime=millis();
  772. }
  773. pickingUp = true;
  774.  
  775. timeElapsed2=millis()-firstSelectTime;
  776. if (timeElapsed2 >2000){
  777. // Got it
  778.  
  779. return true;
  780.  
  781. }
  782. }
  783. }
  784. return false;
  785. }
  786.  
  787. void dragPiece(int puzzle, int piece){
  788. if (!winner){
  789. //println(puzzle);
  790. if (pcs[puzzle-1].length > 0){
  791. image(pcs[puzzle - 1][piece -1],newX - 140 + 77 ,newY - 140 + 56);
  792. }
  793. }
  794. handAnimate(0,newX,newY);
  795. }
  796.  
  797. void snap(int puzzle, int piece){
  798. //println("Puzzle length:" + pcs[puzzle - 1].length);
  799. noFill();
  800. stroke(255);
  801. tint(255, 70);
  802. //rect(x0,y0, imgLength, imgHeight);
  803. //rect(x1,y1, imgLength, imgHeight);
  804. //rect(x2,y2, imgLength, imgHeight);
  805. //rect(x3,y3, imgLength, imgHeight);
  806. //rect(x4,y4, imgLength, imgHeight);
  807. //rect(x5,y5, imgLength, imgHeight);
  808. tint(255,255);
  809.  
  810.  
  811.  
  812. stroke(255);
  813. //println(x5, imgLength * 2 + 65);
  814.  
  815. switch (selectedPiece) {
  816. case 1:
  817. if (newX - 50>=x0 && newX -50 < x1) {
  818. if (newY -50 >=y0 && newY -50 < y3){
  819. snapHere();
  820. }
  821. }
  822. break;
  823. case 2:
  824. if (newX - 50>=x1 && newX -50 < x2) {
  825. if (newY -50 >=y0 && newY -50 < y3){
  826. snapHere();
  827. }
  828. }
  829. break;
  830. case 3:
  831. if (newX - 50>=x2 && newX -50 < 715) {
  832. if (newY -50 >=y2 && newY -50 < y3){
  833. snapHere();
  834. }
  835. }
  836. break;
  837. case 4:
  838. if (newX - 50>=x3 && newX -50 < x4) {
  839. if (newY -50 >=y3 && newY -50 < 875){
  840. snapHere();
  841. }
  842. }
  843. break;
  844. case 5:
  845. if (newX>=255 && newX< 515) {
  846. if (newY>=586 && newY< 875){
  847. snapHere();
  848. }
  849. }
  850. break;
  851. case 6:
  852. if (newX>=x5 && newX < 715) {
  853. if (newY >=600 && newY < 700){
  854. snapHere();
  855. }
  856. }
  857. break;
  858.  
  859. }
  860.  
  861.  
  862. if (didSnap){
  863. if (pcs[puzzle-1].length > 0){
  864. snappedImages[selectedPiece -1] = pcs[puzzle - 1][selectedPiece -1];
  865. pcs[puzzle - 1] = (PImage[]) shorten(pcs[puzzle - 1]);
  866. } else {
  867. println("zonk");
  868. }
  869. didSnap = false;
  870. println("Puzzle length after shorten:" + pcs[puzzle - 1].length);
  871. selectedPiece --;
  872.  
  873. }
  874.  
  875. }
  876.  
  877. void snapHere(){
  878. if (!snapped){
  879. firstSelectTime=millis();
  880. }
  881.  
  882. snapped = true;
  883. timeElapsed2=millis()-firstSelectTime;
  884.  
  885. if (timeElapsed2 > 1000){
  886.  
  887. println("Snapped");
  888. didSnap = true;
  889. }
  890. //pickingUp = true;
  891.  
  892.  
  893. handAnimate(1,newX,newY);
  894. dragging = false;
  895. }
  896.  
  897. void loadPieces(){
  898. for (int puzzle = 0; puzzle < 6; puzzle ++) {
  899. for (int piece = 0; piece < 6; piece ++) {
  900. pcs[puzzle][piece] = loadImage(".//images//ep" + puzzle + "-" + piece + ".png");
  901. //println("//images//ep" + puzzle + "-" + piece + ".png");
  902. }
  903. }
  904. }
  905.  
  906.  
  907. void movieEvent(Movie m) {
  908. m.read();
  909. }
  910.  
  911.  
  912. void loadImages(){
  913. String path=".//images//";
  914.  
  915. myMovie = new Movie(this, path + "vid.mp4");
  916. //myTheme = new Movie(this, path + "theme.mp4");
  917.  
  918. imgLose = loadImage(path + "lose.png");
  919. imgGifts = loadImage(path + "gifts.png");
  920. imgPlacement=loadImage(path + "placement.png");
  921. imgOutro = loadImage(path + "outro.png");
  922. imgScene1 = loadImage(path + "series_1.png");
  923. imgScene2 = loadImage(path + "series_2.png");
  924. imgScene3 = loadImage(path + "series_3.png");
  925. imgScene4 = loadImage(path + "series_4.png");
  926. imgScene5 = loadImage(path + "series_5.png");
  927. imgScene6 = loadImage(path + "series_6.png");
  928.  
  929.  
  930. imgOpenedHand = loadImage(path + "openhandlight.png"); // Load the image into the program
  931. imgClosedHand = loadImage(path + "closedhand.png");
  932. imgWinner = loadImage(path +"winner.png");
  933. imgIntro = loadImage(path + "001.png");
  934. imgInstructions=loadImage(path + "002.png");
  935. imgPuzzleSelect=loadImage(path + "003.png");
  936.  
  937. imgBG=loadImage(path + "puzzlebackground.png");
  938. img1complete=loadImage(path+"1complete"+".png");
  939. }
  940.  
  941. void restartApp(){
  942.  
  943.  
  944. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement