메신저 플랫폼 유형의 게임 만들기. Rectangle 클래스뿐만 아니라 플랫폼을 사용하여 주인공을 사각형으로 만들었습니다. 플랫폼은 화면에서 지속적으로 위쪽으로 움직이며, 캐릭터가 플랫폼의 상단과 충돌 할 때 플랫폼과 동일한 속도로 착륙하고 움직여야합니다. 그렇지 않으면 그는 떨어지고 있어야합니다. 나는 떨어지는 부분을 제외하고는 일할 모든 것을 얻었습니다. 내가 떨어지는 것을 켜면, 그것은 플랫폼에 머무를 수 없지만, 내가 떨어질 때 켜면 잘 동작합니다. 기본적으로 캐릭터는 플랫폼에 착륙하지 않는 한 전체 시간 동안 떨어지는 것으로 가정하고 y 방향/속도는 플랫폼의 속도로 변경해야합니다.xna에서 낙하 및 충돌
여기에 코드의 일부가 있습니다. 플랫폼과 충돌하지 않을 때마다 문자를 떨어 뜨리는 방법에 대한 도움이 될 것입니다. 내가 아는 것이 더 좋은 방법이 있다면, 내가하고있는 일이 가장 효과적인 방법이 아닐지도 모른다. 나는 XNA에 새로운 해요,하지만 난 자바/C#을
Rectangle playerRec = new Rectangle((int)player.position.X, (int)player.position.Y,player.width, player.height);
foreach (Platforms platform in platforms)
{
Rectangle platformRec = new Rectangle((int)platform.position.X, (int)platform.position.Y, platform.width, platform.height);
if ((playerRec.Intersects(platformRec) && (playerRec.Y + playerRec.Height) - platformSpeed < platformRec.Y) &&
(playerRec.X < platformRec.X + platformRec.Width && playerRec.X + playerRec.Width > platformRec.X))
{
gravity = 0;
player.position.Y -= platformSpeed;
}
else if(player.position.Y != platform.position.Y)
{
gravity = 5;
//player.position.Y += gravity;
}
감사! 나는 그것을 놓쳤다는 것을 믿을 수 없다. 루프를 수정하여 모든 문제를 해결했습니다. 나는 물리 엔진을 사용할 예정 이었지만, 이것은 매우 간단한 게임이며 연습을위한 것입니다. – user566417