Изображение исчезает при повороте в обработке - PullRequest
2 голосов
/ 10 июля 2011

Я использую язык Обработка для небольшой игры, но у меня проблемы с изображениями и вращением. Мой спрайт отображается нормально, если я не применяю к нему вращение, но полностью исчезает, если его вращать. Вот код вращения:

void display(boolean alternate) {
    pushMatrix();
    if(!isHead && !isTail && alternate) rotate(radians(180));
    rotate(radians(90*direction));
    image(snake, x, y, linkSize, linkSize);
    popMatrix();
}

Когда direction равно 0 или alternate равно true, а direction равно 2, отображается изображение. В противном случае изображение не отображается. Я не уверен, имеет ли это значение или нет, но змея - это изображение в формате .png с альфа-прозрачностью. Декларация для змеи: snake = loadImage("SnakeLink.png");.

1 Ответ

6 голосов
/ 10 июля 2011

Вы на самом деле поворачиваете изображение от его источника (верхний левый угол), поэтому оно исчезает с экрана.Вы должны перевести в центр изображения, повернуть, перевести обратно к его источнику и затем отобразить его.

translate(image.width/2, image.height/2);
rotate(radians);
translate(-image.width/2, -image.height/2);
...