2017-11-18 3 views
0

처리 할 때 내 코드가 도움이 필요합니다. 마우스 클릭 이미지가 사라지고 새로운 랜덤 위치에 나타납니다. 새로운 위치를 어떻게 확인할 수 있습니까? (처리 중)

  • 은 이미지를 클릭하여 ... :(

    내 목표는 ... 사실은 짧고 쉬운 코드이지만, 모든 어려운 것 같다 나를 위해, 그래서 나는, 프로그래밍 초보자입니다.

  • 마우스를 클릭하면 이미지가 사라지고 새로운 임의의 위치에 표시됩니다.
  • 그러면 새 임의의 위치에서 이미지를 클릭 할 수 있어야하며 다시 동일한 작업을 수행해야합니다. 새로운 임의의 위치에 나타남 ... 등등.

몇 가지 코드를 작성했지만 (아래 참조) 올바르게 작동하지 않습니다. 누군가가 내게 도움을 줄 수 있다면 정말 고맙겠습니다. 내 코드가 잘못된 것입니다. 대단히 감사드립니다!

PImage pic; 

// Declare variables for the picture 
float pic_x; 
float pic_y; 
float pic_r = 100; 

float pic_x_new = random(0, 400); 
float pic_y_new = random(0, 400); 

boolean mouseOverPic; 

void setup(){ 
size(500,500); 
background(0,100,0); 

//loading the picture 
pic = loadImage("pic.png"); 
image(pic, pic_x, pic_y, pic_r, pic_r); 
} 


void draw(){ 

mouseOverPic = mouseX <= pic.width 
&& mouseX >= pic_x 
&& mouseY <= pic.height 
&& mouseY >= pic_y; 

if (mousePressed && mouseOverPic) { 
    background(100); 
    image(pic, pic_x_new, pic_y_new, pic_r, pic_r); 
} 
} 

답변

1

당신이 당신의 코드가 제대로 작동하지 않는 말보다 더 구체적으로 시도하십시오 수 : :) 여기

내 코드? debugging your code을 시도하여 문제점을 줄였습니까? 어떤 코드 줄이 예상 한 것과 다르게 동작합니까?

이미지를 클릭 할 때만 이미지를 그리기 때문에 코드는 의미가 없습니다. 그게 당신이하고 싶은 것처럼 들리는 것은 아닙니다. 그리고 충돌 감지 코드가 올바르지 않습니다. 일부 예제 값을 사용하여 코드를 실행하여 정확히 무엇을하는지 확인하십시오. Processing available에서 here의 충돌 감지에 대한 자습서를 작성했습니다.

이 문제를 해결하려면 실제로 break your problem down into smaller pieces이 필요하며 한 번에 하나씩 가져 가야합니다. 예 :

  • 마우스가 안에 있으면 색이 변하는 하드 코딩 된 사각형을 보여주는 간단한 예제 프로그램을 만들 수 있습니까?
  • 그러면 프로그램을 실행할 때마다 임의의 위치에 사각형이 표시 될 수 있습니까?
  • 그런 다음 사각형을 클릭하여 위치를 변경할 수 있도록 할 수 있습니까?

특정 단계에서 문제가 발생하면 문제를 좁히고 MCVE을 새 질문으로 게시하십시오. 행운을 빕니다.

0

나는 pic_x에 대해 테스트하지만 이미지를 그리는 데 pic_x_new을 사용합니다 (y과 동일). 동일한 var를 사용하여 이미지를 배치하고 테스트해야합니다.

또 다른 접근법은 매개 변수로 새 값을 전달하는 이미지에 대해 마우스를 테스트하는 기능을 만드는 것입니다.

관련 문제