Я действительно не могу исправить эффект Fisheye, я читал другие решения и начинаю думать, что есть более глубокая проблема, даже если код работает. Вертикальные линии, нарисованные для представления «стен», изогнуты, когда они должны быть прямыми, я думаю, что это вызвано тем, что лучи, исходящие от игрока, имеют разные длины при взаимодействии с прямой стеной. Я все еще довольно новичок в Python. < /P>
# imports
import turtle, math
# variables
raycastAngle = 90
raycastRayNum = 100
raycastRayRange = 100
raycastRayStep = 2
screenX, screenY = 800, 600
screen = turtle.Screen()
screen.screensize(screenX, screenY)
screen.tracer(0)
screen.bgcolor(0, 0, 0)
raycaster = turtle.Turtle()
raycaster.penup()
raycaster.hideturtle()
player = turtle.Turtle()
player.penup()
player.setheading(45)
player.hideturtle()
sceneStamp = turtle.Turtle()
sceneStamp.penup()
sceneStamp.hideturtle()
walls = {
'test wall1':{
'x': 70,
'y': 70,
'width': 100,
'height': 100
},
}
# subprograms
def distFromCoords(startCoord, endCoord):
xDist = endCoord[0] - startCoord[0]
yDist = endCoord[1] - startCoord[1]
distance = math.sqrt((xDist * xDist) + (yDist * yDist))
roundedDistance = round(distance)
return roundedDistance
def isInsideWall(turtle):
turtleX, turtleY = turtle.xcor(), turtle.ycor()
for wall in walls.values():
wallX, wallY = wall['x'], wall['y']
wallWidth, wallHeight = wall['width'], wall['height']
left = wallX - wallWidth / 2
right = wallX + wallWidth / 2
bottom = wallY - wallHeight / 2
top = wallY + wallHeight / 2
if left
Подробнее здесь: https://stackoverflow.com/questions/796 ... -raycaster
Как исправить эффект рыбьи на моем Python Raycaster? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение