IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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í.

Diskuze: windows forms - pohyb (kreslení přímo na plátno)

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Tomáš Brůna
Tvůrce
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
Tvůrce
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
Tvůrce
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
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
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í
+2,50 Kč
Řešení problému
Nahoru Odpovědět
14.6.2016 16:54
https://www.facebook.com/peasantsandcastles/
Avatar
Tomáš Brůna
Tvůrce
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
Tvůrce
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.