Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
P PVJCs2021
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Ing. Lukáš Hruška
  • PVJCs2021
  • Wiki
  • cv5

cv5 · Changes

Page history
Update cv5 authored Oct 19, 2021 by Ing. Lukáš Hruška's avatar Ing. Lukáš Hruška
Show whitespace changes
Inline Side-by-side
Showing with 4 additions and 6 deletions
+4 -6
  • cv5.md cv5.md +4 -6
  • No files found.
cv5.md
View page @ fdb6a811
# Cvičenie 5 # Cvičenie 5
__BREAKING CHANGES: PREMENOVANÉ ROZHRANIA - PRIDANÁ PREDPONA `I` (`ICommand, IWorld, IPhysics`)__ aby boli dodržané C# naming conventions
## 5.1 There are no ghosts here ## 5.1 There are no ghosts here
Pri implementácií `Move` ste zatiaľ neriešili kolíziu s prostredím. Napriek tomu, že už od nepamäti poznáme spôsob, ako prechádzať cez steny (nazvali ho dvere), v hre by bolo implementovať funkcionalitu, ako postavičke zabrániť v pohybe cez stenu. Pri implementácií `Move` ste zatiaľ neriešili kolíziu s prostredím. Napriek tomu, že už od nepamäti poznáme spôsob, ako prechádzať cez steny (nazvali ho dvere), v hre by bolo implementovať funkcionalitu, ako postavičke zabrániť v pohybe cez stenu.
...@@ -16,12 +14,12 @@ Vytvorte si triedu `Gravity` v priečinku `Commands`. Nech implementuje rozhrani ...@@ -16,12 +14,12 @@ Vytvorte si triedu `Gravity` v priečinku `Commands`. Nech implementuje rozhrani
`IPhysics.Execute()` sa automaticky volá stále v hernej slučke - viete teda v `Gravity` implementovať postupné padanie predmetov: `IPhysics.Execute()` sa automaticky volá stále v hernej slučke - viete teda v `Gravity` implementovať postupné padanie predmetov:
- Každý actor implementuje 2 metódy - `bool IsPhysicsEnabled()` a `void SetPhysics(bool isPhysicsEnabled)` - pomocou nich dokážeme regulovať, či bude daný actor ovplyvnený fyzikou alebo nie - môžeme takto nechať nejaký predmet lietať vo vzduchu. - Každý actor implementuje 2 metódy - `bool IsAffectedByPhysics()` a `void SetPhysics(bool isPhysicsEnabled)` - pomocou nich dokážeme regulovať, či bude daný actor ovplyvnený fyzikou alebo nie - môžeme takto nechať nejaký predmet lietať vo vzduchu.
- `IWorld` má v sebe metódu `GetActors()` - táto vráti zoznam všetkých actorov vo svete. - `IWorld` má v sebe metódu `GetActors()` - táto vráti zoznam všetkých actorov vo svete.
- Zatiaľ využite `Move` na pád, ale musíte stále vytvárať nové inštancie (dočasne zakomentujte typovú kontrolu pre `IMovable` v `Move` (a upravte ho, nech akceptuje `IActor` nie `IMovable`) - za chvíľu sa k tomu vrátime a ukážeme si niečo viac o práci s typovými parametrami a Action design pattern) - nevýhoda je zvytočné vytváranie množstva objektov. - Zatiaľ využite `Move` na pád, ale musíte stále vytvárať nové inštancie (dočasne zakomentujte typovú kontrolu pre `IMovable` v `Move` (a upravte ho, nech akceptuje `IActor` nie `IMovable`) - za chvíľu sa k tomu vrátime a ukážeme si niečo viac o práci s typovými parametrami a Action design pattern) - nevýhoda je zvytočné vytváranie množstva objektov.
- v cykle, napríklad `foreach` si implementujte pád, nezabudnite zohľadniť či je daný predmet ovplyvnený gravitáciou. - v cykle, napríklad `foreach` si implementujte pád, nezabudnite zohľadniť či je daný predmet ovplyvnený gravitáciou.
__Nezabudnite si pridať do sveta gravitáciu - `container.GetWorld().SetGravity(new Gravity())`!__ __Nezabudnite si pridať do sveta gravitáciu - `container.GetWorld().SetPhysics(new Gravity())`!__
## 5.3 Aaaand `Action<T>` ## 5.3 Aaaand `Action<T>`
...@@ -95,7 +93,7 @@ Viac o lambda výrazoch nájdete tu: [Microsoft dokumentácia](https://docs.micr ...@@ -95,7 +93,7 @@ Viac o lambda výrazoch nájdete tu: [Microsoft dokumentácia](https://docs.micr
## 5.5 Jump ## 5.5 Jump
Vytvorte triedu Jump, ktorá umožní hráčovi skákať, zvážte použité rozhranie. Vytvorte triedu Jump, ktorá umožní hráčovi skákať, zvážte použité rozhranie. Implementácia správanie je na vás, ale pozor: výška skoku musí byť konečná.
## 5.6 My very own enemy ## 5.6 My very own enemy
...@@ -110,5 +108,5 @@ Random random = new Random(); //initialize pseudorandom number generator, do thi ...@@ -110,5 +108,5 @@ Random random = new Random(); //initialize pseudorandom number generator, do thi
//some awesome code... //some awesome code...
int x = random.Next(min,max); //get random number from the given range int x = random.Next(min, max); //get random number from the given range
``` ```
\ No newline at end of file
Clone repository
  • assignment 1
  • assignment 2
  • cv10
  • cv2
  • cv3
  • cv4
  • cv5
  • cv7
  • cv8
  • cv9
  • exam 0
  • exam 1
  • exam 2
  • exam 3
  • exam 4
View All Pages