box2d 세계에 일련의 바디가 있습니다. 이 시체는 함께 연결됩니다. 마우스를 누를 때 몸체를 따라 사인파를 만들고 싶습니다. 나는이 물결이 한 번 발생하기를 원하며 몸이 끝날 때까지 동일한 진폭으로 몸의 길이를 따라 계속 움직여야하며 마우스를 한 번 더 누를 때까지 멈추어야합니다.Processing 및 box2d를 사용하여 단일 웨이브 만들기
이float angle = 0.0;
float scalar = 1.2;
float speed = 0.01;
void mousePressed() {
for (int j = 0; j < 91; j++) {
float x = sin(j+angle)*scalar;
float y = 0;
Vec2 mov2 = new Vec2(x,y);
bridge.particles.get(j).body.setLinearVelocity(mov2);
angle+=speed;
}
}
그러나 이것은 단지 (단지 순간에 왼쪽 가닥이 시도) 아래와 같이 바깥쪽으로 확장 하나 개의 연속 파가되기 위해 몸을 일으키는 : 순간
나는 이것을 가지고
설명 된대로 아래쪽으로 한 개의 웨이브를 만들려면 어떻게해야합니까?
내가 사용 @dfour에서 수정 된 코드를 사용하여:
void mousePressed() {
int frequency = 10; // sine frequency (larger for longer wave)
double fullCircle = Math.toRadians(180); // get 1 full iteration of a circle in radians;
float x=0;
float y=0;
for(int i = 0; i < 100 ; i++){
if(i > fullCircle*frequency){
// after first wave so output 0
//System.out.println(0);
}else{
// part of first sinewave so output wave value
x =(float)Math.sin(i/frequency);
Vec2 mov2 = new Vec2(x,y);
print(" x: "+x);
System.out.println(Math.sin(i/frequency));
bridge.particles.get(i).body.setLinearVelocity(mov2);
}
}
}
를하지만 파도가 실제로 몸의 라인 아래 진행하지와 다음이 나에게 주신 다음을 취득하기 위해
[처리 중!] Java : (https://meta.stackoverflow.com/questions/321127/processing-java) – Pshemo
두 태그가 모두 들어 있는지 확인합니다. 그러나 문제는 자바 일 수도 있습니다. one –
본문을 직접 제어하려는 경우 box2d를 사용하는 이유가 있습니까? 몸이 원하는 곳을 안다면 물리 엔진에 의존하는 대신에 그곳에 그려 줄까요? –