{"id":48,"date":"2008-04-23T19:46:18","date_gmt":"2008-04-23T18:46:18","guid":{"rendered":"http:\/\/netrix.org.pl\/index.php\/2008\/04\/23\/modul-2d\/"},"modified":"2011-01-06T22:15:40","modified_gmt":"2011-01-06T21:15:40","slug":"modul-2d","status":"publish","type":"post","link":"https:\/\/netrix.org.pl\/index.php\/2008\/04\/23\/modul-2d\/","title":{"rendered":"Modu\u0142 2D"},"content":{"rendered":"<p>Postanowi\u0142em napisa\u0107 do mojego silnika modu\u0142 2D, gdy\u017c od jakiego\u015b czasu mnie nosi\u0142o, aby napisa\u0107 symulacje rzut\u00f3w fizycznych (g\u0142\u00f3wnie uko\u015bnego &#8211; pewnie przez to, \u017ce zbli\u017caj\u0105 si\u0119 matury). Po raz pierwszy jednak uda\u0142o mi si\u0119 napisa\u0107 w\u0142asny shader, co uwa\u017cam za niebywa\u0142e osi\u0105gniecie, chocia\u017c jedyn\u0105 czynno\u015bci\u0105 jak\u0105 on wykonuje jest wy\u015bwietlenie tekstur. Wracaj\u0105c do modu\u0142u. Jest on bardzo prosty, poniewa\u017c sk\u0142ada si\u0119 tylko z 2 klas: ImageBox oraz Image. Klasa ImageBox jest pojemnikiem na obiekty typu Image.   Jej zadaniami s\u0105:<\/p>\n<ul>\n<li>Tworzenie i likwidacja obiekt\u00f3w Image<\/li>\n<li>Zarz\u0105dzanie wewn\u0119trznym Vertex Bufferem<\/li>\n<li>Zarz\u0105dzanie shaderem (kt\u00f3ry s\u0142u\u017cy tylko do pr\u00f3bkowania tekstury)<\/li>\n<li>Likwidacja i przywracanie zasob\u00f3w na czas resetowania urz\u0105dzenia<\/li>\n<\/ul>\n<p>Funkcja rysuj\u0105ca i zestaw funkcji do manipulowania obrazkami s\u0105 dost\u0119pne w klasie Image, dzi\u0119ki czemu mo\u017cna samodzielnie kontrolowa\u0107 czy obrazek ma zosta\u0107 narysowany oraz co zostanie zmienione. Z racji tego, \u017ce przed narysowaniem czegokolwiek, konieczne jest ustawienie shadera, rysowanie odbywa si\u0119 w bloku BeginPainting() (&#8230;) EndPainting(). Podobnie jest z manipulacj\u0105 obiektami, gdy\u017c trzeba zablokowa\u0107 VertexBuffer.<\/p>\n<p>Oto prosty przyk\u0142ad zastosowania tego modu\u0142u w &#8220;symulacji&#8221; rzutu uko\u015bnego.<\/p>\n<p><a href=\"http:\/\/netrix.org.pl\/content\/blog\/RzutUkosny.rar\">Download<\/a> &#8211; wymaga sm 1.1<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Postanowi\u0142em napisa\u0107 do mojego silnika modu\u0142 2D, gdy\u017c od jakiego\u015b czasu mnie nosi\u0142o, aby napisa\u0107 symulacje rzut\u00f3w fizycznych (g\u0142\u00f3wnie uko\u015bnego &#8211; pewnie przez to, \u017ce zbli\u017caj\u0105 si\u0119 matury). Po raz pierwszy jednak uda\u0142o mi si\u0119 napisa\u0107 w\u0142asny shader, co uwa\u017cam za niebywa\u0142e osi\u0105gniecie, chocia\u017c jedyn\u0105 czynno\u015bci\u0105 jak\u0105 on wykonuje jest wy\u015bwietlenie tekstur. Wracaj\u0105c do modu\u0142u. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[179,10,180,64],"_links":{"self":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts\/48"}],"collection":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/comments?post=48"}],"version-history":[{"count":2,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts\/48\/revisions"}],"predecessor-version":[{"id":658,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts\/48\/revisions\/658"}],"wp:attachment":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/media?parent=48"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/categories?post=48"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/tags?post=48"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}