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

Итак, вот что: я пытаюсь создать простую автомобильную 3D-игру и только начинаю. В настоящее время я работаю над разделенным экраном, и проблема, с которой я столкнулся, заключалась в следующем:

Я действительно МОГУ видеть оба «корабля» (один в правом окне просмотра, один в левом), но я не могу найти способ нарисовать оба корабля в обоих окнах просмотра, но с их собственной камерой. Так что да, я также создал две разные камеры погони, одну для левого окна просмотра и одну для правого.

Может ли кто-нибудь направить меня каким-либо образом? Если вам нужен какой-либо код, который поможет вам ответить, я вставлю его и объясню (проблема только в том, что он на французском).

Спасибо огромное !

0
Maxime Bousquet 14 Мар 2013 в 05:05

1 ответ

Лучший ответ

Обновленный ответ из обсуждения:

Похоже, вам нужно изменить конструктор, чтобы он принимал не только «целевой» автомобиль, но и все остальные машины на трассе. например Просмотр (targetCar, allOtherCars)

Я бы посоветовал: создать новый метод, который принимает положение / перемещение камеры и визуализирует все автомобили с этой точки зрения. Затем в методе рисования вызовите новый метод с камерой, связанной с текущим окном просмотра.

Оригинальный ответ.

Мне сложно понять, какой именно эффект вам нужен, но, исходя из предположения, что это всего лишь вариант идеи разделения экрана, вот один из способов решения проблемы:

В инициализации игры:

  1. Создайте две цели рендеринга - по одной для экрана каждого игрока

В методе рисования:

  1. Установите в качестве цели графики цель рендеринга игрока, визуализируйте сцену с точки зрения камеры игрока ... и затем сделайте то же самое для игрока два.

  2. Нарисуйте на экране цели рендеринга обоих игроков.

Если вы не знаете о RenderTargets, то следующий пример от Microsoft может помочь: http: //msdn.microsoft.com/en-us/library/ff434402.aspx

0
lzcd 14 Мар 2013 в 05:59
Извините, я не правильно объяснил свою точку зрения. Я имею в виду, что у меня 2 окна просмотра. Один слева, один справа. Затем у меня есть один корабль в правом окне просмотра, который движется с его камерой ChaseCamera, и один корабль в левом окне просмотра, который также перемещается с помощью камеры Chase Camera. Я ищу возможность увидеть «левый» корабль в камере правого корабля. Но насколько я понял, видовые экраны похожи на разные миры, поэтому они не могут видеть друг друга.
 – 
Maxime Bousquet
14 Мар 2013 в 05:25
Проблема в том, что ваши камеры погони расположены слишком близко к машинам ... или что при рендеринге каждого вида появляется только одна машина (даже если каждая камера находится достаточно далеко, чтобы можно было «видеть» обе машины)?
 – 
lzcd
14 Мар 2013 в 05:30
Дело в том, что когда я визуализирую каждое представление, появляется только одна машина, потому что в моем методе Draw я рисую каждый корабль в зависимости от окна просмотра, полученного в его конструкторе!
 – 
Maxime Bousquet
14 Мар 2013 в 05:33
Похоже, вам нужно изменить конструктор, чтобы он принимал не только «целевой» автомобиль, но и все остальные машины на трассе. например Просмотр (targetCar, allOtherCars)
 – 
lzcd
14 Мар 2013 в 05:41
Это хорошая идея, но в моем методе рисования, который выглядит следующим образом: pastebin.com/SZppiCTz, я рисую модель в зависимости от на связанной с ним камере (также полученной в конструкторе) .. но для "allOtherCars" должен ли я также рисовать их в зависимости от той же камеры? (Если вам нужно объяснение кода, не сомневайтесь)
 – 
Maxime Bousquet
14 Мар 2013 в 05:49