» Poradna » Programy

Fish-eye efekt v raycasteru

 |   |  Microsoft Windows 10 Chrome 113.0.0.0

Zdravím, podařilo se mi naprogramovat docela dobrý raycaster v JavaScriptu. Vzhled kódu jsem tak neřešil, takže se omlouvám předem za to, že to vypadá jak od 10 letého děcka Je to můj první raycaster a rozhodně ho vylepším a kód zkrátím. Problémem je ale fish-eye efekt, s kterým si absolutně nevím rady, jak opravit.Pokud někdo bude vědět, tak předem moc díky.Kód:var c = document.getElementById("board");var ctx = c.getContext("2d");window.addEventListener("keydown", control);window.addEventListener("keyup", controlUp);var w = c.clientWidth, h = c.clientHeight;var playerX = w/2;var playerY = h/2;var playerAngle = Math.PI*0.5 + 0.000001;var playerGo = false;var playerTurn = false;var time = 0;var mapS = 80;var vision = [];var rays = [];function ray(a){ rays.push({ x: playerX, y: playerY, run: true, x2: playerX, y2: playerY, run2: true, offsetX: w/2, offsetY: h/2, angle: playerAngle + a, diffX: 0, diffY: 0, diff: 0, diffX2: 0, diffY2: 0, diff2: 0, })}function vis(x){ vision.push({ x: x, y: 0, sx: w/rays.length, sy: 0, })}var map = [ 1,1,1,1,1,1,1,1,1,1, 1,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,1,0,1, 1,0,0,1,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,1, 1,0,0,1,0,0,0,0,0,1, 1,0,0,0,0,1,0,0,0,1, 1,1,1,1,1,1,1,1,1,1,]for Ukázat celý příspěvek

Mohlo by vás také zajímat

Odpovědi na otázku

avatar
 | Microsoft Windows 10 Firefox 113.0

Úryvky kodu dávej VŽDY do pastebinu, nebo alternativních řešení. https://pastebin.com/Bohužel poradna stále nepodporuje markdown.

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: ABS, Maps, Fish, Efekt, False, Right, Look, J & AMP, Push, Turn, Fill