Android に移植された 3D ゲームに取り組んでおり、ゲームの 3D コースでタッチ イベントを操作したいと考えています。クリッピング プレーンに近い 3D 空間のポイントが必要ですが、取得できるのは Android ディスプレイからの 2D 座標だけです。では、これらの (x, y) 座標を 3D 空間の (x, y, z) 座標にマップする方法はありますか?
編集
さて、私はレーシング ゲームに取り組んでおり、クリックした場所に応じてコースにいくつかのアイテムを挿入したいと考えています。私はこの機能を持っています:
void racing_mouse_cb(int button, int state, int x, int y) { //parameters (x,y) are coords of a display
set_ill_fish(get_player_data( local_player())->view);
}
しかし今のところ、プレイヤーの前に少し離れたところにアイテムを挿入しています:
void set_ill_fish(view_t view) {
item_locs[num_items].ray.pt.x = view.plyr_pos.x;
item_locs[num_items].ray.pt.z = view.plyr_pos.z - 5;
item_locs[num_items].ray.pt.y = find_y_coord(view.plyr_pos.x,
view.plyr_pos.z - 5) + 0.2;
item_locs[num_items].ray.vec = make_vector(0, 1, 0);
.
.
.
}
、しかし、これを表示面に変換する方法は、私にはわかりません。