Coder Social home page Coder Social logo

shooter's Introduction

Authors: Filip Gaweł, Piotr Białas

Silesian University of technology faculty of applied mathematic III semester - project

Część I

  • Opis programu Zombie shooter jest obiektowym programem w formie gry. Na ekranie wyświetlany jest czerwony kwadrat – gracz, zielone koła – zombie. Poprzez naciskanie na klawiaturze odpowiednich przycisków gracz może się poruszać, a po naciśnięciu lewego przycisku myszy gracz oddaje strzał w kierunku kursora. Gra polega na przechodzeniu kolejnych rund, aby przejść rundę należy zabić wszystkie zombie i zachować życie. Zombie zawsze kieruje się w stronę gracza i gdy się z nim dotknie zaczyna go atakować odbierając mu życie. Dodatkowo gracz może zbierać pojawiające się na ekranie dodatkowe super moce, które są pomocne do przejścia rundy. Do obsługi programu wystarczy komputer z systemem operacyjnym Windows XP lub nowszym.

  • Instrukcja obsługi
    rys.1

alt text
Aby zagrać w grę konieczne jest posiadanie pliku zombie_shooter.exe. Do poruszania się graczem używamy klawiatury tak jak to pokazano na rys.1 (kolor niebieski).

W celu oddania strzału należy nakierować kursor w miejsce, gdzie chcemy oddać strzał, a następnie nacisnąć lewy przycisk myszy. Jeden magazynek pistoletu posiada 12 naboi, gdy chcemy przeładować należy nacisnąć klawisz 'r' na klawiaturze 'qwerty' . Proces przeładowania trwa jedną sekundę. patrz rys.1.

  • WYGLĄD GŁÓWNEGO EKRANU

alt text W prawym dolnym rogu okienka pokazywany jest poziom życia gracza oraz wartość tarczy, oznaczone jako 'HP' oraz 'SH' z ang. 'shield' - tarcza. Możemy również odczytać liczbę zabitych zombie w trakcie trwania gry, liczba ta poprzedzona jest tekstem 'KILLED'. W górnej części ekranu znajdują się informacje o aktualnej rundzie oraz broni. Kolory zombie są bardzo pomocne. W zależności od poziomu życia, zombie zmienia swój kolor z zielonego na czerwony. Zombie w zależności od swojej wielkości posiada odpowiednią szybkość poruszania. Im większe zombie tym porusza się wolniej, ale zadaje więcej obrażeń.

Część II

Specyfikacja techniczna

  • Podział projektu na pliki: W folderze shooter:

  • Shooter.pde

  • Player.pde

  • Guns.pde

  • Bullet.pde

  • PowerUp.pde

  • Zombie.pde

Co znajduje się w danym pliku

Shooter.pde – main

  • void setup()
  • void draw()
  • void keyPressed()
  • void keyReleased()
  • void mousePressed()
  • void reload()
  • void speed()
  • void push(Player p, Zombie z)
  • boolean birthCollision(int i)
  • void addZombie(int l)
  • void showText()

Player.pde – klasa gracza

  • void move()
  • void show()
  • boolean collisionWithPowerUp(float a, float b)
  • void rotating()
  • boolean collisionWtihZombie(Zombie z)

Guns.pde – klasa broni

  • boolean shoot()
  • void showAmmo()
  • void reload()

Bullet.pde – klasa pocisków

  • void move()
  • void show()
  • void update()
  • boolean outOfRange()

PowerUp.pde – klasa mocy

  • void show()
  • void use(Player guy)

Zombie.pde – klasa zombie

  • void update()
  • void show()
  • void rotating()
  • void applyForce(PVector force)
  • void applyBehaviors(ArrayList<Zombie> zombies)
  • PVector seek(PVector target)
  • PVector separate (ArrayList<Zombie> zombies)
  • Boolean intersects(Zombie other)
  • void attack()
  • boolean collisionWithBullets(Bullet b, Zombie z)
  • boolean death(Zombie z)

Kompilacja projektu: Projekt został stworzony w języku java w frameworku processing w wersji 3.4.

Szczegóły techniczne

Algorytmy/fragmenty kodu

  • Poruszanie się zombie – wykorzystałem algorytm Craig'a Reynolds'a „Steering Behaviors For Autonomous Characters".

Metoda, która zwraca wektor, aby zombie kierowało się do gracza

alt text

Metoda sprawdza pobliskie zombie i oddala się od nich

alt text

Metoda wykorzystuje metody PVector seek oraz PVector seprate do ruchu zombie oraz wykonuje odpowiednie kroki w przypadku kolizji z graczem

alt text

Metoda dodaje do wektoru acceleration konkretny wektor

alt text

shooter's People

Contributors

filiponesco avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.