615 lines
34 KiB
HTML
615 lines
34 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.8.13"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>Platform játék: camera.c File Reference</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td id="projectalign" style="padding-left: 0.5em;">
|
|
<div id="projectname">Platform játék
|
|
</div>
|
|
<div id="projectbrief">3D-s megjelenítés, véletlenszerű pályagenerálás, jutalmazó játékélmény</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.13 -->
|
|
<script type="text/javascript">
|
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<iframe src="javascript:void(0)" frameborder="0"
|
|
name="MSearchResults" id="MSearchResults">
|
|
</iframe>
|
|
</div>
|
|
|
|
<div id="nav-path" class="navpath">
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="dir_e05d7e2b1ecd646af5bb94391405f3b5.html">modules</a></li> </ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#define-members">Macros</a> |
|
|
<a href="#func-members">Functions</a> |
|
|
<a href="#var-members">Variables</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">camera.c File Reference</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<div class="textblock"><code>#include "<a class="el" href="camera_8h_source.html">camera.h</a>"</code><br />
|
|
</div><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
|
|
Macros</h2></td></tr>
|
|
<tr class="memitem:ad74bb29548e6e4382565b352768286cc"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#ad74bb29548e6e4382565b352768286cc">focalLength</a>   0.05</td></tr>
|
|
<tr class="separator:ad74bb29548e6e4382565b352768286cc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:afd68b50de46dc1475cd415b80474f4e1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#afd68b50de46dc1475cd415b80474f4e1">sensorSize</a>   0.07</td></tr>
|
|
<tr class="separator:afd68b50de46dc1475cd415b80474f4e1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4a89a8997f10af2a1fe36461a6377782"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#a4a89a8997f10af2a1fe36461a6377782">renderObjectsPerCube</a>   10</td></tr>
|
|
<tr class="separator:a4a89a8997f10af2a1fe36461a6377782"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
|
Functions</h2></td></tr>
|
|
<tr class="memitem:a7e4904780625abef9ddd2481657e3d50"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#a7e4904780625abef9ddd2481657e3d50">freeRenderMap</a> ()</td></tr>
|
|
<tr class="memdesc:a7e4904780625abef9ddd2481657e3d50"><td class="mdescLeft"> </td><td class="mdescRight">A feldarabolós rajzoláshoz szükséges mátrixot szabadítja fel. <a href="#a7e4904780625abef9ddd2481657e3d50">More...</a><br /></td></tr>
|
|
<tr class="separator:a7e4904780625abef9ddd2481657e3d50"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a15b05a44c3fabf37c06114ab1c0d6f7e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#a15b05a44c3fabf37c06114ab1c0d6f7e">followPlayerWithCamera</a> ()</td></tr>
|
|
<tr class="memdesc:a15b05a44c3fabf37c06114ab1c0d6f7e"><td class="mdescLeft"> </td><td class="mdescRight">A játékost követi a kamerával, nem hagyja, hogy a pálya alá lásson. <a href="#a15b05a44c3fabf37c06114ab1c0d6f7e">More...</a><br /></td></tr>
|
|
<tr class="separator:a15b05a44c3fabf37c06114ab1c0d6f7e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a555b8a2e0ebe839d7fc6ebe6a7244741"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#a555b8a2e0ebe839d7fc6ebe6a7244741">menuCamera</a> (int *<a class="el" href="camera_8h.html#a6e9094a53fd8a44ad7a061abae461e5c">getColumns</a>, int *getRows)</td></tr>
|
|
<tr class="memdesc:a555b8a2e0ebe839d7fc6ebe6a7244741"><td class="mdescLeft"> </td><td class="mdescRight">A menüben használt kamerát állítja be, visszaadja a columns-t és rows-t is. <a href="#a555b8a2e0ebe839d7fc6ebe6a7244741">More...</a><br /></td></tr>
|
|
<tr class="separator:a555b8a2e0ebe839d7fc6ebe6a7244741"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a6e9094a53fd8a44ad7a061abae461e5c"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#a6e9094a53fd8a44ad7a061abae461e5c">getColumns</a> ()</td></tr>
|
|
<tr class="memdesc:a6e9094a53fd8a44ad7a061abae461e5c"><td class="mdescLeft"> </td><td class="mdescRight">Visszaadja, hogy hány oszlop látszik a pályából. <a href="#a6e9094a53fd8a44ad7a061abae461e5c">More...</a><br /></td></tr>
|
|
<tr class="separator:a6e9094a53fd8a44ad7a061abae461e5c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ad795e49999debbd7478208f79cd428a9"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#ad795e49999debbd7478208f79cd428a9">cameraDollyZ</a> (int deltaTime, bool restart)</td></tr>
|
|
<tr class="memdesc:ad795e49999debbd7478208f79cd428a9"><td class="mdescLeft"> </td><td class="mdescRight">A kamera dollyzását végzi, a kamerát mozgatja A dolly állását staticban tárolja, ezért új dolly eseteén először egy restart = true-val kell meghívni,. <a href="#ad795e49999debbd7478208f79cd428a9">More...</a><br /></td></tr>
|
|
<tr class="separator:ad795e49999debbd7478208f79cd428a9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a132a011d37f693d827707dc368fd82c1"><td class="memItemLeft" align="right" valign="top">intVector2D </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#a132a011d37f693d827707dc368fd82c1">get2DPoint</a> (vector3D point)</td></tr>
|
|
<tr class="memdesc:a132a011d37f693d827707dc368fd82c1"><td class="mdescLeft"> </td><td class="mdescRight">Térbeli pontból síkbelit képez. A 3D-s pont koordinátái és a kamera alapján kiszámolja, hogy a kamera 2D-s szenzorán hol jelenik meg a pont. Geometriailag leírva, a két ponton (point, cameraPosition) átmenő egyenes egyenletének, és a 'szenzor' vízszintesének metszéspontja a keresett pontunk. A lent és a linken is látható egyenletet először a tér x-z, majd az y-z vetületére alkalmazzuk, és megkapjuk a térbeli pontunk megfelelő síkbeli leképezést. Ez interaktívan ábrázolva így néz ki: <a href="https://www.desmos.com/calculator/8qjvkptjmn">https://www.desmos.com/calculator/8qjvkptjmn</a>. <a href="#a132a011d37f693d827707dc368fd82c1">More...</a><br /></td></tr>
|
|
<tr class="separator:a132a011d37f693d827707dc368fd82c1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a15750abcbd26bd6ea8e5c0da6c3d9a9f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#a15750abcbd26bd6ea8e5c0da6c3d9a9f">drawCuboid</a> (renderObject object, bool sides[])</td></tr>
|
|
<tr class="memdesc:a15750abcbd26bd6ea8e5c0da6c3d9a9f"><td class="mdescLeft"> </td><td class="mdescRight">Lerajzol egy téglatestet A kamera modul lényege, a rajzolást végzi el az eddigi függvények segítségével. <a href="#a15750abcbd26bd6ea8e5c0da6c3d9a9f">More...</a><br /></td></tr>
|
|
<tr class="separator:a15750abcbd26bd6ea8e5c0da6c3d9a9f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a97d21cae0963069e12a1db25c14449f4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#a97d21cae0963069e12a1db25c14449f4">drawMap</a> (int deltaTime)</td></tr>
|
|
<tr class="memdesc:a97d21cae0963069e12a1db25c14449f4"><td class="mdescLeft"> </td><td class="mdescRight">Lerajzolja a teljes látható játékteret. A megfelelő rajzoláshoz figyelni kell a testek takarására, nem mindegy ezért, hogy milyen sorrendben rajzoljuk őket. A részecskéknél ezzel nincs probléma, azokat bármilyen sorrendben rajzolhatjuk. Ők a játékteret kitakarják, egymásnál viszont nem látszik, hogy melyik takrja melyiket, ezért azokat elég a játéktér után bármilyen sorrendben lerajzolni. A térképet alkotó kockáknál már nem ilyen egyszeű a helyzet. Azokat 4 irányból kell rajzolni, bal lentről, jobb lentről, bal fentről, illetve jobb fentről középre. Ha ebben a négy lépésben rajzoljuk őket (ezek között a sorrend nem számít) akkor mindig a legfesőket rajzoljuk utoljára, és így valósnak néz ki az eredmény. A játékos, a lövedékek, illetve az ellenségek viszont sajnos nincsenek egy négyzethálóhoz kötve. Így gyakran megesik, hogy az egyik felüket a pálya egyik kockája előtt, a másikat pedig az után, de még a kövektező előtt kéne rajzolni. Ezt nem tudjuk megcsinálni, hatalmas erőforrásba kerülne ez a majdnem pixelről pixelre történő szkennelés. A pályát továbbra is m^3-ént szeretnénk lerajzolni. Hogy ez megfelelően nézzen ki, minden köbméterben csak az abban a kockában lévő dolgokat szeretnénk megrajzolni. Ehhez fel kell "darabolnunk" a játékost, a lövedékeket, illetve az ellenségeket is. A darabolás azt jelenti, hogy egy mátrix minden cellájába beírjuk, hogy az adott kockában melyik, milyen tulajdonsággal rendelkező testek lógnak be. Rajzolásnál pedig a testeknek mindig csak az adott kockabeli részét rajzoljuk le. Mivel a kockákat jó sorrendben rajzoljuk, így a bennük levő "testekrészeket" is jó sorrendbe fogjuk rajzolni. A problémát megoldottuk. <a href="#a97d21cae0963069e12a1db25c14449f4">More...</a><br /></td></tr>
|
|
<tr class="separator:a97d21cae0963069e12a1db25c14449f4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
|
|
Variables</h2></td></tr>
|
|
<tr class="memitem:a3d5de4481bdd7cc75dbd548e22fa3842"><td class="memItemLeft" align="right" valign="top">vector3D </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#a3d5de4481bdd7cc75dbd548e22fa3842">cameraPosition</a></td></tr>
|
|
<tr class="separator:a3d5de4481bdd7cc75dbd548e22fa3842"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7cc15fc027378088d84dd0b0e162562d"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#a7cc15fc027378088d84dd0b0e162562d">magnification</a></td></tr>
|
|
<tr class="separator:a7cc15fc027378088d84dd0b0e162562d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af0033cdd1154edbeef3472e0a2a53f3b"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#af0033cdd1154edbeef3472e0a2a53f3b">columns</a></td></tr>
|
|
<tr class="separator:af0033cdd1154edbeef3472e0a2a53f3b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9eec77e3a1307027b96c38512736051c"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#a9eec77e3a1307027b96c38512736051c">rows</a></td></tr>
|
|
<tr class="separator:a9eec77e3a1307027b96c38512736051c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a2d5c94d21d47549cd449fc1efbcae763"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#a2d5c94d21d47549cd449fc1efbcae763">watchBounds</a> = false</td></tr>
|
|
<tr class="separator:a2d5c94d21d47549cd449fc1efbcae763"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a20520f70a8d9398a2f48e2422203c2ef"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#a20520f70a8d9398a2f48e2422203c2ef">leftBound</a></td></tr>
|
|
<tr class="separator:a20520f70a8d9398a2f48e2422203c2ef"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a619391e5cb9dd13c3e1aa395e965f5ac"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#a619391e5cb9dd13c3e1aa395e965f5ac">rightBound</a></td></tr>
|
|
<tr class="separator:a619391e5cb9dd13c3e1aa395e965f5ac"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7faf76d8a2f4b5341782711edf9a2ecb"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#a7faf76d8a2f4b5341782711edf9a2ecb">upperBound</a></td></tr>
|
|
<tr class="separator:a7faf76d8a2f4b5341782711edf9a2ecb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a20e5152675a6921ff56c2bab705876c7"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#a20e5152675a6921ff56c2bab705876c7">lowerBound</a></td></tr>
|
|
<tr class="separator:a20e5152675a6921ff56c2bab705876c7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a477f8ea6a98e6c8e73c79b348ac8b51b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#a477f8ea6a98e6c8e73c79b348ac8b51b">leftMostBound</a></td></tr>
|
|
<tr class="separator:a477f8ea6a98e6c8e73c79b348ac8b51b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a798227dac2d44aaa8b190f1fe07768fe"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#a798227dac2d44aaa8b190f1fe07768fe">rightMostBound</a></td></tr>
|
|
<tr class="separator:a798227dac2d44aaa8b190f1fe07768fe"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a94900838ab95fdac5649cbfe2ebbac3d"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#a94900838ab95fdac5649cbfe2ebbac3d">topBound</a></td></tr>
|
|
<tr class="separator:a94900838ab95fdac5649cbfe2ebbac3d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a682b82a72e19867a15795a73afa75c95"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#a682b82a72e19867a15795a73afa75c95">bottomBound</a></td></tr>
|
|
<tr class="separator:a682b82a72e19867a15795a73afa75c95"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aef072a6a96e00dc8cde9db749a95344d"><td class="memItemLeft" align="right" valign="top">renderObject *** </td><td class="memItemRight" valign="bottom"><a class="el" href="camera_8c.html#aef072a6a96e00dc8cde9db749a95344d">renderMap</a> = NULL</td></tr>
|
|
<tr class="separator:aef072a6a96e00dc8cde9db749a95344d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<h2 class="groupheader">Macro Definition Documentation</h2>
|
|
<a id="ad74bb29548e6e4382565b352768286cc"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ad74bb29548e6e4382565b352768286cc">◆ </a></span>focalLength</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define focalLength   0.05</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>gyújtótáv [m] </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a4a89a8997f10af2a1fe36461a6377782"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a4a89a8997f10af2a1fe36461a6377782">◆ </a></span>renderObjectsPerCube</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define renderObjectsPerCube   10</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>max( (projectile + player + enemy) / m^3), erről később bővebben. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="afd68b50de46dc1475cd415b80474f4e1"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#afd68b50de46dc1475cd415b80474f4e1">◆ </a></span>sensorSize</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define sensorSize   0.07</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>szenzor hosszabb oldalának a fele [m] </p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Function Documentation</h2>
|
|
<a id="ad795e49999debbd7478208f79cd428a9"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ad795e49999debbd7478208f79cd428a9">◆ </a></span>cameraDollyZ()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool cameraDollyZ </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>deltaTime</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>restart</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>A kamera dollyzását végzi, a kamerát mozgatja A dolly állását staticban tárolja, ezért új dolly eseteén először egy restart = true-val kell meghívni,. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">ms</td><td>eltelt idő </td></tr>
|
|
<tr><td class="paramname">kell-e</td><td>újrakezdés? </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>elérte-e a végállást? Minden frameban újraszámolja a rows&coulmns-t, </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a15750abcbd26bd6ea8e5c0da6c3d9a9f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a15750abcbd26bd6ea8e5c0da6c3d9a9f">◆ </a></span>drawCuboid()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void drawCuboid </td>
|
|
<td>(</td>
|
|
<td class="paramtype">renderObject </td>
|
|
<td class="paramname"><em>object</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>sides</em>[] </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Lerajzol egy téglatestet A kamera modul lényege, a rajzolást végzi el az eddigi függvények segítségével. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">test</td><td>téglatest adatai </td></tr>
|
|
<tr><td class="paramname">bool</td><td>melyik oldalakat kell rajzolni? Végez egy plusz ellenőrést is, nem csak a paraméterben megadott tömb alapján nem rajzol oldalakat, azokat se rajzolja le, amiket a helyzetük miatt biztosan nem láthat a kamera. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a97d21cae0963069e12a1db25c14449f4"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a97d21cae0963069e12a1db25c14449f4">◆ </a></span>drawMap()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void drawMap </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>deltaTime</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Lerajzolja a teljes látható játékteret. A megfelelő rajzoláshoz figyelni kell a testek takarására, nem mindegy ezért, hogy milyen sorrendben rajzoljuk őket. A részecskéknél ezzel nincs probléma, azokat bármilyen sorrendben rajzolhatjuk. Ők a játékteret kitakarják, egymásnál viszont nem látszik, hogy melyik takrja melyiket, ezért azokat elég a játéktér után bármilyen sorrendben lerajzolni. A térképet alkotó kockáknál már nem ilyen egyszeű a helyzet. Azokat 4 irányból kell rajzolni, bal lentről, jobb lentről, bal fentről, illetve jobb fentről középre. Ha ebben a négy lépésben rajzoljuk őket (ezek között a sorrend nem számít) akkor mindig a legfesőket rajzoljuk utoljára, és így valósnak néz ki az eredmény. A játékos, a lövedékek, illetve az ellenségek viszont sajnos nincsenek egy négyzethálóhoz kötve. Így gyakran megesik, hogy az egyik felüket a pálya egyik kockája előtt, a másikat pedig az után, de még a kövektező előtt kéne rajzolni. Ezt nem tudjuk megcsinálni, hatalmas erőforrásba kerülne ez a majdnem pixelről pixelre történő szkennelés. A pályát továbbra is m^3-ént szeretnénk lerajzolni. Hogy ez megfelelően nézzen ki, minden köbméterben csak az abban a kockában lévő dolgokat szeretnénk megrajzolni. Ehhez fel kell "darabolnunk" a játékost, a lövedékeket, illetve az ellenségeket is. A darabolás azt jelenti, hogy egy mátrix minden cellájába beírjuk, hogy az adott kockában melyik, milyen tulajdonsággal rendelkező testek lógnak be. Rajzolásnál pedig a testeknek mindig csak az adott kockabeli részét rajzoljuk le. Mivel a kockákat jó sorrendben rajzoljuk, így a bennük levő "testekrészeket" is jó sorrendbe fogjuk rajzolni. A problémát megoldottuk. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">ms</td><td>eltelt idő Ez a függvény elvégzi a részecskék, a pálya, illetve minden más test rajzolását is. A részecskék mozgatása innen van meghívva. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a15b05a44c3fabf37c06114ab1c0d6f7e"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a15b05a44c3fabf37c06114ab1c0d6f7e">◆ </a></span>followPlayerWithCamera()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void followPlayerWithCamera </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>A játékost követi a kamerával, nem hagyja, hogy a pálya alá lásson. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a7e4904780625abef9ddd2481657e3d50"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a7e4904780625abef9ddd2481657e3d50">◆ </a></span>freeRenderMap()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void freeRenderMap </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>A feldarabolós rajzoláshoz szükséges mátrixot szabadítja fel. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a132a011d37f693d827707dc368fd82c1"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a132a011d37f693d827707dc368fd82c1">◆ </a></span>get2DPoint()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">intVector2D get2DPoint </td>
|
|
<td>(</td>
|
|
<td class="paramtype">vector3D </td>
|
|
<td class="paramname"><em>point</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Térbeli pontból síkbelit képez. A 3D-s pont koordinátái és a kamera alapján kiszámolja, hogy a kamera 2D-s szenzorán hol jelenik meg a pont. Geometriailag leírva, a két ponton (point, cameraPosition) átmenő egyenes egyenletének, és a 'szenzor' vízszintesének metszéspontja a keresett pontunk. A lent és a linken is látható egyenletet először a tér x-z, majd az y-z vetületére alkalmazzuk, és megkapjuk a térbeli pontunk megfelelő síkbeli leképezést. Ez interaktívan ábrázolva így néz ki: <a href="https://www.desmos.com/calculator/8qjvkptjmn">https://www.desmos.com/calculator/8qjvkptjmn</a>. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">Térvektor</td><td>típusú pont </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Síkvektor típusú pont A visszaadott pontnak int koordinátái vannak, hiszen valamelyik pixel koordinátáit jelöli. Ez a függvény igazából egy camera obscura modellje. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a6e9094a53fd8a44ad7a061abae461e5c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a6e9094a53fd8a44ad7a061abae461e5c">◆ </a></span>getColumns()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int getColumns </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Visszaadja, hogy hány oszlop látszik a pályából. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a555b8a2e0ebe839d7fc6ebe6a7244741"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a555b8a2e0ebe839d7fc6ebe6a7244741">◆ </a></span>menuCamera()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void menuCamera </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int * </td>
|
|
<td class="paramname"><em>getColumns</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int * </td>
|
|
<td class="paramname"><em>getRows</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>A menüben használt kamerát állítja be, visszaadja a columns-t és rows-t is. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Variable Documentation</h2>
|
|
<a id="a682b82a72e19867a15795a73afa75c95"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a682b82a72e19867a15795a73afa75c95">◆ </a></span>bottomBound</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int bottomBound</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a3d5de4481bdd7cc75dbd548e22fa3842"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a3d5de4481bdd7cc75dbd548e22fa3842">◆ </a></span>cameraPosition</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">vector3D cameraPosition</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>A kamera térbeli helyvektora. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="af0033cdd1154edbeef3472e0a2a53f3b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af0033cdd1154edbeef3472e0a2a53f3b">◆ </a></span>columns</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float columns</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a20520f70a8d9398a2f48e2422203c2ef"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a20520f70a8d9398a2f48e2422203c2ef">◆ </a></span>leftBound</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float leftBound</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a477f8ea6a98e6c8e73c79b348ac8b51b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a477f8ea6a98e6c8e73c79b348ac8b51b">◆ </a></span>leftMostBound</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int leftMostBound</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a20e5152675a6921ff56c2bab705876c7"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a20e5152675a6921ff56c2bab705876c7">◆ </a></span>lowerBound</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float lowerBound</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Darabolás határai. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a7cc15fc027378088d84dd0b0e162562d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a7cc15fc027378088d84dd0b0e162562d">◆ </a></span>magnification</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float magnification</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aef072a6a96e00dc8cde9db749a95344d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aef072a6a96e00dc8cde9db749a95344d">◆ </a></span>renderMap</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">renderObject*** renderMap = NULL</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Darabolás mátrixa. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a619391e5cb9dd13c3e1aa395e965f5ac"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a619391e5cb9dd13c3e1aa395e965f5ac">◆ </a></span>rightBound</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float rightBound</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a798227dac2d44aaa8b190f1fe07768fe"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a798227dac2d44aaa8b190f1fe07768fe">◆ </a></span>rightMostBound</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int rightMostBound</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a9eec77e3a1307027b96c38512736051c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9eec77e3a1307027b96c38512736051c">◆ </a></span>rows</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float rows</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Ennyi látszik a pályából [m]. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a94900838ab95fdac5649cbfe2ebbac3d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a94900838ab95fdac5649cbfe2ebbac3d">◆ </a></span>topBound</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int topBound</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a7faf76d8a2f4b5341782711edf9a2ecb"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a7faf76d8a2f4b5341782711edf9a2ecb">◆ </a></span>upperBound</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float upperBound</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a2d5c94d21d47549cd449fc1efbcae763"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a2d5c94d21d47549cd449fc1efbcae763">◆ </a></span>watchBounds</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool watchBounds = false</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Feldarabolós rajzolás van-e? </p>
|
|
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated on Sun Dec 3 2017 21:07:00 for Platform játék by  <a href="http://www.doxygen.org/index.html">
|
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
</a> 1.8.13
|
|
</small></address>
|
|
</body>
|
|
</html>
|