Box2dweb, сдвигая холст? - PullRequest
1 голос
/ 07 мая 2011

В настоящее время я работаю над игрой с html5 / js, использующей box2dweb для столкновения, но я сталкиваюсь с проблемой, когда мне нужно прокрутить уровень с игроком.Box2d выполняет рендеринг непосредственно в 2d-контекст, поэтому я думаю, что в его текущем состоянии нет способа сместить часть рендера холста?

В as3 вы можете просто поместить все в мувиклип и соответственно изменить его положение.

Итак, возможно ли в любом случае иметь контроль над камерой какого-либо рода или частью рендеринга объекта canvas, чтобы сместить его «положение», чтобы держать игрока всегда в центре?

Заранее спасибо,

M0rph3v5

Ответы [ 2 ]

2 голосов
/ 08 мая 2011

Box2D сам по себе ничего не рисует, он просто вычисляет позиции / столкновения.

Он предлагает так называемый «чертеж отладки», но его целью является ... отладка. В любом случае вы можете начать отсюда, чтобы добавить все необходимые функции.

http://code.google.com/p/box2d/wiki/FAQ

1 голос
/ 08 мая 2011

Да, я понял, оказывается, мне пришлось использовать context.translate прямо перед отладкой, а также, чтобы "переложить" все.Теперь все работает хорошо.

РЕДАКТИРОВАТЬ:

Код, который я сейчас использую

            context.save();
            context.translate(-1*xpos+(canvas.width/2),-1*ypos+(canvas.height/2));
            context.rotate(cars[carid].angle);
            context.drawImage(carSprite, -carspritewidth/2, -carspriteheight/2); 
            context.restore();

, где xpos и ypos - это x и y позиции автомобиляпосле этого я просто рисую фактический автомобильный спрайт в 0,0 (размер машины делится на центр).

...