kweensey Odesláno Únor 1, 2009 Nahlásit Share Odesláno Únor 1, 2009 Zdravim, potom, co mootoo udelal uvod do programovani v C/PSP, rozhodl jsem se - po vzoru myschooa - zacit delat takove jednoduche tutorialy na zajimave aplikace. Napred se budu inspirovat myshooovymi tutorialy v LUA a budu ukazovat, jak je udelat v C/PSP a az mi dojdou, tak zacnu delat svoje vlastni.. Pokazde, kdyz neco noveho pribyde, tak budu aktualizovat tento prispevek a napisu do tohoto tematu. Tak doufam, ze to bude aspon k necemu a nekoho tim na chvili zabavim. kweensey ----------------------------------------------------------------------- Upozorneni: Pokud nemate ani zaklady nebo vyvojarske prostredi Cygwin, prectete si nejprve Mootooho kruzok mladeho programatora. Pokud byste meli s instalaci a nastavenim Cygwinu nejake problemy, zkuste to podle tohoto (anglickeho) navodu. ----------------------------------------------------------------------- Seznam tutorialu: * Buttons Tester * Battery Stats * Pixel Unsticker ----------------------------------------------------------------------- Buttons Tester Buttons Tester bude programek, ktery Vam rekne, jake tlacitko prave drzite.. :D Budete potrebovat nasledujici soubory: lesson_1_buttons-tester.zip Jak na to: Vytvorime si novy soubor main.c. A jdeme na to, zacneme s includama (tedy nadefinujeme knihovny, ze kterych budeme pouzivat prikazy). #include <pspkernel.h> #include <pspctrl.h> #include "graphics.h" pspkernel.h - zaklad vsech PSP programu pspctrl.h - pristup ke tlacitkum PSP graphics.h - pristup k displayi a zobrazovani (je uvedena v uvozovkach misto v hranatych zavorkach proto, ze ji mame vedle naseho programu a ne v jadru Cygwinu) Ted nadefinujeme informace o nasem programu: PSP_MODULE_INFO("Buttons Tester", 0, 1, 0); Buttons Tester - jmeno naseho programu 0 - bude bezet pod uzivatelskym rezimem 1 - verze naseho programu (v1.0) 0 - desetinne cislo verze (v1.0) Nasledujici kod je velice slozity, avsak vubec mu nemusite rozumet. int exit_callback(int arg1, int arg2, void *common) { sceKernelExitGame(); return 0; } int CallbackThread(SceSize args, void *argp) { int cbid; cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL); sceKernelRegisterExitCallback(cbid); sceKernelSleepThreadCB(); return 0; } int SetupCallbacks(void) { int thid = 0; thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0); if(thid >= 0) { sceKernelStartThread(thid, 0, 0); } return thid; } Tento kod obsahuje funkce, ktere budeme pouzivat. V podstate se stara o to, aby hra bezela na PSP, aby se nezasekavala a nevypinala, kdy nebudeme chtit. Doted jsme se starali o to, aby se nase hra rozjela na PSP a v poradku jela. Odted se budeme zabyvat tim, co nase hra ma delat. main() { Kazdy program tuto cast musi mit. Je to v podstate ta cast, kde je napsane, co ma program delat. Doted jsme si jenom definovali funkce, ted je budeme pouzivat. Otevrena slozena zavorka oznacuje, ze tady cast main zacina. SetupCallbacks(); Timto prikazem vyvolame ten kod, ktery se stara o stabilitu hry na PSP. Definovali jsme si ho vyse, vzpominate? ;) initGraphics(); Vyvolame grafickou knihovnu, abychom mohli pouzivat obrazky. Ted se dostavame k ovladani - tedy tlacitkum. SceCtrlData pad; Nadefinovali jsme si promennou pad, ktera v sobe bude obsahovat zmacknute tlacitko. Ted se dostavame k casti, kdy PSP nahraje nase obrazky (pozadi a ikonky tlacitek) do sve pameti a pote je bude pouzivat. Image* Background; Background = loadImage("./images/background.png"); Image* Background; - budeme nahravat obrazek pojmenovany Background Background = loadImage("./images/background.png"); - nahrat obrazek Background ze sveho umisteni (slozky images) Ted budeme delat tu samou akci, akorat nebudeme kazdou ikonku tlacitka nahravat jako novy obrazek, ale udelame skupinu obrazku nazvanou Buttons a do ni nahrajeme vsechny tlacitka a kazde bude mit svoje cislo. Image* Buttons[10]; Buttons[0] = loadImage("./images/no_button.png"); Buttons[1] = loadImage("./images/up_arrow.png"); Buttons[2] = loadImage("./images/down_arrow.png"); Buttons[3] = loadImage("./images/left_arrow.png"); Buttons[4] = loadImage("./images/right_arrow.png"); Buttons[5] = loadImage("./images/cross_button.png"); Buttons[6] = loadImage("./images/circle_button.png"); Buttons[7] = loadImage("./images/square_button.png"); Buttons[8] = loadImage("./images/triangle_button.png"); Buttons[9] = loadImage("./images/left_trigger.png"); Buttons[10] = loadImage("./images/right_trigger.png"); Image* Buttons[10]; - skupina obrazku Buttons, ktera obsahuje obrazku od 0 do 10 Buttons[0] = loadImage("./images/no_button.png"); - obrazek 0 ve skupine Buttons nahrajeme ze sveho umisteni Ted si nadefinujeme promennou button pro urcovani jednotlivych obrazku ze skupiny (pochopite potom). int button = 0; int - zkracene integer nam rika, ze se bude jednat o promennou, ktera v sobe bude uchovavat cislo button - jmeno nasi promenne = 0 - nastavime jeji pocatecni hodnotu na 0 Ted udelame smycku, ktera se bude opakovat do te doby, dokud neukoncime program. while(1) { Kdybychom ji neudelali, tak program bezi setinu sekundy a dodela kod a ukonci se, tak se budou nasledujici veci provadet porad dokola a bude to program udrzovat v chodu. Ted uz doopravdy zacina samotna cinnost naseho programu. sceCtrlReadBufferPositive(&pad, 1); Precteme tlacitko, ktere je zmacknute a ulozime do vyse definovane promenne pad. A ted zjistime, ktere tlacitko bylo stisknuto, abychom mohli urcit vhodny obrazek. if (pad.Buttons & PSP_CTRL_UP) { button = 1; } Cesky receno: Pokud je stisknuta sipka nahoru, nastav promennou button na hodnotu 1 (1 protoze je to obrazek 1 ve skupine obrazku Buttons nahravanych do pameti). A ted to budeme opakovat se vsema ostatnima tlacitkama (kazdemu priradime jeho cislo). if (pad.Buttons & PSP_CTRL_DOWN) { button = 2; } if (pad.Buttons & PSP_CTRL_LEFT) { button = 3; } if (pad.Buttons & PSP_CTRL_RIGHT) { button = 4; } if (pad.Buttons & PSP_CTRL_CROSS) { button = 5; } if (pad.Buttons & PSP_CTRL_CIRCLE) { button = 6; } if (pad.Buttons & PSP_CTRL_SQUARE) { button = 7; } if (pad.Buttons & PSP_CTRL_TRIANGLE) { button = 8; } if (pad.Buttons & PSP_CTRL_LTRIGGER) { button = 9; } if (pad.Buttons & PSP_CTRL_RTRIGGER) { button = 10; } K tomuto, si myslim, ze neni co dodat, kazdy chape, ne? :) A pokud nebude zmacknute zadne tlacitko, tak se obrazek da na 0. if (pad.Buttons == 0) { button = 0; } Taky jednoduche.. :) Doted se veci delaly a my nic nevideli. Tak jdeme na to.. :wohow: blitAlphaImageToScreen(0, 0, 480, 272, Background, 0, 0); blitAlphaImageToScreen - prikaz k zobrazeni obrazku 0, 0 - stredy (nepotrebujeme, nechame na nulach) 480, 272 - velikost naseho obrazku (stejne velky jako displej PSP, aby pokryl celou plochu) Background - jmeno obrazku (zadavali jsme ho, kdyz jsme ho nahravali do pameti, pamatujete?) 0, 0 - zacatek obrazku (udeva se levy horni roh, takze uplne do rohu) Ted udelame to same, ale s nasim obrazkem zmacknuteho tlacitka. blitAlphaImageToScreen(0, 0, 34, 34, Buttons[button], 224, 120); To same jako predtim. Stredy jsou 0, akorat velikost je jina a vykreslit na 224 a 120 (stred obrazovky). Pozastavim se u jmena. Jmeno nasich obrazku je Buttons[0-10], ze? Ale aby se vykreslil ten obrazek, ktery patri stisknutemu tlacitku, tak jsme do promenne 'button' ulozili cislo daneho obrazku a misto cisla ted dame 'button', chapete? Tim padem se misto 'button' da cislo obrazku a ten se potom vykresli. A ted uz to jenom cele vykreslime na obrazovku. flipScreen(); Kdybychom toto neudelali, tak uvidime jenom cerny display. Sice by vse fungovalo, ale nic by se nezobrazovalo. Tak a ted uz jenom pozavirame otevrene slozene zavorky (od while(1) a od main() ). } return 0; } Return 0 znamena, ze to nema vracet zadnou hodnotu. Tak a to je vse.. :) Ted uz jenom udelat Makefile a zkompilovat. Dal bych tady, jak by mel vypadat vas cely soubor main.c, ale 95% by to zkopirovalo, zkompilovalo a podepsalo se pod to a o to nestojim.. ;) Makefile: TARGET = Buttons_Tester OBJS = main.o graphics.o framebuffer.o CFLAGS = -O2 -G0 -Wall CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti ASFLAGS = $(CFLAGS) LIBDIR = LIBS = -lpspgu -lpng -lz -lm LDFLAGS = EXTRA_TARGETS = EBOOT.PBP PSP_EBOOT_TITLE = Buttons Tester PSPSDK=$(shell psp-config --pspsdk-path) include $(PSPSDK)/lib/build.mak A ted uz je to opravdu vse. Ted uz jenom hodit do PSP a vyzkouset. Pozor: Vsechny soubory z prilozeneho archivu musi byt ve stejne slozce, jako vas soubor main.c! Po zkompilovani dejte soubor EBOOT.PBP a celou slozku images do ms0:/PSP/GAME/Buttons Tester/ . ----------------------------------------------------------------------- Battery Stats Battery Stats bude - jak uz musi byt z nazvu jasne - program, ktery nam vypise informace o beterce.. Dneska budete potrebovat soubory z archivu lesson_2_battery-stats.zip.. Takze si udelejte novou slozku a do ni novy soubor main.c. #include <pspkernel.h>#include <pspctrl.h>#include <psppower.h>#include "graphics.h" Myslim, ze netreba vysvetlovat, kazdy chape, o co tady jde.. :) Akorat nam pribyla nova knohovna - psppower.h. PSP_MODULE_INFO("Battery Stats", 0, 1, 0); Nadefinujeme jmeno a verzi. #define RGB(r, g, b) ((r)|((g)<<8)|((b)<<16)) Tento kod nam umozni pouzivat klasicke RGB (cervena/zelena/modra) definice barev a pak je prevede do BGR, ktere knihovna pouziva. #define colBlack RGB(0, 0, 0) Nadefinujeme si v RGB barvu naseho pisma - tedy cernou a pojmenujeme ji colBlack. int exit_callback(int arg1, int arg2, void *common){ sceKernelExitGame(); return 0;}int CallbackThread(SceSize args, void *argp){ int cbid; cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL); sceKernelRegisterExitCallback(cbid); sceKernelSleepThreadCB(); return 0;}int SetupCallbacks(void){ int thid = 0; thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0); if(thid >= 0) { sceKernelStartThread(thid, 0, 0); } return thid;} A callbacky.. :) int print(int x, int y, const char* text){ Vytvorime si novy prikaz print, ktery bude pracovat se tremi argimenty: x, y (pozice) a text. printTextScreen(x, y, text, colBlack); A kdyz se ten prikaz vyvola, tak vypise text na pozici x, y. V podstate je nam to k nicemu, ale - jak rika nas ucitel - programator je tvoj liny a tak si vse usnadnuje. Tento prikaz je nejenom kratsi na psani, ale take diky nemu nemusime pokazde uvadet barvu. return 0;} Uzavreme nas prikaz a protoze nechceme, aby vracel nejaky vysledek, dame return 0;. int main(){ A je to zase tady - samotna cinnost programu.. ;) SetupCallbacks(); initGraphics(); SceCtrlData pad; Vyvolame callbacky, graicke rozhrani a nadefinujeme promennou pro tlacitka. char string[256]; Nadefinujeme promennou string, do ktere budeme pozdeji ukladat texty. Neni tam int, ale char, protoze se jedna o promennou, ktera bude obsahovat znaky a ne cislelnou hodnotu. V hranatych zavorkach je uvedena kvota znaku. int batteryLifeTime = 0; Znamym zpusobem nadefinujeme promennou batteryLifeTime a nastavime na 0. Image* background; background = loadImage("./images/background.png"); Nacteme pozadi ze slozky images pod nazvem background. while(1) { A nase nekonecna smycka.. :D (zdravim mootooa :)) blitAlphaImageToScreen(0, 0, 480, 272, background, 0, 0); Vykreslime pozadi. if (scePowerIsPowerOnline()) { print(17, 110, "Vnejsi energie: Ano"); } else { print(17, 110, "Vnejsi energie: Ne"); } A la "Pokud je napajeni zapnuto, vypis Vnejsi energie: Ano na souradnice 17, 90, jinak vypis na stejne souradnice Vnejsi energie: Ne." Je to vlastne uplne obycejna podminka, akorat jsme pouzili nas prikaz na vypisovani a je pouzita podminka z knihovny psppower.h. Myslim, ze nic tezkeho.. ;) if (scePowerIsBatteryExist()) { Dalsi podminka z psppower.h, tentokrat "Pokud je zasunuta baterie...". print(17, 120, "Baterie: Vlozena"); "...tak vypsat text." :) if (scePowerIsBatteryCharging()) { print(17, 130, "Nabijeni: Ano"); } else { print(17, 130, "Nabijeni: Ne"); } Stale nove podminky. Na prvni pohled to muze vypadat slozite, ale jsou to obycejne podminky - jenom nove "otazky".. ;) Jak asi kazdemu doslo, tentokrat se jedna o otazku "Dobiji se baterie?".. sprintf(string, "Uroven nabiti: %d%%", scePowerGetBatteryLifePercent()); Fukce sprintf nam umozni ulozit text, ktery obsahuje hodnoty promennych (v nasem pripade procenta nabiti baterky) do jedne promenne (u nas je to string), kterou potom pouzijeme k vypisovani. %d% bude nahrazeno hodnotou vracenou prikazem scePowerGetBatteryLifePercent. Treti % je normalni procento, ktere se za cislem napise. sprintf(string, "Uroven nabiti: %d%%", scePowerGetBatteryLifePercent()); Prikaz(promenna, do ktere se text ulozi (1), "zobrazeny text vysledek promenne (2) pokracovani textu", promenna (2)); print(17, 140, string); Vypiseme na danou pozici text ulozeny v promenne string. batteryLifeTime = scePowerGetBatteryLifeTime(); Do promenne batteryLifeTime ulozime cas, ktery jeste baterce zbyva (to zni brutalne :D). sprintf(string, "Zbyva hodin: %02d:%02d", batteryLifeTime/60, batteryLifeTime-(batteryLifeTime/60*60)); print(17, 150, string); Tohle vypada hnusne, co? :D Je to stejne jako predtim, akorat misto %d% tady mame %02d, coz zajisti, ze kdyz bude promenna mensi nez 10 (cili bude jednomistna), tak pred i bude nula (zkratka at ma porad dve cifry). Ziskany zbyvajici cas vydelime 60ti a ziskame hodiny. Abychom ziskali minuty (pouze zbyvajici - ne cely zbyvajici cas v minutach!), musime od celkoveho zbyvajiciho casu odecist 3600tinu celkoveho casu. A vypiseme. if (scePowerIsLowBattery()) { print(17, 160, "Slaba baterie: Ano"); } else { print(17, 160, "Slaba baterie: Ne"); } A zase to same.. Pokud je baterie slaba, vypis jedno, v opacnem pripade vypis druhe.. sprintf(string, "Napeti: %0.3f V", scePowerGetBatteryVolt() / 1000.0); print(17, 170, string); Ziskame hodnotu napeti, kterou vypiseme na 3 desetinna mista (%0.3f - misto d je tam f, protoze se nejedna o cele, ale desetinne cislo). Za scePowerGetBatteryVolt() je / 1000.0, aby posledni desetinnecislo byly tisiciny. sprintf(string, "Teplota: %d \"C", scePowerGetBatteryTemp()); print(17, 180, string); Ted tady po tech brutalitach mame zase uplne primitivni zjisteni teploty, kterou dostaneme v jednotkach, ktere chceme zobrazit (tedy stupne Celsia) a v celem cisle, takze klasicke %d a nijak neprevadeny prikaz/promennou scePowerGetBatteryTemp(). } else { Jinak (patrici k podmince scePowerIsBatteryExist() - tedy, je-li baterie vlozena). print(17, 120, "Baterie: Vyjmuta"); print(17, 140, "Statistiky baterie nedostupne!"); Misto "Baterie: Vlozena" se na stejnem miste (misto puvodniho textu, ne pres) vypise "Baterie: Vyjmuta" a misto zbytku se napise "Statistiky baterie nedostupne!". Jak primitivni. :D } Uzavreme podminku s vlozenou/vyjmutou baterii. :) print(17, 220, "Stiskni [X] pro ukonceni programu."); print(17, 230, "Stiskni [O] pro vypnuti PSP."); print(17, 240, "Stiskni [^] pro uspani PSP."); Vypiseme nabidku cinnosti. sceCtrlReadBufferPositive(&pad, 1); Zkontrolujeme zmacknuta tlacitka. if (pad.Buttons != 0) { "Pokud bude zmacknute nejake tlacitko (resp. pokud ne-nebude zmacknuto nic), tak..." if (pad.Buttons & PSP_CTRL_CROSS) { sceKernelExitGame(); } if (pad.Buttons & PSP_CTRL_CIRCLE) { scePowerRequestStandby(); } if (pad.Buttons & PSP_CTRL_TRIANGLE) { scePowerRequestSuspend(); } "...zkontrolovat, jestli je zmacknuty krizek (v tom pripade ukoncit hru - sceKernelExitGame();), kolecko (vypnout PSP - scePowerRequestStandby();) nebo trojuhelnik (uspat PSP - scePowerRequestSuspend();). } Uzavreme podminku s "ne-nezmacknutyma tlacitkama" . :D flipScreen(); A vykreslime vse na display. } return 0;} Uzavreme nasi nekonecnou smycku, main() nic nema vracet (return 0;) a uzavreme i ho. To je ze souboru main.c vse! :) Opet tady nebudu davat cely main.c kvuli kopirakum - chci, abyste to delali postupne a vedeli, co delate.. ;) Makefile: TARGET = Battery_StatsOBJS = main.o graphics.o framebuffer.oCFLAGS = -O2 -G0 -WallCXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rttiASFLAGS = $(CFLAGS)LIBDIR =LIBS = -lpspgu -lpng -lz -lm -lpsppowerLDFLAGS =EXTRA_TARGETS = EBOOT.PBPPSP_EBOOT_TITLE = Battery StatsPSPSDK=$(shell psp-config --pspsdk-path)include $(PSPSDK)/lib/build.mak Tak a ted uz jenom prohnat pres Cygwin a do PSP.. ;) Pozor: Opet nezapomente mit prilozene soubory i slozku ve stejne slozce jako soubor main.c a Makefile a do ms0:/PSP/GAME/Battery Stats/ patri slozka images a soubor EBOOT.PBP. ----------------------------------------------------------------------- Pixel Unsticker Jelikoz jsem se vzbudil kolem 22:00 a obvykle zacinam tutorialovy program delat hned, jak prijdu ze skoly, tak ted udelam jenom takovou oddechovku. Pixel Unsticker bude programek na opravu stuck pixelu tim, ze bude opakovat tri zakladni barvy: cervenou, zelenou a modrou. Stahnete si archiv lesson_2_pixel-unsticker.zip, kde v podstate neni nic noveho - jen knihovna graphics.h, kterou jsme pouzivali zatim ve vsech tutorialech. Takze udelejte novou slozku a novy soubor main.c.. #include <pspkernel.h>#include "graphics.h" Vzdycky se to tak delalo, dela a vzdycky bude. Soubor zacina includama. :) PSP_MODULE_INFO("Pixel Unsticker", 0, 1, 0); Pojmenujeme program a uvedeme verzi. #define RGB(r, g, b) ((r)|((g)<<8)|((b)<<16)) Nadefinujeme RGB. #define colRed RGB(255, 0, 0)#define colGreen RGB(0, 255, 0)#define colBlue RGB(0, 0, 255)#define colBlack RGB(0, 0, 0) Predvolime si par barev, ktere budeme potrebovat. int exit_callback(int arg1, int arg2, void *common){ sceKernelExitGame(); return 0;}int CallbackThread(SceSize args, void *argp){ int cbid; cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL); sceKernelRegisterExitCallback(cbid); sceKernelSleepThreadCB(); return 0;}int SetupCallbacks(void){ int thid = 0; thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0); if(thid >= 0) { sceKernelStartThread(thid, 0, 0); } return thid;} Nadefinujeme callbacky. int main(){ SetupCallbacks(); initGraphics(); Otevreme main(), vyvolame callbacky a inicializujeme grafickou knihovnu. char string[256] = "Pixel Unsticker by kweensey"; Udelame si promennou string o kapacite 256ti znaku, do ktere vlozime text. while(1) { A jdeme na to.. :) fillScreenRect(colRed, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); Zaplnime cervenou barvou (colRed) ctverec od zacatku displaye po konec (0, 0 - levy horni roh a SCREEN_WIDTH, SCREEN_HEIGHT je sirka a vyska displaye, tedy opacny konec). printTextScreen(134, 133, string, colBlack); Cernou barvou vypiseme doprostred obrazovky nadefinovany text. flipScreen(); Obnovime obrazovku, aby se nase prikazy projevily. sceKernelDelayThread(500*500); A na chvili pozastavime program (kdybychom to neudelali, barvy by se stridaly neuveritelnou - pro nas naprosto nevnimatelnou - rychlosti). fillScreenRect(colGreen, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); printTextScreen(134, 133, string, colBlack); flipScreen(); sceKernelDelayThread(500*500); fillScreenRect(colBlue, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); printTextScreen(134, 133, string, colBlack); flipScreen(); sceKernelDelayThread(500*500); A uplne to same udelame s nasledujicima dvema barvama. } return 0;} Uzavreme smycku i main(). A to je vse.. :) Neni to nic extra, ale vzbudil jsem se pozde a ted, kdyz finishuju, tak je presne pulnoc a to mam jeste delat referat do skoly, takze jsem rad, ze jsem udelal vubec nejaky tutos.. :D Jeste Makefile a hotovo: TARGET = Pixel_UnstickerOBJS = main.o graphics.o framebuffer.oCFLAGS = -O2 -G0 -WallCXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rttiASFLAGS = $(CFLAGS)LIBDIR =LIBS = -lpspgu -lpng -lz -lmLDFLAGS =EXTRA_TARGETS = EBOOT.PBPPSP_EBOOT_TITLE = Pixel UnstickerPSPSDK=$(shell psp-config --pspsdk-path)include $(PSPSDK)/lib/build.mak Takze se loucim a na zitra vymyslim zase neco vetsiho.. Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
k4relB Odesláno Únor 1, 2009 Nahlásit Share Odesláno Únor 1, 2009 to nevypada jako c#.. pochybuju, ze by neco takovyho slo, jak .NET na psp ;) Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
Leny Odesláno Únor 1, 2009 Nahlásit Share Odesláno Únor 1, 2009 skvele doufam ze budes pokracovat :) a neseknes stim :) Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
kweensey Odesláno Únor 1, 2009 Autor Nahlásit Share Odesláno Únor 1, 2009 k4relB: Je to C/C++ s knihovnama pro PSP.. Leny: Jeslti o to bude zajem, tak ano.. ;) Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
Coldevil Odesláno Únor 1, 2009 Nahlásit Share Odesláno Únor 1, 2009 jop,zajem bude..pokracuj : ) Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
KubaCZ912 Odesláno Únor 1, 2009 Nahlásit Share Odesláno Únor 1, 2009 jj taky mam zajem o dalsi navody,nechces napsat neco o zapisovani do flash0?dik :D Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
mootoo Odesláno Únor 1, 2009 Nahlásit Share Odesláno Únor 1, 2009 myslim ze trochu nestastny priklad s tym while(1) , je to trosku zavadzajuce pre niekoho kto fakt netusi o co ide radsej si mohol pouzit while(koniec != 0); proste ze to co je v zatvorke je budto pravda vtedy sa vykona loop alebo nie ,tj 0 a loop sa preskoci , v tvojom pripade vznika nekonecny loop ktory musis ukoncit zvnutra, while(1) bude vzdy pravda. @KUBA : Zapisovanie do flash0 je to iste ako pisat na MS akurat musis otvorit inezariadenie. Ak chapes sled prikazov ako to funguje nebude to preteba problem.Tutorial najdes cez google ;). Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
kweensey Odesláno Únor 1, 2009 Autor Nahlásit Share Odesláno Únor 1, 2009 mootoo: Ano, mas pravdu. Ale stejne se vetsinou ukoncuje hra pres [home] -> Yes (popr. interne pomoci sceKernelExitGame()) a ne prirozenym dokoncenim programu a v tom pripade je jedno, jestli ten loop bude s nebo bez vyhlidky na prirozene dokonceni.. ;) Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
mootoo Odesláno Únor 1, 2009 Nahlásit Share Odesláno Únor 1, 2009 To je pravda ,mne islo len o to aby nemali problem pri zlozitejsich zdrojakoch pri takomto niecom to nieje problem . Drzim palce a hodne elanu inak ;) Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
Nil3E Odesláno Únor 2, 2009 Nahlásit Share Odesláno Únor 2, 2009 Super,taky jsem hodlal aktualizovat tutorialy LUA jelikož myschoo už tady moc není.Jinak super práce,zaslouží si to cestu do tutorialu ... Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
kweensey Odesláno Únor 2, 2009 Autor Nahlásit Share Odesláno Únor 2, 2009 mootoo: Jasne, diky.. ;) Nil3E: Jojo, jenom do toho! :D Za ten presun moc diky.. :) All: Je tady novy tutorial! :wohow: Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
charlestone Odesláno Únor 3, 2009 Nahlásit Share Odesláno Únor 3, 2009 je to dost drsný Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
kweensey Odesláno Únor 3, 2009 Autor Nahlásit Share Odesláno Únor 3, 2009 Takze je tady dalsi tutorial, dneska takova rychlovka.. :) Byl bych rad, kdybyste tady psali aspon komu to funguje apod, protoze pisete (resp. hlasujete), ze je o to zajem a pak ani nedate vedet, jestli jste to zkouseli atd. Takze bych byl rad, kdybych vedel, ze to nedelam zbytecne. ;) Diky. kweensey Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
Loric Odesláno Únor 4, 2009 Nahlásit Share Odesláno Únor 4, 2009 Bylo by těžké udělat v tom hru? :D Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
Leny Odesláno Únor 4, 2009 Nahlásit Share Odesláno Únor 4, 2009 tak jsem zatim zkusil vse a vse mi jelo upe bez problemu :love: Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
kweensey Odesláno Únor 4, 2009 Autor Nahlásit Share Odesláno Únor 4, 2009 Loric: Ano, bylo. :D Jelikoz v C nepracujes o objekty, tak by se pohyb musel delat pomoci zvetsovani a zmensovany promennych znazornujicich souradnice a na hodnotu tech promennych vykreslovat obrazek. TO byla ta lehci cast. Ale kolize by se musely delat pomoci porovnavani souradnic jednoho a druheho objektu a kdybys chtel vice stejnych objektu, tak by to bylo jeste slozitejsi.. ;) Treba to jde i jednoduseji, ale ja vim jenom o tomto. Mozna za par mesicu se k nejake jednodussi hre dostanu a udelam tutos.. ;) Leny: Super, a chapes vse, co delas? :) Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
Anonymous_ Odesláno Únor 4, 2009 Nahlásit Share Odesláno Únor 4, 2009 Bylo by těžké udělat v tom hru? :D Doporucuji se nejdrive naucit v LUA a do zacatku si nejakou jednodussi hru udelam v nem. Je to mnohem jednodussi a do zacatku ti to bude urcite bohate stacit a budes z toho mit radost taktez ;-) Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
Loric Odesláno Únor 4, 2009 Nahlásit Share Odesláno Únor 4, 2009 no ja uz mam zkusenosti s programovanim, ale ne primo c nebo lua.. jestli znas php tak to umim podle me docela dost dobre, a taky v programu game maker :D (porad ale nevim proc ten program kazdy odsuzuje, kdyz je docela dobry a daji se v nem udelat dobre veci :P ) Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
Anonymous_ Odesláno Únor 4, 2009 Nahlásit Share Odesláno Únor 4, 2009 no ja uz mam zkusenosti s programovanim, ale ne primo c nebo lua.. jestli znas php tak to umim podle me docela dost dobre, a taky v programu game maker :D (porad ale nevim proc ten program kazdy odsuzuje, kdyz je docela dobry a daji se v nem udelat dobre veci :P ) Treba protoze Game maker nema s programovanim NIC spolecneho a samotny game maker je spise takova hra.. Proto i hry v nem jsou trapne. Jeste abych PHP neznal, kdyz v nem umim programovat.. Rikas dobre, co v nem umis? Umis redakcni system? (to se vetsinou predklada jako takova vec, ze clovek umi v PHP) Nebo dokonce eshop? Udelal jsi neco takoveho? Umis praci se socketama? Udelal jsis treba vlastniho php bota? Tak? Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
mootoo Odesláno Únor 4, 2009 Nahlásit Share Odesláno Únor 4, 2009 Ta detekcia sa da urobit aj s GetPixel(); :) BTWked by si chcel fakt riesit nejaku hru ako tutorial mozno by som sa zapojil :) Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
kweensey Odesláno Únor 4, 2009 Autor Nahlásit Share Odesláno Únor 4, 2009 Loric & Anonymous_: Prosim, nespamujte mi topic.. :roll: mootoo: O tom jsem nevedel, z jake je to knihovny - graphics.h? Jinak hru bych planoval jeste za chvili, napred musi pochopit, jak to cele pracuje a co delaji. Takhle by to akorat zkopirovali, ale jak bych se do neceho takoveho poustel, napred bych se ti ozval.. ;) All: Pozdeji se tady urcite objevi tutorial na nejakou hricku teda.. :) Jinak se omlouvam, ze dneska nic nepribylo, ale mel jsem dost skoly, zitra uz bych mel jet zase jak normalne.. Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
Loric Odesláno Únor 5, 2009 Nahlásit Share Odesláno Únor 5, 2009 kdyz byste delali ty hry, tak co tak hru pro vice hracu (psp) :D Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
KubaCZ912 Odesláno Únor 6, 2009 Nahlásit Share Odesláno Únor 6, 2009 diky za dalsi tutorial a nechtel bys napsat neco s VLF Libary od D_A?:) Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
kweensey Odesláno Únor 6, 2009 Autor Nahlásit Share Odesláno Únor 6, 2009 Stahl jsem ji nedavno, takze taky jeste moc nevim, jak funguje, ale pak na ni tut kdyztak udelam.. Je u ni ale priklad, takze bys s tim nemel mit takovy problemy, ne? :) Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
Loric Odesláno Únor 8, 2009 Nahlásit Share Odesláno Únor 8, 2009 sem zkusil nainstalovat ten cygwin ale sem uplne ztraceny :D podle navodu na te anglicke strance sem se zastavil u kroku 5. kdyz sem to zkusil podle navodu od mootooa tak tam sem se dostal az nakonec, ale jak pise ze to trva 3-5 hodin ja sem to mel behem chvilky. takze ted vubec nevim co mam delat :P :( Citovat Odkaz ke komentáři Sdílet na ostatní stránky More sharing options...
Recommended Posts
Přidej se do diskuze
Můžete přidat přidat příspěvek a zaregistrovat se později. Pokud máte úcet, přihlašte se.