Witam!
Tworzę aplikację podobną do programu Guitar Pro( www.guitar-pro.com ). Program ma służyć do edycji tabulatur. Chcę, podobnie jak w GTP stworzyć komponent, który wyświetlałby pole tabulatury gitary, dodawałby kolejno dźwięki zachowując rytmikę, tak, by można było później je usuwać i modyfikować, żeby dzielił zapis na takty, żeby możnabyło określać metrum itp... Mam już zrobione fundamenty komponentu łącznie z wyświetlaniem linii strun. Ma ktoś może jakiś pomysł jak zająć się umieszczaniem kolejnych nut na liniach?
Hmm... Rysowanie po canvasie? To jedyne, co mi przychodzi na myśl po takim opisie :). Program GuitarPro widziałem kiedyś (dość dawno), opisz jak by to miało wyglądać i jak już dotychczas działa Twój komponent. Może będzie prościej.
Mój komponent tworzy arkusz na którym wyświetlana jest n liczba takich zestawów liniii sześciostrunowych. Nie wiem jak to nazwać. Wygląda to mniej wiecej tak:
E[-------------------------------------------------]
B[-------------------------------------------------]
G[-------------------------------------------------]
D[-------------------------------------------------]
A[-------------------------------------------------]
E[-------------------------------------------------]
Każda z tych linii jest struną. Na tym polega zapis tabulaturowy. W Guitar Pro po kliknięciu na daną strunę wyświetla się na niej kwadracik, do którego wprowadzany jest numer progu gitary i następuje automatycznie przesunięcie w prawo tego kwadracika. Wiem (chyba) że kwadracik musi być w postaci komponentu i umieszczany dynamicznie. Nie znam się zbytnio na pisaniu komponentów - jestem w trakcie czytania kursów. Po wprowadzeniu numerów progów te kwadraciki muszą być edytowalne. Ale to już prawie zrobiłem. Nie wiem tylko co zumieszczeniem tego w komponencie z tabulaturą tak, żeby można było edytować...
Wiem (chyba) że kwadracik musi być w postaci komponentu i umieszczany dynamicznie.
Nie przesadzaj z tymi komponentami ;) Poczytaj o caret'ach - choć i bez tego się obejdzie. Ważne jest (własne) podwójne bufforowanie ale to chyba (?) wiesz ;)
Ma ktoś może jakiś pomysł jak zająć się umieszczaniem kolejnych nut na liniach?
Widok tabulatury na ogół zaczyna się od konkretnego taktu więc rysowanie poszczególnych 'nut' zaczynasz od pozycji, w której ten takt się zaczyna - obliczasz offsety 'nut', przeliczasz (jakieś tam) jednostki na pixele i skalujesz. To tak ogólnie ;) Ważne jest to, żebyś to sobie jakoś zorganizował obiektowo.
Denver napisał(a)
Mój komponent tworzy arkusz na którym wyświetlana jest n liczba takich zestawów liniii sześciostrunowych.
A ja chcę też dla basówki (niesześciostrunowej) ;P
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.