HC/index.html
2012-07-19 20:59:57 +02:00

159 lines
5.7 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>HardonCollider - A collision detection library</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="stylesheet" type="text/css" href="highlight.css" />
<script type="text/javascript" src="highlight.pack.js"></script>
<script type="text/javascript">
window.onload = function() {
var examples = document.getElementsByTagName("code");
for (i = 0; i < examples.length; ++i) {
if (examples[i].className == "lua")
hljs.highlightBlock(examples[i], " ");
}
};
</script>
</head>
<body><a name="top"></a>
<div id="header">
<h1>Hardon Collider <span class="small">Collision detection for <a href="http://www.love2d.org/">L&Ouml;VE</a></span></h1>
<ul id="main-nav">
<li><a href="index.html">Home</a></li>
<li><a href="tutorial.html">Tutorial</a></li>
<li><a href="reference.html">Reference</a></li>
</ul>
<h2>Home</h2>
</div>
<a name="hardoncollider"></a>
<div id="hardoncollider" class="outer-block">
<h3>HardonCollider<a class="top" href="#top">^ top</a></h3>
<div class="preamble">
<p>HardonCollider is a Lua module to simplify one important aspect in
computer games: Collision detection.</p>
<p>It can detect collisions between arbitrary positioned and rotated shapes.
Those shapes can either be circles or polygons. Any non-intersecting polygons
are supported, even concave ones.</p>
<p>The main interface is simple:
<ul>
<li>Define collision callbacks,</li>
<li>Add shapes to the scene and</li>
<li>Update HardonCollider every frame.</li>
</ul>
</p>
</div>
<div class="text-block">
<h4>Download</h4>
<p>You can download the latest packaged version as <a href="http://github.com/vrld/HardonCollider/zipball/master">zip</a>-
or <a href="http://github.com/vrld/HardonCollider/tarball/master">tar</a>-archive directly from
<a href="http://github.com/">github</a>. In that archive there will be a directory called
<code>vrld-HardonCollider-&lt;numbers&gt;</code> - you probably want to rename that to something
shorter (<code>hardoncollider</code> comes to mind).</p>
<p>You can also have a look at the sourcecode online <a href="http://github.com/vrld/HardonCollider">here</a>.</p>
<p>If you use the <a href="http://git-scm.com">Git</a> command line client, you can clone
the repository by running:</p>
<pre>git clone git://github.com/vrld/HardonCollider.git</pre>
<p>Once done, you can check for updates by running:</p>
<pre>git pull</pre>
<p>from inside the directory.</p>
</div>
<div class="text-block">
<h4>First steps</h4>
<p>This is an example on how to use HardonCollider.
One shape will stick to the mouse position, while the other will stay in the same place:</p>
<pre><code class="lua">HC = require 'hardoncollider'
-- array to hold collision messages
local text = {}
-- this is called when two shapes collide
function on_collision(dt, shape_a, shape_b, mtv_x, mtv_y)
text[#text+1] = string.format("Colliding. mtv = (%s,%s)",
mtv_x, mtv_y)
end
-- this is called when two shapes stop colliding
function collision_stop(dt, shape_a, shape_b)
text[#text+1] = "Stopped colliding"
end
function love.load()
-- initialize library
Collider = HC(100, on_collision, collision_stop)
-- add a rectangle to the scene
rect = Collider:addRectangle(200,400,400,20)
-- add a circle to the scene
mouse = Collider:addCircle(400,300,20)
mouse:moveTo(love.mouse.getPosition())
end
function love.update(dt)
-- move circle to mouse position
mouse:moveTo(love.mouse.getPosition())
-- rotate rectangle
rect:rotate(dt)
-- check for collisions
Collider:update(dt)
while #text &gt; 40 do
table.remove(text, 1)
end
end
function love.draw()
-- print messages
for i = 1,#text do
love.graphics.setColor(255,255,255, 255 - (i-1) * 6)
love.graphics.print(text[#text - (i-1)], 10, i * 15)
end
-- shapes can be drawn to the screen
love.graphics.setColor(255,255,255)
rect:draw('fill')
mouse:draw('fill')
end</code></pre>
</div>
<div class="text-block">
<h4>License</h4>
<blockquote id="license">
<p>Copyright (c) 2010-2011 Matthias Richter</p>
<p>Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:</p>
<p>The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.</p>
<p>Except as contained in this notice, the name(s) of the above copyright holders
shall not be used in advertising or otherwise to promote the sale, use or
other dealings in this Software without prior written authorization.</p>
<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.</p>
</blockquote>
</div>
</div>
</html>