W mojej grze możesz kliknąć pomarańczowe pudełko (ma to oznaczać potwora). Po kliknięciu, zielona linia zostanie dołączona do div znaków. Na przykład dla lepszego wyjaśnienia:Jak uzyskać obrót stopnia z getBoundingClientRect?
Jest to kod używam do generowania linii:
l = document.createElement('div');
l.innerHTML='<div id="oLineBar" style=" transform: rotate(' + RANDOM + 'deg);" class="fadeIn2"><div id="lineBar" class="lineBarCharacter"></div></div>';
character.appendChild(l);
a CSS tego jest:
.lineBarCharacter{
height: 321px;
width: 2px;
background: rgba(39, 182, 0, 0.46)
}
#oLineBar {
position: absolute;
top: 20px;
left: 37px;
opacity: 1;
transition: transform 1s linear;
transform-origin: top left;
transform-style: preserve-3D;
-webkit-transition: opacity 1s;
transition: opacity 1s;
-ms-transition-property: opacity, -ms-transform;
}
Teraz dostaję te pomarańczowe skrzynki getboundingClientRect tutaj:
ClientRect {height: 95, width: 88, left: 1250.5, bottom: 471, right: 1338.5…}bottom: 471height: 95left: 1250.5right: 1338.5top: 376width: 88
Jak określić prawidłowy stopień obrotu, w zależności od tego, gdzie znajduje się pomarańczowe pudełko pod adresem (z danych getboundingClientRect)?
Nie tylko to konkretne pomarańczowe pudełko, ale wszelkie dane pobrane z getBoundingClientRect. Jeśli to ma sens ... Jestem trochę zagubiony, przepraszam z góry, jeśli to jest mylące. Chciałem, aby ta linia podążała w tym samym kierunku, w którym znajduje się to pomarańczowe pudełko.
Wolę używać matematyki.atan2 (y2-y1, x2-x1), aby mieć pełny zakres 2 * pi (360 °) –
@MauricePerry dobry punkt, dzięki – Banana
Hej Banana, dziękuję za to. Bardzo doceniane. Mam jednak problem, czy możesz sprawdzić, czy wszystko robię poprawnie? Oto, co mam do tej pory. http://i.gyazo.com/aae0d36568747f05bc279e132422e8b6.png Górny jest znak, a dolny prostokąt - pomarańczowy. Oto kod: http://pastebin.com/kGDhFRKM Ale jestem coraz stopień 43. http://i.gyazo.com/5764d3f6d43c390938fe19d1398a6249.png jakiś pomysł? Myślę, że moje współrzędne są błędne. Nie używam zdarzenia clientX, clientY takiego jak ty, używam innych pomarańczowych skrzynek Rect(), czy to jest problem? –