Tobii EyeXで図形判定
funky_miyabi 2016/02/10(Wed) 14:31
私はTobii EyeXを利用していて、
https://github.com/Reputeless/Siv3D-Reference/blob/master/Tutorials/Geometry2D.md
に載っている図形当たりの判定と組み合わせて視線を向けた図形の色を変化させることをしています。
とりあえず判定することはできたのですが、視線を外すとまた元の色に戻ってしまうのをどうにかしたいです。
一度視線を向けて色を変化させたらプログラムを終了させるまでそのままの色で維持したいです。
どうしたらいいか教えていただけるとありがたいです。
ちなみに書いたプログラムはこんな感じです↓
#include <Siv3D.hpp>
void Main()
{
Window::SetVirtualFullscreen(Window::GetState().screenSize);
if (!TobiiEyeX::Start())
{
return;
}
EyeXState state;
Vec2 pos(0, 0);
const Rect rect(20, 20, 200, 100);
while (System::Update())
{
if (TobiiEyeX::HasNewState())
{
TobiiEyeX::GetState(state);
pos = state.clientGazePos;
}
Circle(pos, 20).draw(Palette::White);
const bool r = pos.intersects(rect);
rect.draw(r ? Palette::Red : Palette::Yellow);
}
}
よろしくお願いします。
Reputeless 2016/02/11(Thu) 08:54
視線が重なったら true になるような bool 型の変数をメインループ while(System::Update()) の前に用意し、その変数が true なら色を変えるようにします。
funky_miyabi 2016/02/15(Mon) 01:58
ありがとうございます。