Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.69 KB | None | 0 0
  1. import javafx.application.Application;
  2. import javafx.scene.Group;
  3. import javafx.scene.Scene;
  4. import javafx.scene.canvas.Canvas;
  5. import javafx.scene.canvas.GraphicsContext;
  6. import javafx.scene.image.Image;
  7. import javafx.scene.input.MouseEvent;
  8. import javafx.stage.Stage;
  9.  
  10. public class Jahtaus extends Application {
  11.  
  12. @Override
  13. public void start(Stage stage) {
  14. Image image = new Image("file:happy.png");
  15.  
  16. Group root = new Group();
  17. Canvas piirtoalusta = new Canvas(480, 360);
  18. GraphicsContext piirturi = piirtoalusta.getGraphicsContext2D();
  19.  
  20. root.getChildren().add(piirtoalusta);
  21.  
  22. final double[] kuvanSijainti = new double[2];
  23. final double[] historia = new double[2];
  24.  
  25. piirtoalusta.setOnMouseMoved((MouseEvent event) -> {
  26.  
  27. // tyhjennetään ruutu
  28. piirturi.clearRect(0, 0, 480, 360);
  29.  
  30. double vanhaHiirenX = historia[0];
  31. double vanhaHiirenY = historia[1];
  32.  
  33. double vanhaKuvanX = kuvanSijainti[0];
  34. double vanhaKuvanY = kuvanSijainti[1];
  35.  
  36. double hiirenX = event.getX();
  37. double hiirenY = event.getY();
  38.  
  39. double kuvanX = 240;
  40. double kuvanY = 180;
  41.  
  42. if ((hiirenX >= vanhaKuvanX - 25 && hiirenX <= vanhaKuvanX + 25) &&
  43. (hiirenY <= vanhaKuvanY + 75 && hiirenY >= vanhaKuvanY - 25)) {
  44. kuvanX = vanhaHiirenX + 25;
  45. }
  46.  
  47. if ((hiirenX >= vanhaKuvanX && hiirenX <= vanhaKuvanX + 75 ) &&
  48. (hiirenY <= vanhaKuvanY + 75 && hiirenY >= vanhaKuvanY - 25)) {
  49. kuvanX = vanhaHiirenX - 75;
  50. }
  51.  
  52. if ((hiirenX <= vanhaKuvanX + 75 && hiirenX >= vanhaKuvanX - 25) &&
  53. (hiirenY <= vanhaKuvanY + 75 && hiirenY >= vanhaKuvanY)) {
  54. kuvanY = vanhaHiirenY - 75;
  55. }
  56.  
  57. if ((hiirenX <= vanhaKuvanX + 75 && hiirenX >= vanhaKuvanX - 25) &&
  58. (hiirenY <= vanhaKuvanY && hiirenY >= vanhaKuvanY - 75)) {
  59. kuvanY = vanhaHiirenY + 75;
  60. }
  61.  
  62.  
  63.  
  64. // piirretään kuva kohtaan kuvanX, kuvanY
  65. piirturi.drawImage(image, kuvanX, kuvanY, 64, 64);
  66.  
  67. // tallennetaan sijainnit tulevaa käyttöä varten
  68. historia[0] = hiirenX;
  69. historia[1] = hiirenY;
  70.  
  71. kuvanSijainti[0] = kuvanX;
  72. kuvanSijainti[1] = kuvanY;
  73. });
  74.  
  75. stage.setScene(new Scene(root));
  76. stage.show();
  77.  
  78. }
  79.  
  80. public static void main(String[] args) {
  81. launch(args);
  82. }
  83.  
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement