Budowanie projektu i pierwszy prototyp.

Programując już od jakiegoś czasu, zdałem sobie sprawę, że nie wszystkie rzeczy będą takie na jakie wyglądają. Szczególnie jeżeli chodzi o naprawę bugów i błędów.

Znacie to, gdy zaczynacie coś programować i się okazuje, że napotykacie na problemy, które na pierwszy rzut oka nie wydają się takie trudne, ale gdy tylko trochę nad danym problemem spędzicie czasu, to się okazuje, że jest ciężej niż moglibyście się tego spodziewać.

Długo nie pisząc, możecie obejrzeć sobie pierwszy prototyp na GitHubie: https://github.com/petercrowed/PianoGame/tree/master

A „zagrać” możecie tutaj: http://www.noob-programmer.com/piano/piano.html

Błędy, które wciąż występują to:

  • Dźwięk kliknięcia podczas przyciśnięcia klawisza
  • Możliwość „surfowania” po klawiaturze (choć to nie jest błąd, ale lepszy UX (User Experience))
  • Opóźnienie przy naciśnięciu klawisza
  • Przy dłuższym naciśnięciu „dublowanie” się dźwięku

Najwięcej kłopotów miałem z CSSem i HTMLem. Z takich głupot początkującego programisty… Na przykład użyłem znaku # (sharp) w nazwie klasy. Jak się okazuje jest to błąd. Co prawda ten błąd nie wyświetli się wam w logach, ale po prostu klasa w CSSie nie zostanie wywołana.

Obejście problemu, gdy ma się 25 klas ze znakiem „#”? W końcu dźwięki taki znak posiadają. Choćby: „A#, C#, D#, F#, G#”.

Zamienić nazwy na końcówkę „is”, a następnie w kodzie przetłumaczyć, przy pomocy „String replace”.

var blackKeyName = ".black." + notes[e.keyCode];
substring = "#";
var newBlack = blackKeyName.replace("#", "is");

W ten sposób CSS nam nie wariuje, a mimo to dalej html przekazuje dany dźwięk do wywołania.

Co zostało do zrobienia to na początek naprawa błędów, a potem można się zabrać za rozbudowywanie programu o nowe funkcje.

Z technologii które póki co użyłem to jQuery i Tone.js. Co prawda ten jQuery słabo mi pasuje i pewnie go zastąpię… jeżeli tylko znajdę inne, lepsze rozwiązanie.

I trochę dodatkowej dawki humoru na koniec.

Ulubiona tonacja gitarzysty programisty?

C#

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *