2016-04-20 14 views
0

Ich bin neu bei Konvasjs und neu auf der Leinwand und ich habe versucht, ein Spiel ähnlich dem Demo "Tiere am Strand "Ich möchte den Teil behalten, wenn es in der richtigen Umrisse die Punktzahl erhöht, aber anstatt der Tiere in der Demo schnappt sich ihre spezifische Kontur Ich möchte das Tier Snap zu jedem Umriss so der Spieler kann bekomme eine falsche Antwort oder bekomme weniger Punkte.Wie man Bilder an irgendeinem "Umriss" -Bild einrasten lässt (mit der Demo "animals on the beach")

Sorry, wenn das, was ich frage, eigentlich eine Menge Zeug ist.

+0

Sie müssen genauer sein. Was hast du versucht? Was hat nicht funktioniert? – lavrton

+0

@lavrton Wie kann ich das "Giraffen" -Bild an der Position "Löwe" ausrichten, wenn es in der Nähe der Kontur des Löwen ist. Ich habe versucht, den if (isNearOutline (Tier, Umriss)) Teil des An (Dragent) zu ändern, so dass der "Umriss" nur der Löwe ist. Das funktioniert, wenn ich alle Bilder zu den Löwen ändere (was für mein Spiel gut ist), aber ich brauche eine Funktion, die durch alle Umrisse "schleifen" kann, um Bilder an ihnen einzufangen. –

Antwort

0

Ich habe eine alternative Lösung gefunden, die Drag-Objekte nicht automatisch an jeder Fangzone einrasten lässt, aber es erlaubt Ihnen, sie mit weniger Code zu steuern.

habe ich eine Funktion, das Objekt (Code) und die Zone (Entwurf) zu erhalten:

function snapTo(code, outlineSnap) { 
     var outline = outlines[outlineSnap + '_black']; 
     if(isNearOutline(code, outline)) { 
      code.position({ 
       x : outline.x, 
       y : outline.y 
      }); 

     console.log("privKey:"+ privKey); 
     console.log("Key:"+ key); 
     console.log(code.id()); 
     codeLayer.draw(); 
     var testKey = privKey+ "_black"; 


     if(code.id() == outlineSnap) { 
      setTimeout(function() { 
       code.draggable(false); 
      }, 50); 
     } 
    } 
} 

Diese Funktion erstellt die für (in Codes var key) sein muss, {} und außerhalb des Drag Veranstaltungen. Ich habe dann die Funktion im dragend-Event aufgerufen.

code.on('dragend', function() { 
    snapTo(code, "pstart"); 
    snapTo(code, "pend"); 
} 

Es ist ein bisschen ein Problem mit der Partitur hinzufügen, ich habe eine Lösung, die nur noch die nicht hält die gefunden if-Anweisung ziehbar für die richtige Objektkontur Kombination auf false zu ändern, als ob diese es herausgenommen der Benutzer könnte die Ziehfunktion für Punkte "farmen" ...