Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se C a C++. Zároveň využij akce až 80 % zdarma při nákupu e-learningu - více informací.
c++ week
Avatar
Tomáš Brůna
Redaktor
Avatar
Tomáš Brůna:13.6.2016 23:10

Ahoj,
poslední dobou si zkouším tvořit různé hry ale vždy se zaseknu na pohybu, protože vždy docílím pouze buďto plynulého ale velmi pomalého pohybu a nebo zasekaného ale rychlého pohybu. Nevíte někdo jak docílit plynulého pohybu při libovolné rychlost ?
Zatím jsem zkoušel vytvořit objekt, kterému potom měním pozici x a y (x += speed; ) ale tohle nefunguje (což je jasné). Zatím jsem bohužel ale nepřišel lepší způsob.
Budu rád za každou radu :)

Odpovědět
13.6.2016 23:10
Vi veri universum vivus vici
Avatar
Tomáš Bitter
Člen IT Redactor Gang
Avatar
Tomáš Bitter:13.6.2016 23:53

Sekání je způsobeno rychlostí vykreslování. Pokud máš překreslování grafiky každých 200 ms (5 FPS), tak pohyb bude sekavý. Proto musíš nastavit timer (předpokládám, že ho používáš pro refresh) na přibližně 20 ms (50 FPS).

A také je důležité u formu nastavit DoubleBuffering na true.

 
Nahoru Odpovědět
13.6.2016 23:53
Avatar
Tomáš Brůna
Redaktor
Avatar
Odpovídá na Tomáš Bitter
Tomáš Brůna:14.6.2016 15:39

Ahoj,
díky za rychlou reakci :).
Timer mám nastavený na 1 ms a DoubleBuffering mám na true taky, ale sekání pořád neustává.

Editováno 14.6.2016 15:41
Nahoru Odpovědět
14.6.2016 15:39
Vi veri universum vivus vici
Avatar
Lukáš Křehula
Redaktor
Avatar
Odpovídá na Tomáš Brůna
Lukáš Křehula:14.6.2016 16:35

Tak to seš celkem blázen s tím 1ms, vykresluje to procesor a ne grafická karta.
Dej tam 15 - 25, ale taky musíš vypočítat posun X,Y podle toho refreshu

 
Nahoru Odpovědět
14.6.2016 16:35
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Luboš Běhounek Satik
Autoredaktor
Avatar
Odpovídá na Tomáš Brůna
Luboš Běhounek Satik:14.6.2016 16:54

Pokud jsi neměnil rozlišení timeru, tak zůstalo na cca 16ms.

Jinak pokud chceš větší plynulost, tak musíš kreslit přes grafickou kartu.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět
14.6.2016 16:54
https://www.facebook.com/peasantsandcastles/
Avatar
Tomáš Brůna
Redaktor
Avatar
Tomáš Brůna:14.6.2016 17:25

Oběma moc díky, zkusím si s tím nějak pohrát a pak napíšu :)

Nahoru Odpovědět
14.6.2016 17:25
Vi veri universum vivus vici
Avatar
Tomáš Brůna
Redaktor
Avatar
Odpovídá na Luboš Běhounek Satik
Tomáš Brůna:14.6.2016 18:21

paráda, už se to neseká :) Díky moc

Nahoru Odpovědět
14.6.2016 18:21
Vi veri universum vivus vici
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.