Pouze tento týden sleva až 80% na e-learning týkající se Kotlinu
Využij akce až 80% zdarma při nákupu e-learningu. Více informací .
BF summer
Avatar
vesel.fil
Člen
Avatar
vesel.fil:13.11.2013 18:24

Ahoj, píšu hru (Stagate střílečku) potřebuji obrázek (loď) donutit aby se otáčel za kurzorem. Jak na to?

Odpovědět
13.11.2013 18:24
I don't necessarily agree with everything I say.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na vesel.fil
David Čápka:13.11.2013 18:26

Děláš to ve Swingu nebo v JavaFX?

Nahoru Odpovědět
13.11.2013 18:26
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
vesel.fil
Člen
Avatar
vesel.fil:13.11.2013 18:29

Swing.

Nahoru Odpovědět
13.11.2013 18:29
I don't necessarily agree with everything I say.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na vesel.fil
David Čápka:13.11.2013 18:38

Potom tedy obrázek orotuješ takto:

AffineTransform transformace = new AffineTransform();

// posun středu rotace na střed obrázku
transformace.translate(obrazek.getWidth() / 2, obrazek.getHeight() / 2);

// Rotace o určitý úhel (v radiánech)
transformace.rotate(uhel);

// draw the image
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(obrazek, rotace, null);

A úhel získáš klasicky pomocí goniometrických funkcí na třídě Math, loď je střed kružnice, kurzor je bod.

Nahoru Odpovědět
13.11.2013 18:38
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
vesel.fil
Člen
Avatar
vesel.fil:13.11.2013 18:41

Díky, zkusím. :)

Nahoru Odpovědět
13.11.2013 18:41
I don't necessarily agree with everything I say.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na vesel.fil
David Čápka:13.11.2013 18:53

Ještě jsme si zkusil výpočet toho úhlu, abych nezakrněl. Je to z hlavy, tak nevím jestli to hned půjde a dělal jsem to na rychlo, kdyžtak si to uprav:

int a = lod.Y - kurzor.Y;
int c = kurzor.X - lod.X;
double uhel = Math.atan(a / c);
Nahoru Odpovědět
13.11.2013 18:53
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
vesel.fil
Člen
Avatar
vesel.fil:13.11.2013 20:49

Dík.

Nahoru Odpovědět
13.11.2013 20:49
I don't necessarily agree with everything I say.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.