Game Development Asked by ngọc quý nguyễn on January 5, 2022
I’m making a game like angry birds with LibGDX and box2d in which I want to drag a ball (instead of the bird) back before releasing it.
I deploy with testPoint function: when I touch down the screen, I check if the point is within the body of the ball or not but testPoint function never works exactly. Here’s what I’m trying thanks so much:
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
for(Fixture fixture:bird.getBody().getFixtureList()) {
if(fixture.testPoint(screenX/100, (mapHeight-screenY)/100)) { //100 is scaled parameter
draggedBird = true;
return true;
}
}
return false;
}
The problem I see is you are dividing the screenX
and screenY
values by 100 here:
if(fixture.testPoint(screenX/100, (mapHeight-screenY)/100)) { //100 is scaled parameter
screenX
and screenY
are the values indicating the X and Y coordinates of your touch and by sending a modified value to your testPoint
method you're not testing with the right values.
I suggest you send the original values to your testPoint
method like so:
fixture.testPoint(screenX, mapHeight - screenY)
A couple of tips:
onDragged
method
instead of the touchDown
one.OrthographicCamera
for your game (which is recommended) you don't have to worry about wrong screen coordinates since you unproject the values to the correct ones and you don't even have to worry about the Y axis being reversed, here's an example:OrthographicCamera camera = new OrthographicCamera(gameWidth, gameHeight); // gameWidth and gameHeight can be any float you want
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
Vector3 unprojected = camera.unproject(new Vector3(screenX, screenY, 0f));
float x = unprojected.x;
float y = unprojected.y;
for(Fixture fixture:bird.getBody().getFixtureList()) {
if(fixture.testPoint(x, y) {
draggedBird = true;
return true;
}
}
return false;
}
Answered by Luis Fernando Frontanilla on January 5, 2022
0 Asked on January 23, 2021 by shunkashuu
1 Asked on January 17, 2021 by shamen-raze
1 Asked on January 15, 2021 by hesitatetowonder
0 Asked on January 14, 2021 by liad
1 Asked on January 8, 2021 by anonymous-entity
0 Asked on January 5, 2021 by austin-weaver
0 Asked on January 4, 2021 by the_e
5 Asked on January 3, 2021 by ryan-berserkguard-nrby
1 Asked on December 31, 2020 by bluejayke
2d collision avoidance collision detection collision prediction javascript
0 Asked on December 25, 2020 by aimon-z
1 Asked on December 23, 2020 by gus-k
1 Asked on December 18, 2020 by hatinacat2000
Get help from others!
Recent Questions
Recent Answers
© 2022 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP, SolveDir