Losowanie rysunków i wstawianie do HTML
Struktura MVC wisi już na githubie, pora się zabrać za wdrażanie metod. Na pierwszy ogień idzie chooseCreatures, która ma za zadanie wylosować cztery rysunki postaci do gry. I tutaj pojawia się pierwsza zagwozdka. Jak wylosować rysunki? Umieścić je w bazie danych i losować rekordy? Bazy nie przewidywałem. Wpadłem na pomysł, aby nazwać wszystkie rysunki tak samo z kolejnymi numerami: postac1.jpg, postac2.jpg, postac3.jpg itd. Metoda chooseCreatures wylosuje tylko cztery różne numery, które dołączy do stringa "postac+number+.jpg". Nazwy plików trafią do widoku, który je doda do HTML i wyświetli.Do dzieła!
W modelu ustalam ile będzie obrazków do wyboru (numPictures) oraz ile będzie obrazków wyświetlanych (numCreatures).
Później losuję niepowtarzające się liczby z zakresu numPictures i wstawiam do tablicy.
Poniżej przykładowe dane i działania na nich.
numPictures=20,
numCreatures=2,
Losuję 2 liczby z zakresu 1-20, niech będzie 5 i 12 i wstawiam do tablicy.
Gdy w tablicy będzie już wylosowana liczba, procedura pomija ten krok i losuje od nowa. Pilnuje tego warunek: if(arrNumb.indexOf(randomnumber) > -1) continue.
Na końcu przekazuję wynik do widoku: view.introductionCreature(arrNumb);
Widok pobiera elementy img o klasie "charakter" i wstawia do src link z wylosowanym numerem:
imgs[i].src='img/postac' + num + '.jpg';
Wynik możecie zobaczyć tutaj: https://guydiamond.github.io/where_is_my_letter/
Odświeżanie strony uruchamia ponowne losowanie.
Ten komentarz został usunięty przez autora.
OdpowiedzUsuńNajprostsze rozwiązania są zawsze najlepsze. Kombinować trzeba dopiero wtedy gdy sprawa się komplikuje ;p
OdpowiedzUsuńCzasami proste rozwiązania nie są takie oczywiste. Dobrze wcześniej przemyśleć kierunek w który chce się iść.
UsuńA to akurat też prawda. Mamy często mamy tendencję do przekombinowywania.
OdpowiedzUsuń