определение цвета для игры в гольф, чтобы знать, что мяч на зеленом и т. д - PullRequest
0 голосов
/ 05 марта 2019

Честно говоря, на мой вопрос, возможно, ответили, но я не имею диплома колледжа и понимаю только основную математику и некоторую алгебру.У меня есть большой опыт написания кода в as3 и анимации, и я уже прочитал много ответов и вопросов, но я все еще потерян.

Я знаю, как сделать HitTest для объекта и изображения, которое я сделал длязеленый в моей игре в гольф.Похоже, мне нужно использовать растровые данные, но я новичок в этом и никогда не использовал их.

Я думаю о том, когда мяч для гольфа входит в ограничивающую рамку hitTestObject и верно получитьрастровые данные и ищите только цвет и не беспокойтесь о прозрачных пикселях.Затем, когда мяч останавливается, он должен быть на зеленом ???

Я пока не знаю, как это сделать, или это лучше всего сделать?

Я прикрепил картинкузеленого и некоторых, конечно, так что вы можете посмотреть и попытаться понять, что происходит.Песколовки будут проблемой, но сейчас я хочу сосредоточиться на грин.

зеленый гольф с ограничительной рамкой

1 Ответ

0 голосов
/ 05 марта 2019

То, что вы ищете, это BitmapData.hitTest .

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

import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.geom.Point;

private var bm:Bitmap;
private var bitmapData:BitmapData;

//after everything has instantiated:
bitmapData = new BitmapData(backhole1.green1.width, backhole1.green1.height);
bitmapData.draw(backhole1.greenMap);
bm = new Bitmap(bitmapData);

Когда будете готовы, проверьте на столкновение:

if (bm.bitmapData.hitTest(new Point(backhole1.greenMap.x, backhole1.greenMap.y), 255, new Point(backhole1.golfball.x, backhole1.golfball.y), 255)) {
  //collision detected, do stuffs
}

Значение255 - проверить непрозрачность растрового изображения.Все, что не является на 100% непрозрачным, в этом случае будет рассматриваться как прозрачное.

...