Diskuze: rychlost otáčení věže tanku

Ostatní jazyky GameMaker GameMaker rychlost otáčení věže tanku

Avatar
fofrik97
Člen
Avatar
fofrik97:

Ahoj,
vytvořil jsem si tank a jeho věž. Bohužel rychlost otáčení věže je moc velká.
Nevíte jak udělat, aby se otáčela pomaleji ? Např. dal bych kurzor do úhlu 74° a věž by se tam otočila až za 2 sekundy.

 
Odpovědět 1.6.2014 0:56
Avatar
Dominik Hošic
Redaktor
Avatar
Odpovídá na fofrik97
Dominik Hošic:

Udělej si např. alarm, který bude každé dvě sekundy kontrolovat pozici kurzoru.

Nahoru Odpovědět 1.6.2014 1:20
Klient: Nefunguje mi internet co s tím uděláte? Operátor: a co vidíte na monitoru? Klient: No signal...
Avatar
Posix
Člen
Avatar
Odpovídá na fofrik97
Posix:

Máš 2 úhly, A (směr tank -> kurzor) a B (natočení tanku). Když bude rozdíl A-B kladný tak budeš postupně natáčet doleva, jinak doprava. Musíš ošetřit stavy, kdy je třeba jeden úhel 5 a druhý 355.
Tady je výraz, který ti vrátí úhel v intervalu <-180;180), takže se v podstatě nemusíš o nic starat.

((((A - B) mod 360) + 540) mod 360) - 180

Je to starý kód, který jsem psal. Možná by šel zjednodušit.

Nahoru Odpovědět 1.6.2014 2:28
Proč to dělat jednoduše, když to jde složitě.
Avatar
Posix
Člen
Avatar
Odpovídá na fofrik97
Posix:

https://dl.dropboxusercontent.com/…rotation.gmk (už nejde edit předchozího příspěvku, divný to systém :( )

Editováno 1.6.2014 2:43
Nahoru Odpovědět 1.6.2014 2:42
Proč to dělat jednoduše, když to jde složitě.
Avatar
fofrik97
Člen
Avatar
fofrik97:

Posix: díky, když si to otevřu, tak mi funguje ta myška (přesně tak bych si to představoval i s tou věží):D ale bohužel když kod zkopíruju do svojí věže, tak mi nefunguje :/
Dominik Hošic: Mohl by si mi poradit, jak to udělat s tím alarmem ? :)

 
Nahoru Odpovědět 2.6.2014 16:14
Avatar
Posix
Člen
Avatar
Odpovídá na fofrik97
Posix:

S takovým popisem problému ti neporadím -_-

Nahoru Odpovědět 2.6.2014 16:40
Proč to dělat jednoduše, když to jde složitě.
Avatar
fofrik97
Člen
Avatar
fofrik97:

Nechceme mi to sebrat funkci "smooth_rotation". To je asi tím, že nemám Pro verzi ne ?

 
Nahoru Odpovědět 2.6.2014 18:32
Avatar
Dominik Hošic
Redaktor
Avatar
Odpovídá na fofrik97
Dominik Hošic:

To je tím, že nemáš ve Scripts nahranej script smooth_rotation.

Editováno 2.6.2014 19:54
Nahoru Odpovědět 2.6.2014 19:54
Klient: Nefunguje mi internet co s tím uděláte? Operátor: a co vidíte na monitoru? Klient: No signal...
Avatar
Dominik Hošic
Redaktor
Avatar
Odpovídá na fofrik97
Dominik Hošic:

Jinak to s tím alarmem by se dalo vyřešit třeba takto...
Do Create:

alarm[0] = room_speed * 2;

Do: Alarm 0:

dir = point_direction(x, y, mouse_x, mouse_y);
direction = dir
image_angle = dir;
alarm[0]  = room_speed * 2;
Nahoru Odpovědět 2.6.2014 19:58
Klient: Nefunguje mi internet co s tím uděláte? Operátor: a co vidíte na monitoru? Klient: No signal...
Avatar
Posix
Člen
Avatar
Odpovídá na fofrik97
Posix:

Myslím, že image_angle ve stepu je jen v pro verzi.

Editováno 2.6.2014 20:24
Nahoru Odpovědět 2.6.2014 20:24
Proč to dělat jednoduše, když to jde složitě.
Avatar
Posix
Člen
Avatar
Odpovídá na Dominik Hošic
Posix:

Uvědomuješ si, cos napsal? :D Rychlost otáčení by byla 0,5 (půl) "FPS" (kvůli alarm[0] = room_speed * 2), takže otáčení by nebylo plynulé (alarm se pustí jednou za 2 vteřiny).

Editováno 2.6.2014 20:28
Nahoru Odpovědět 2.6.2014 20:27
Proč to dělat jednoduše, když to jde složitě.
Avatar
Dominik Hošic
Redaktor
Avatar
Odpovídá na Posix
Dominik Hošic:

To měl být jen příklad na ten alarm :D Na ostatní faktory jsem se nezaměřoval. Pro ukázku snad stačí ne?
Teď mi došlo, že on to asi s tím alarmem myslel trošku jinak :D
To by se dalo vyřešit postupným přičítáním úhlu dokud by úhel nebyl roven úhlu myši.

Nahoru Odpovědět 2.6.2014 20:32
Klient: Nefunguje mi internet co s tím uděláte? Operátor: a co vidíte na monitoru? Klient: No signal...
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 12 zpráv z 12.