jQuery Collision

J'ai ce jeu je suis en train d'écrire avec jQuery Collision, et il utilise les touches du clavier pour déplacer un div, quand un div en contact avec une autre div, il doit éviter les chevauchements.

Comment diable puis-je faire?

HTML ----

<!DOCTYPE html>
<html>
<head>
    <title></title>

    <link href="style.css" rel="stylesheet" />

    <script src="jquery.min.js" rel="javascript"></script>
    <script src="game.js" rel="javascript"></script>
    <script src="jquery-collision-1.0.1.js" rel="javascript"></script>
    <script src="jquery-ui-draggable-collision-1.0.1.js" rel="javascript"></script>

</head>
<body>

<div id="office">

    <div class="popup">
        <p>hello desk</p>
        <a class="close">X</a>
    </div>

    <div class="chris"></div>

    <!--Rian, Peter, Chris, Christopher ---------------- DESK -->
    <div class="desk-full" style="position: absolute; right: 50px; top: 50px;">

        <div class="christopher-stuff"></div>

    </div>

    <!--Adrian, Tatam, Ellize ---------------- DESK -->
    <div class="desk-full" style="position: absolute; right: 50px; top: 300px;">

    </div>

</div>

</body>
</html>

JAVASCRIPT----

$(document).ready(function(){
$(".chris").click(function(){
var KEY = {
UP: 38,
DOWN: 40,
LEFT: 37,
RIGHT: 39
}
//a global object to store all global variable used for the game
var office = {
}
//an array to remember which key is pressed and which is not.
office.pressedKeys = [];
$(function(){
//set interval to call gameloop every 30 milliseconds
office.timer = setInterval(gameloop,30);
//mark down what key is down and up into an array called "pressedKeys"
$(document).keydown(function(e){
office.pressedKeys[e.keyCode] = true;
});
$(document).keyup(function(e){
office.pressedKeys[e.keyCode] = false;
});
});
//this function is called every 30 milliseconds 
function gameloop()
{
moveMe();
collideDetection();
}
function moveMe()
{  
if (office.pressedKeys[KEY.UP]) //arrow up
{
var direction = parseInt($(".chris").css("top"));
$(".chris").css({
top: direction-5,
background: "url(chris-top.gif) no-repeat !important",
width: "43px",
height: "44px"
}); 
}
if (office.pressedKeys[KEY.DOWN]) //arrow down
{
var direction = parseInt($(".chris").css("top"));
$(".chris").css({
top: direction+5,
background: "url(chris-down.png) no-repeat !important",
width: "48px",
height: "25px"
});
}
if (office.pressedKeys[KEY.LEFT]) //left
{
var direction = parseInt($(".chris").css("left"));
$(".chris").css({
left: direction-5,
background: "url(chris-left.gif) no-repeat !important",
width: "43px",
height: "44px"
});
}
if (office.pressedKeys[KEY.RIGHT]) //right
{
var direction = parseInt($(".chris").css("left"));
$(".chris").css({
left: direction+5,
background: "url(chris-right.gif) no-repeat !important",
width: "43px",
height: "44px"
});         
}
if (office.pressedKeys[KEY.UP] & office.pressedKeys[KEY.RIGHT]) //arrow up
{
$(".chris").css({
background: "url(chris-top-right.png) no-repeat left top !important",
width: "43px",
height: "44px"
}); 
}
if (office.pressedKeys[KEY.UP] & office.pressedKeys[KEY.LEFT]) //arrow up
{
$(".chris").css({
background: "url(chris-top-left.png) no-repeat !important",
width: "43px",
height: "44px"
}); 
}
if (office.pressedKeys[KEY.DOWN] & office.pressedKeys[KEY.RIGHT]) //arrow down
{
$(".chris").css({
background: "url(chris-down-right.png) no-repeat !important",
width: "43px",
height: "44px"
});
}
if (office.pressedKeys[KEY.DOWN] & office.pressedKeys[KEY.LEFT]) //arrow down
{
$(".chris").css({
background: "url(chris-down-left.png) no-repeat !important",
width: "43px",
height: "44px"
});
} 
}
function collideDetection(){
var chrisY = parseInt($(".chris").css("top"));
var chrisX = parseInt($(".chris").css("left"));
var chrisY = chrisY + 50;
var chrisX = chrisX + 50;
//-------------------- jQuery Collision Dtection and Prevention of Overlapping ---------------------
var hit_list = $(".chris").collision( { obstacle: ".desk-full", preventCollision: true } );
var officeHeight = parseInt($("#office").height());
var officeWidth = parseInt($("#office").width());
if(shipX <= 0) {
$(".chris").css({
left: "0",
background: "url(chris-right.png) no-repeat !important",
width: "25px",
height: "48px"
}); 
}
if(chrisX > officeWidth) {
$(".chris").css({
left: "0px",
background: "url(chris-left.png) no-repeat !important",
width: "25px",
height: "48px"
}); 
}
if(chrisX <= 0) {
$(".chris").css({
top: "0",
background: "url(chris-down.png) no-repeat !important",
width: "48px",
height: "25px"
}); 
}
if(chrisY > officeHeight) {
$(".chris").css({
top: "0px",
background: "url(chris-up.png) no-repeat !important",
width: "48px",
height: "25px"
}); 
}
}
});    
});
InformationsquelleAutor Christopher | 2012-02-22