speedy901990 / KinectMiniGames

KinectMiniGames
4 stars 7 forks source link

Big merge done! <README> #24

Closed speedy901990 closed 11 years ago

speedy901990 commented 11 years ago

Właśnie zrobiłem duży merge z 2 branchy. Dzięki temu mamy w tym momencie 73d20b5883f39aa8fd46bf7f9f61d8d2a1e3215a podstawową funkcjonalność całego projektu. Ostatnie osiągnięcia to:

W związu z tym skasowane zostały wszystkie pozostałe branche. Jeśli będziecie dalej pisać to twórzcie nowe (klonująca mastera) i nie odgrzebujcie już starych (nawet jak zalegają wam lokalnie na dysku!!!!!).

Proszę każdego z 'kodzących' o potwierdzenie w komentarzu poniżej, że przeczytał tą informację, żeby nie było niejasności. <wtedy zamknę issue>

gpasnik commented 11 years ago

Przeczytałem. Zmiany, które wprowadziłem do ApplesGame:

Można teraz zmienić parametry w ekranie konfiguracyjnym. Liczba drzew ma być stała, więc tego parametru można się pozbyć z ekranu. Natomiast przyda się parametr taki jak liczba kolorów. Można też od razu zrobić 3 przyciski z wyborem poziomu i dla każdego poziomu kolejno:

gpasnik commented 11 years ago

Zły przycisk nacisnąłem i przez przypadek zamknąłem Issue ;P Już jest z powrotem reopened.

gpasnik commented 11 years ago

I jeszcze jedna sprawa. W miarę możliwości niech każdy spróbuje kilka razy uruchomić u siebie ApplesGame. Bo u mnie tak średnio co trzecie uruchomienie gry, nie pojawia się okno z grafiką. Sytuacja wygląda tak, że kod się kompiluje, program się uruchamia i w momencie gdy powinno pojawić się okno z grafiką, nie pojawia się nic.

Jest to o tyle dziwne, że nie widzę reguły na to. Raz działa a raz nie.

speedy901990 commented 11 years ago

Tak rzeczywiście gra co któreś uruchomienie się zawiesza. Udało mi się znaleźć przyczynę problemu. Zawieszenie w trakcie uruchomienia powoduje część kodu odpowiedzialna za losowanie koszy. Przy pewnych warunkach losowanie koloru wchodzi w nieskończoną pętlę i dlatego gra się zatrzymuje podczas uruchamiania. To fragment kodu, który trzeba poprawić:

            for (int i = 0; i < basketCount; i++)
            {
                double x = (windowWidth / basketCount) * i;
                double y = windowHeight - 400;
                Point basketPosition = new Point((int)x, (int)y);
                System.Random rand = new Random(Guid.NewGuid().GetHashCode());
                int basketColor = rand.Next(1, colorsCount+1);
                if (i != 0)
                {
                    bool change;
                    for ( int j = 0 ; j < i ;)
                    {
                        change = false;
                        if (basketColor == basket[j].ColorNumber)
                        {
                            if (basketColor == colorsCount)
                            {
                                basketColor--;
                            }
                            else
                            {
                                basketColor++;
                            }
                            change = true;
                        }
                        if (change)
                            j = 0;
                        else
                            j++;
                    }
                }

Konkretniej zapętla się wewnętrzny 'for':

for ( int j = 0 ; j < i ;)

Musisz koniecznie poprawić ten warunek tak żeby zawsze był możliwy do osiągnięcia warunek stopu. Nie analizowałem jeszcze tego. Napisz jak naprawisz albo będziesz miał problem.

gpasnik commented 11 years ago

Poszukam jakiegoś algorytmu który losuje kilka liczb z danego zakresu bez powtórzeń. Postaram się to dziś wieczorem zrobić, a jak się nie uda dzisiaj to jutro.

gpasnik commented 11 years ago

W ekranie konfiguracyjnym gry ApplesGame nie ma przycisku uruchom grę. Jest tylko powrót do menu. Właśnie dodaję nowe grafiki. Poprawiłem też błąd z losowaniem koloru koszy.

speedy901990 commented 11 years ago

Już powinien działać (na masterze). Za duże marginesy były ustawione na małe rozdzielczości. Aktualnie poprawnie powinny wyświetlać się wszystkie lementy TYLKO na rozdzielczości 1920x1080 (jeśli chodzi o menu konfiguracji). Na mniejszych może działać ale nie musi ;) Próbuję zrobić tak, aby dostosowywał się layout automatycznie do każdej rozdzielczości.

speedy901990 commented 11 years ago

Już nie musisz zajmować się tym losowaniem koszyków. Naprawił to ostatni commit 91483e8abc90e5c0a25cb1ba587f26b60e5c92ad . Nie jest jeszcze w pełni przetestowany dlatego nie robie merge na mastera. Założę taska żebyście go ściągneli i przetestowali. To będzie najnowsza wersja projektu.