Platformer játék Pálya generálás. Új projekt Csináljunk új 2D projektet Neve legyen Platformer Kép asseteket töltsük le, és importáljuk a projektbe Majd.

Slides:



Advertisements
Hasonló előadás
Osztály leszármaztatás
Advertisements

 .
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Öröklődés 2..
Visual Basic for Application (VBA)
© Kozsik Tamás Tömbök, kollekciók és egyéb alaposztályok.
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
Bevezetés a Java programozásba
Programozás II. 3. Gyakorlat C++ alapok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Követelmények Bevezetés a Javába Első java program írása Dokumentációk
Tömbök ismétlés Osztályok Java-ban Garbage collection
Egy feladat megoldásának gondolatmenete. Feladat: Generáljuk véletlen számokat 1 és 6 között, amíg legalább 10 darab egyes és 10 darab hatos nem lesz.
Az objektum-orientált tervezési alapelvek kritikai vizsgálata
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Java programozási nyelv 3. rész – Osztályok I.
C# tagfüggvények.
6. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
5. előadás Parametrikus polimorfizmus. Generikus programozás
5. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
© Kozsik Tamás Csomagok. © Kozsik Tamás A program tagolása Típusdefiníciók (osztályok, interfészek) Metódusok Blokk utasítások Csomagok.
A JAVA TECHNOLÓGIA LÉNYEGE Többlépcsős fordítás A JAVA TECHNOLÓGIA LÉNYEGE Platformfüggetlenség.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Programozás C# -ban Tömbök.
Vizuális alkalmazások a FoxProban Páll Éva Boglárka.
Adattáblák kezelésére létrehozott automatikus formok Páll Éva Boglárka.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 AAO folytatás ++ Csink László. 2 Rekurzív bináris keresés (rendezett tömbben) public static int binker(int[] tomb, int value, int low, int high) public.
Visual Basic 2008 Express Edition
Java programozási nyelv Filekezelés
Generics Krizsán Zoltán. Bemutató A.NET 2.0 verziótól. A.NET 2.0 verziótól. Típusparaméter Típusparaméter Más nyelvben ez a template (sablon). Más nyelvben.
Ficsor Lajos CPP2 / 1 Származtatási mechanizmus a C++ nyelvben Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék.
Rendezőalgoritmusok. Feladatok I. 1.Hozzunk létre új StandardEXE VB projektet. Töröljük Form1-t 2.Add/Module/New, majd Properties/átnevezzük: „MainModule”
5. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
Excel programozás (makró)
(Bináris) Kupac (heap) adattípus
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
Multimédia Hangok, videók. Hangok Unityben A hangot hangforrás (Audio Source) játssza le és hallgatók (Audio Listener) segítségével hallhatjuk A Listener.
Hálózati többjátékos mód Multiplayer játékok. UNet HLAPI Hálózati játékot magunknak megírni hosszadalmas és bonyolult Kommunikáció, szinkronizáció, távoli.
Unity alapjai. Új projekt Asset Import Másoljuk be a boltív modellünket az asset könyvtárba.
Karakter animáció. Animáció alapok (ismétlés) Új 3D project (CharacterAnimation) Adjunk a jelenethez egy gömböt Hozzunk létre egy AnimatorControllert.
Realtime 3D rendszerek, Unity 3D Témalabor, 2016.
Karakter Animáció és Kontroller Unity. Kezdeti lépések Alap projekt letöltése Egy statikus geometriát láthatunk Meg vannak a fizikai befoglalók is.
Unity programozási gyakorlatok
Sprite animáció, kamera követés, háttér mozgás
Neumann János Informatikai Kar
Global Illumination.
Unity alapjai.
3d alakzatok, fizikai anyagok, kényszerek
JátékLogika.
„Designer-barát” játéklogika
Unity 3D alapok + gyakorlás.
Monte Carlo módszerek.
Bevezetés a Unity-be.
GUI.
Vizualizáció és képszintézis
Unity.
Cím elrendezése képpel
Kódduplikációk a forráskódban
Ghost Hunter Game logic/HUD.
Beépített assetek (Standard Assets).
Játszunk telefonon Készítette: Homlok Dávid
B M Java Programozás 1. Gy: Java alapok IT A N Ismétlés ++
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Függvénysablonok használata
Rendszerfejlesztés gyakorlat
Előadás másolata:

Platformer játék Pálya generálás

Új projekt Csináljunk új 2D projektet Neve legyen Platformer Kép asseteket töltsük le, és importáljuk a projektbe Majd lehet saját asseteket is használni

Assetek Problémák: – Nem egységesek – Felbontásban nincsenek összehabgolva – Egyik kicsi, másik nagy Feladat: – Találjuk meg a kényelmes player méretet – Jól jön itt a kamera nézet esetleg állítsuk a méretét 10- re, azzal könnyebb számolni – Állítsuk be többi asset példány méretét ennek megfelelően

Pályaelemek Játékos Szörny (Vigyázz harap!!!) Érme (nyammmm) Talaj Emelet Mozdítható doboz Nem mozdítható fal

Végső méretek

Próbaképpen berendezhetünk egy jelenetet

Jegyezzük meg: Milyen magasra kerüljenek: – Talaj – Szörny – Érme – Emelet – Szörny/érme a második szinten, harmadik szinten Milyen távol vannak egymástól a talaj/emeletek – Ezt jó lenne kerek értéken tartani (nálam pl 10)

Prefabok Prefab kellene (x mentén a 0-ban legyenek, amikor a prefabot készítjük belőlük, a magasság elmentődik a prefabba): – Talajról – Első emeletről – Második emeletről (ez nekünk könnyebség) – Érméről a talajon/első emeleten/második emeleten – Dobozról ugyanúgy a három szinten (kissé emeljük a szint fölé, majd a fizika miatt lehet fontos) – Szörnyről ugyanúgy a három szinten

Pályagenerálás Kitörölhetjük a jelenet tartalmát, a prefabok volt a lényeg (a player akár maradhat, a kamerát ne töröljük ki) Adjunk hozzá egy empty object-et, nevezzük el LevelGenerator-nak Adjunk az objektumhoz egy szkriptet: LevelGenerator.cs

Példányosítás LevelGenerator szkrip: public class LevelGenerator : MonoBehaviour { public Transform groundPrefab; void Start () { Transform newGroundElement = Instantiate (groundPrefab); } Kössük be a ground prefab-ot a LevelGenerator megfelelő bemenetére (következő dián nyíl jelzi)

Példányosítás

Objektum lerakása valamilyen valószínűséggel public class LevelGenerator : MonoBehaviour { public Transform groundPrefab; void Start () { int levelSize = 50; // 50 ground element wide float groundProb = 0.5f; for (int i = 0; i < levelSize; ++i) { Vector3 offset = new Vector3(i*10,0,0); float rand = Random.value; if(rand < groundProb) { Transform newGroundElement = Instantiate (groundPrefab); newGroundElement.Translate(offset); }

Futtatás

Egyenletes random public class Halton { float inv_base; float value; public Halton(int _base){inv_base = 1.0f / _base; value = 0.0f;} public float Next(){ float r = 1.0f - value f; if (inv_base < r) value += inv_base; else { float h = inv_base, hh; do { hh = h; h *= inv_base; } while ( h >= r ); value += hh + h - 1.0f; } return value; } public class LevelGenerator : MonoBehaviour {

Egyenletes random public class LevelGenerator : MonoBehaviour { public Transform groundPrefab; void Start () { int levelSize = 50; // 50 ground element wide float groundProb = 0.5f; Halton h1 = new Halton(2); for (int i = 0; i < levelSize; ++i) { Vector3 offset = new Vector3(i*10,0,0); float rand = h1.Next(); Debug.Log("rand: " + rand); if(rand < groundProb)

Egyenletes random Álljunk vissza a Random osztályra…

Random számok Nehéz terület sok matekkal Mire figyeljünk? – Legyen „hihető” a játékosnak: nem mindig a teljesen véletlenszerű a jó – Legyen gyors – Ha online kaszinójátékot írunk, ne legyen kiszámítható Valódi random: valamilyen külső forrásból – Atombomlás, atmoszferikus zaj, egérmozgás… Pszeudo-random – „Mag” értékekből (seed) számolt, ismétlődő sorozat

Feladatok Mindent tudunk, amit tudni kell !! 1.Találjunk ki egy szabályrendszert, hogy hogyan kell felépíteni a pályát – Mikor kell talajt lerakni – Mikor rakhatunk le 1./2. emeletet – Mikor rakhatunk le szörnyeket/érmét/dobozokat 2.Programozzuk le a szabályrendszerünket a LevelGenerator-ba. Használjuk a prefabokat!

Prefabok utólagos változtatása A prefabokat később is változtathatjuk Hozzáadhatunk pl. új komponenseket Pl. adjunk hozzá a jelenethez egy érmét (a prefabot húzzuk rá a jelenetre) A coin prefabhoz vegyünk fel egy új szkriptet: CoinAnim néven A jelenetben lévő érméhez is létrejön ez a szkript (szkript forrása a következő dián) A többi érme prefabra is egyszerűen rá lehet húzni ezt az új szkript asset-et (asset nézetből az inspector nézetbe)

public class CoinAnim : MonoBehaviour { Vector3 center; public float moveSpeed = 10.0f; public float moveDist = 0.5f; public float rotateSpeed = 360.0f; void Start () { center = transform.position; } void Update () { float t = Time.time; transform.position = center + moveDist * Mathf.Sin(t * moveSpeed) * Vector3.up; transform.eulerAngles = new Vector3(0,rotateSpeed*t,0); }

Vége