2013-01-23 1 views
0

J'essaie de comprendre ces points de référence dans Corona. On dit que le point de référence par défaut est le centre de l'objet, mais la position x du centre de textobject n'est pas à 100 mais 150 quand je lance ce code:Point de référence par défaut pour l'objet d'affichage dans Corona

local textObject = display.newText( "Hello World!", 100, 100, nil , 20) 

j'ai montré les position contact événement sur l'écran et l'impression de la position x et y des endroits touchés:

local function onScreenTouch(event) 
     print("x: "..event.x.." y: "..event.y); 
    end 
    Runtime:addEventListener("tap", onScreenTouch) 

Répondre

5

Très bonne question et il est quelque chose qui m'a rendu fou depuis longtemps.

Par défaut, le point de référence est display.CenterReferencePoint sauf si vous transmettez X, Y en tant que paramètres à un appel d'API. Dans la plupart des cas (pour les rectangles), en passant un X, Y devient le point de référence en haut à gauche uniquement pour le tirage initial de l'objet. Les lignes bien sûr vous passez des points de fin et pour les cercles votre X, Y est le centre.

myRect = display.rect(X, Y, width, height) -- X, Y = Top, Left 

dans ce cas, X et Y représentent le coin supérieur gauche de la boîte mais par la suite si vous le faites:

myRect.x = X -- X = center of object 
myRect.y = Y -- Y = center of object 

vous utilisez maintenant un point de référence central sauf si vous modifiez explicitement en arrière à autre chose. Maintenant, parce que cela est source de confusion, je tends à faire:

myRect = display.rect(0,0, width, height) 
myRect.x = 100 
myRect.y = 100 

comme une façon que je suis vraiment positionnement que les choses en utilisant le point central.

Espérons que cela l'explique.

Rob

Questions connexes