Microsoft XNA, część 2

10.05.2010 - Marcin Oczeretko
TrudnośćTrudność

    Brakująca metoda będzie ostatnim kawałkiem kodu, który wyprodukujemy. Nie czekajmy już zatem ani chwili i dopiszmy do klasy Game1:

Pokaż/ukryj kod OSTATNIEJ metody
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
private void HandleCollisions()
{
    for (int i = 0; i < players.Length; i++)
    {
        Vector2 diff = (ball.Center - players[i].Center);
        if (diff.Length() < players[i].Radius + ball.Radius)
        {
            if (!playerCollided[i])
            {
                Vector2 add = Vector2.Zero;
                
                diff.Normalize();
                
                if (0 < diff.X * players[i].Speed.X)
                    add.X = 3 * players[i].Speed.Length() * diff.X;
 
                if (0 < diff.Y * players[i].Speed.Y)
                    add.Y = 3 * players[i].Speed.Length() * diff.Y;
 
                ball.Bounce(diff, 1.1f, add);
                playerCollided[i] = true;
            }
        }
        else
            playerCollided[i] = false;
    }
}

    Nowością jest tutaj jedynie kod z linijek $ 10-18 $, gdzie wyliczamy dodatkową prędkość, którą gracz przekazuje piłce po uderzeniu. Tak naprawdę nie dzieje się tutaj żadna magia, a wszystko wynika z prostych praw fizyki i rozrysowania sił powstających przy zderzeniu dwóch kół. Dwa "ify" gwarantują nam, że piłka otrzyma dodatkową prędkość jedynie wtedy, gdy przyspieszy to jej ruch.

    I... Gotowe! Możesz teraz uruchomić grę, by podziwiać efekty swojej pracy. Zauważ, że większość jej kodu opisuje logikę właściwą naszej grze (głównie fizykę). Dzięki technologii Microsoft XNA mogliśmy skupić się na tym, co w tym programie było najistotniejsze, a wszystkie sprawy techniczne załatwiły za nas gotowe narzędzia i biblioteki. Cały kod możesz pobrać za pomocą odnośnika znajdującego się nieopodal. Jeśli pragniesz dalej rozszerzać tę grę, to zastanów się na przykład nad dodaniem punktacji, czy też dźwięku przy odbijaniu piłki. Potrzebną do tego wiedzę z pewnością łatwo odszukasz w internecie.



efekt końcowy

5
Twoja ocena: Brak Ocena: 5 (1 ocena)

Copyright © 2008-2010 Wrocławski Portal Informatyczny

design: rafalpolito.com