Полный рендеринг куба в графической библиотеке cmu без импортаPython

Программы на Python
Anonymous
Полный рендеринг куба в графической библиотеке cmu без импорта

Сообщение Anonymous »

Короче, я пытаюсь создать 3D-игру на сайте моей школы. Я сделал это так, чтобы у вас был класс, в котором вы можете установить блок в любой точке.
Для начала я пытался визуализировать его простым способом, просто отслеживая наклон и рысканье от центра точки зрения «игрока», и я добился того, что он показывает точки, где будет центр каждого лица, поскольку я визуализирую на основе лиц для облегчения отбора (вроде как Minecraft), но я понятия не имею, как это перевести на квадраты, и в 90% случаев, когда я пытаюсь двигаться, точки перемещаются непонятным для меня образом. Иногда это немного похоже на часть 360-градусной камеры.
На веб-сайте предусмотрено несколько классов для рендеринга 2D-фигур, таких как прямоугольники, круги и, что более важно, многоугольники, где вы задаете список точек, и он визуализируется внутри них. Цель состоит в том, чтобы выяснить, как использовать заданные точки, которые уже визуализируются, и, возможно, расстояние для визуализации сторон блоков, которые я создаю, но я даже не знаю, с чего начать, и, учитывая, что я на самом деле не знаю, движется ли игрок в правильном направлении, метод проб и ошибок слишком утомителен.
ссылка на то, что у меня есть сейчас (wasd для движения и клавиши со стрелками для «движения камеры»)
academy.cs.cmu.edu/sharing/crimsonGoldfish348287
ссылка на код рендеринга (на случай, если я пропустил что-то важное и для справки)
Материал renderGroup.add взят из библиотеки, используемой для рендеринга контента, предоставленного веб-сайтом. Также учтите, что я не хочу и не могу использовать большинство библиотек.
def render(self,target):
if self.top==True:

tPitch, tYaw, dist= self.angleTo3d(target,"top")
yaw = tYaw+target.yaw
if yaw>360:
yaw-=360
pitch = 180*(tPitch/math.pi)+target.pitch
if pitch>360:
pitch-=360
renderGroup.add(Circle(200+((yaw-180)/90)*200,600+((pitch-180)/90)*200,2))
renderGroup.add(Polygon())
print(pitch,yaw)
if self.left==True:

tPitch, tYaw, dist= self.angleTo3d(target,"left")
yaw = tYaw+target.yaw
if yaw>360:
yaw-=360
pitch = 180*(tPitch/math.pi)+target.pitch
if pitch>360:
pitch-=360
renderGroup.add(Circle(200+((yaw-180)/90)*200,600+(((pitch-180)/90)*200),2))
if self.front==True:

tPitch, tYaw, dist= self.angleTo3d(target,"front")
yaw = tYaw+target.yaw
if yaw>360:
yaw-=360
pitch = 180*(tPitch/math.pi)+target.pitch
if pitch>360:
pitch-=360
renderGroup.add(Circle(200+((yaw-180)/90)*200,600+((pitch-180)/90)*200,2))
if self.bottom==True:

tPitch, tYaw, dist= self.angleTo3d(target,"bottom")
yaw = tYaw+target.yaw
if yaw>360:
yaw-=360
pitch = 180*(tPitch/math.pi)+target.pitch
if pitch>360:
pitch-=360
renderGroup.add(Circle(200+((yaw-180)/90)*200,600+((pitch-180)/90)*200,2))
if self.right==True:

tPitch, tYaw, dist= self.angleTo3d(target,"right")
yaw = tYaw+target.yaw
if yaw>360:
yaw-=360
pitch = 180*(tPitch/math.pi)+target.pitch
if pitch>360:
pitch-=360
renderGroup.add(Circle(200+((yaw-180)/90)*200,600+((pitch-180)/90)*200,2))
if self.back==True:

tPitch, tYaw, dist= self.angleTo3d(target,"back")
yaw = tYaw+target.yaw
if yaw>360:
yaw-=360
pitch = 180*(tPitch/math.pi)+target.pitch
if pitch>360:
pitch-=360
renderGroup.add(Circle(200+((yaw-180)/90)*200,600+((pitch-180)/90)*200,2))

Вернуться в «Python»