J'ai finalement obtenu la détection de collision en utilisant intersects() entre 2 rectangles, et il semble fonctionner. Cependant, le joueur est simplement coincé dans le rectangle et ne peut pas bouger. Donc j'essaie maintenant de vérifier la collision avant que le joueur ne bouge.Détection de collision Java avant de vous déplacer
Voici ce que j'ai essayé:
if(up == true){
Rectangle futurerect = new Rectangle(px,py-=5,81,150);
if(!futurerect.intersects(wallexample)){
py-=5;
repaint();
}
}
if(down == true){
Rectangle futurerect = new Rectangle(px,py+=5,81,150);
if(!futurerect.intersects(wallexample)){
py+=5;
repaint();
}
}
if(left == true){
Rectangle futurerect = new Rectangle(px-=5,py,81,150);
if(!futurerect.intersects(wallexample)){
px-=5;
repaint();
}
}
if(right == true){
Rectangle futurerect = new Rectangle(px+=5,py,81,150);
if(!futurerect.intersects(wallexample)){
px+=5;
repaint();
}
}
Je viens de créer un nouveau rectangle mais où il serait si le joueur se déplace, et vérifier si elle entre en collision. Si c'est le cas, ne bouge pas. Le problème est que lorsque le joueur se déplace dans le rectangle, il ralentit simplement. Il se déplace toujours à travers le mur, mais se déplace à un rythme plus lent pour une raison quelconque.
Qu'est-ce qui cause ce problème?
Ah, je vous remercie, je vois mon erreur maintenant. – joey942