{"id":46,"date":"2008-03-11T22:48:22","date_gmt":"2008-03-11T21:48:22","guid":{"rendered":"http:\/\/netrix.org.pl\/index.php\/2008\/03\/11\/unicode\/"},"modified":"2011-02-12T02:49:40","modified_gmt":"2011-02-12T01:49:40","slug":"unicode","status":"publish","type":"post","link":"https:\/\/netrix.org.pl\/index.php\/2008\/03\/11\/unicode\/","title":{"rendered":"Zmiany na lepsze?"},"content":{"rendered":"<p>Postanowi\u0142em, \u017ce nale\u017ca\u0142oby wreszcie zrobi\u0107 porz\u0105dek z bibliotek\u0105 NLib oraz z silnikiem NIne. Niestety jak si\u0119 okaza\u0142o przy projektowaniu gry (my\u015bl\u0119 nad klonem Tetrisa w 3D), aktualny stan silnika nie pozwala na jego rozbudow\u0119 i pisanie w oparciu o niego jakiejkolwiek gry. Dlatego stwierdzi\u0142em, \u017ce lepszym pomys\u0142em by\u0142oby zaprojektowa\u0107 gr\u0119, a nast\u0119pnie do niej odpowiedni interfejs, maj\u0105c na uwadze ponowne u\u017cycie kodu do tworzenia innych gier.<\/p>\n<p>Na pocz\u0105tek zaj\u0105\u0142em si\u0119 bibliotek\u0105 NLib. Zamierzam kompletnie uniezale\u017cni\u0107 si\u0119 od wyj\u0105tk\u00f3w, poniewa\u017c uwa\u017cam, \u017ce s\u0105 one dobre do zwyk\u0142ych program\u00f3w, w kt\u00f3rych wyst\u0119puje wiele sytuacji wyj\u0105tkowych. W grze s\u0105 niepotrzebne, gdy\u017c je\u017celi nast\u0105pi sytuacja wyj\u0105tkowa, to gr\u0119 i tak nale\u017cy zamkn\u0105\u0107, a poza tym podobno obs\u0142uga wyj\u0105tk\u00f3w spowalnia kod. Zamiast tego b\u0142\u0119dami b\u0119dzie sie zajmowa\u0142 Logger, do kt\u00f3rego b\u0119d\u0105 trafia\u0107 wszystkie komunikaty (nawet te najmniej wa\u017cne), dzi\u0119ki temu b\u0119dzie wiadomo co i kiedy posz\u0142o nie tak. Dlatego b\u0119dzie wymagany do u\u017cywania jakiegokolwiek modu\u0142u z biblioteki.<br \/>\nWa\u017cn\u0105 zmian\u0105 jest te\u017c wprowadzenie obs\u0142ugi Unicode. Niestety standardowe strumienie zapisuj\u0105ce do plik\u00f3w, nie zapisuj\u0105 ich w tym kodowaniu, dlatego zacz\u0105\u0142em pisa\u0107 w\u0142asny strumie\u0144 oparty na funkcjach WinApi. Z pocz\u0105tku b\u0119dzie obs\u0142ugiwa\u0142 tylko Little Endian, ale my\u015bl\u0119 nad dodaniem obs\u0142ugi plik\u00f3w zapisanych jako Big Endian i ANSI (w trybie Unicode projektu). Z tego strumienia b\u0119dzie korzysta\u0142 r\u00f3wnie\u017c Logger. Oczywi\u015bcie Unicode b\u0119dzie obs\u0142ugiwany tylko wtedy, gdy w ustawieniach projektu kodowanie b\u0119dzie w tym trybie. W trybie ANSI, strumie\u0144 b\u0119dzie zapisywa\u0142 tylko w ANSI.<\/p>\n<p>Uwa\u017cam, \u017ce nale\u017cy i\u015b\u0107 z duchem czasu, a nie pozostawa\u0107 w epoce kamienia \u0142upanego :D.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Postanowi\u0142em, \u017ce nale\u017ca\u0142oby wreszcie zrobi\u0107 porz\u0105dek z bibliotek\u0105 NLib oraz z silnikiem NIne. Niestety jak si\u0119 okaza\u0142o przy projektowaniu gry (my\u015bl\u0119 nad klonem Tetrisa w 3D), aktualny stan silnika nie pozwala na jego rozbudow\u0119 i pisanie w oparciu o niego jakiejkolwiek gry. Dlatego stwierdzi\u0142em, \u017ce lepszym pomys\u0142em by\u0142oby zaprojektowa\u0107 gr\u0119, a nast\u0119pnie do niej odpowiedni [&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,63,20],"_links":{"self":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts\/46"}],"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=46"}],"version-history":[{"count":2,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts\/46\/revisions"}],"predecessor-version":[{"id":812,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts\/46\/revisions\/812"}],"wp:attachment":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/media?parent=46"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/categories?post=46"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/tags?post=46"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}