전 게임을 제작했지만 충돌 및 물리 문제가있는 간단한 html5 플랫폼 작성자로 일하고 있습니다. 아래는 바닥과 충돌을 다루는 방법에 관한 코드 샘플입니다. 전체 코드는 여기에 있습니다. http://www.ambitiongames.co.uk/dev/game.php 여기에 게임이 있습니다 http://www.ambitiongames.co.uk/dev/html5 캔버스 객체 충돌 및 물리계
내가 겪고있는 문제는 충돌이 게임을 바닥에 놓아 두는 이벤트를 기반으로한다는 것입니다.
도 점프 및 낙하 작업으로 인해 중력이 없어 플레이어가 더 높은 선반으로 뛰어 올라 공중으로 벗어날 수 있습니다.
영원의 중력 상태를 설정하는 좋은 방법은 무엇입니까?
바닥이나 다른 물체와 상호 작용하거나 충돌하는 좋은 방법은 무엇입니까?
that.draw = function(){
try {
ctx.drawImage(that.image, that.x, that.y, that.width, that.height);
} catch (e) {
}
}
return that;
};
var nrOffloors = 40,
floors = [],
floorWidth = 20,
floorHeight = 40;
var generatefloor = function(){
for (var i = 0; i < 10; i++) {
floors[i] = new Floor(i * 20,280);
}
for (var i = 10; i < 12; i++) {
floors[i] = new Floor(i * 20,260);
}
}();
var checkCollisionfloor = function(){
floors.forEach(function(e, ind){
if (
(player.X < e.x + floorWidth) &&
(player.X + player.width > e.x) &&
(player.Y + player.height > e.y) &&
(player.Y + player.height < e.y + floorHeight)
) {
e.onCollide();
}
});
}
게임을로드 할 수 없으며 매우 광범위한 질문입니다.하지만 이와 같은 게임을 디자인 할 때 전통적인 객체 지향 접근법을 활용하면 탁월한 이점을 얻을 수 있습니다. 이 방법으로 각 객체 (플레이어 및/또는 다른 것)는 자신의 속도와 가속도를 추적 할 수 있으며 중력에 대한 계산은 매우 간단합니다. 본질적으로 기존의 가속도에 중력으로 인한 일정한 음의 가속도를 추가하는 것 뿐이며 플레이어가 0보다 아래로 떨어지지 않도록 플레이어의 Y 위치를 추적 할 수 있습니다 – Cecchi
... 타격을 시뮬레이트하려면 그라운드는 플레이어의 속도를 뒤집을 수 있습니다. 그러면 플레이어가 조금 튀어 오를 것입니다. 결국 중력이 그들을 떨어 뜨립니다. – Cecchi
나는 당신의 말을 그래서 대신 var'Floor = function (x, y) {여기에 물건을 넣어'var StartButton = new Object();'대신에 변수를 추가하겠습니까? –