Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Programozás III. Gyakorlás.

Hasonló előadás


Az előadások a következő témára: "Programozás III. Gyakorlás."— Előadás másolata:

1 Programozás III. Gyakorlás

2 Gyakorlás

3 Szabályok Az akadályok vagy oldalirányba, vagy fel-le mozognak. Ha elérnek a pálya szélére, ott visszafordulnak. A játékosnak a jobb alsó sarokban található célig kell eljutnia. Ha hozzáér egy akadályhoz, veszített. (Alternatíva: ha hozzáér egy akadályhoz, elveszít egy életet)

4 Tervezés Válasszunk grafikai módszert Shape-ek? Drawingok? Visualok?
A Rectangle és az Ellipse (Shape-ek) elég a feladat megoldásához, és nem nagy az objektumok száma sem, tehát ez jó választás lehet. Természetesen a két bonyolultabb megoldás is használható.

5 Tervezés Ha Shape-eket választottunk, ezeket általában adatkötés segítségével szoktuk mozgatni egy Canvason. Pl. van egy Játékos objektum, aminek van egy Rect-je (x, y, szélesség, magasság), ehhez van kötve egy Ellipse x, y koordinátái, szélessége, magassága. Most nem tudjuk az akadályokat a designerben lerakni az ablakba! (túl sok van, illetve pályáról pályára változhat a számuk stb.)  tehát tudnunk kell kódból lerakni Shape-eket a Canvasra  illetve, mivel így nem tudjuk a XAML-ben megírni az adatkötést  ezt is kódban kell

6 Tervezés – Téglalapok dinamikus elhelyezése a Canvason
Téglalap létrehozása a kódban: Rectangle rect = new Rectangle(); Ahhoz, hogy látszódjon: Ne felejtsünk neki Fill-t vagy Stroke-ot és esetleg StrokeThickness-t állítani Ne felejtsük el kirakni az ablakba – a canvas Children gyűjeményébe kell belerakni A canvas Children gyűjteménye tartalmazza a canvason lévő objektumokat canvas.Children.Add(rect) canvas.Children.RemoveAt(rect) … további, gyűjteményekben megszokott függvények Indexelni is lehet: canvas.Children[i]

7 Tervezés – adatkötés a kódban
rectangle.SetBinding(Rectangle.WidthProperty, new Binding(„Terulet.Width") { Source = jatekos }); rectangle = az ablakba rakott Rectangle Shape, aminek az adatkötését beállítjuk. Rectangle.WidthProperty = a rectangle Width tulajdonságát akarjuk adatkötéssel beállítani. Ez a Width egy ún. függőségi tulajdonság, amit a Rectangle.WidthProperty nevű statikus mező reprezentál. Terulet.Width = a játékos területének szélességét vegye fel a rectangle szélessége jatekos = adatkötés forrása

8 Tervezés – adatkötés a kódban
Ha egy téglalapot mozgatni szeretnénk, és még a szélességét és magasságát is befolyásolni, a következő statikus mezőkre lesz szükségünk: Rectangle.WidthProperty Rectangle.HeightProperty Canvas.LeftProperty (ugyanis a téglalapnak nincs saját x koordinátája, hanem azt a Canvastól kapja) Canvas.RightProperty (ugyanis a téglalapnak nincs saját y koordinátája, hanem azt a Canvastól kapja)

9 Tervezés Tervezzük meg az osztályokat II.
Kellenek azok az osztályok, amikkel reprezentáljuk a játékban a „szereplőinket” (akadályok, játékos, cél) PalyaObjektum: Jatekos és Akadaly őse, a célt akár reprezentálhatjuk egyből ezzel (vagy lehet külön osztály is neki) Területe van (Rect) Tud ütközni (Az akadálynak ütköznie kell a játékossal, a célnak is ütköznie kell tudni a játékossal… az ütközés a Rect IntersectsWith függvényével könnyen megoldható.) Jatekos PalyaObjektum utóda. A plusz képessége annyi, hogy 4 irányba mozgatható. Akadaly PalyaObjektum utóda. A plusz képessége annyi, hogy mozgatható (egy fix irányba fog mozogni, pálya szélén visszafordul).


Letölteni ppt "Programozás III. Gyakorlás."

Hasonló előadás


Google Hirdetések