Přejít na obsah
  • Vytvořit účet

Naprogramovani homebrew


pinkpiggy

Recommended Posts

  • Odpovědi 61
  • Vytvořeno
  • Poslední odpověď

Nejvíc přispívající

Nejvíce příspěvků v jednom dni

Nejvíc přispívající

jj videl jsem na youtube akorat jsem nevedel jestli si to delal ty..prosim te mohl bys mi rict jestli sytaxe programu je uplne stejna??nebo tam jsou nejake zvlastni programy..sice v lua stejnak neumim ale zajima me to..nevis jestli na to PSP se muzou delat homebrew treba v C#??

Odkaz ke komentáři
Sdílet na ostatní stránky

jo ja ... tady je takovy bludiště (to sem vždycky ukazoval misto hello world, nejen na PSP ale aji na PC)

http://www.zdoom.ic.cz/bludiste.rar - kdyby to najednou nejelo tak počkejte, posledi dobou IC.CZ blbne

pravě pracuju na nove hře WideMind, jedna se o totalni změnu zdrojovyho kodu PSP DOOMa ... no samozdřejmě aji totalni změnu obrazku zbrani atd... (a přiběh)

a tady zdrojak bludiště:

#include <pspkernel.h>
#include <pspdebug.h>
#include <pspdisplay.h>
#include <pspctrl.h>
#include <stdio.h> 
#include <stdlib.h>
PSP_MODULE_INFO("Bludiste by kgsws", 0, 1, 1);
#define printf pspDebugScreenPrintf
#define charto pspDebugScreenPutChar
#define color pspDebugScreenSetTextColor
#define backcolor pspDebugScreenSetBackColor
#define Ceklic 1
#define Zeklic 2
#define Moklic 4
#define Zlklic 8
#define Azklic 16
#define Puklic 32
FILE *soub;
char ch;
char levels[32];
int x,y,zmena,zx,zy,konec,i,mx,my,klice,level;
char pole[]="********           *"
           "    Testovaci      *"
           "      #Mapa        *"
           "**   # #           *"
           "    #  #           *"
           "   #  *            *"
           "   #   *        *  *"
           "    *%%*       *%* *"
           "*****%%*********%***"
           "*               A  *"
           "*              A2A *"
           "*  +           BA  *"
           "*             B3B  *"
           "*             CB   *"
           "*            C4C   *"
           "*            DC    *"
           "*****%%     D5D   F*"
           "#     %     ED   F *"
           "#1    *    E6E  F G*"
           "######**************";
SceCtrlData pad;
/* Exit callback */
int exit_callback(int arg1, int arg2, void *common) {
         konec=3;
         return 0;
}

/* Callback thread */
int CallbackThread(SceSize args, void *argp) {
         int cbid;

         cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
         sceKernelRegisterExitCallback(cbid);

         sceKernelSleepThreadCB();

         return 0;
}

/* Sets up the callback thread and returns its thread id */
int SetupCallbacks(void) {
         int thid = 0;

         thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
         if(thid >= 0) {
                   sceKernelStartThread(thid, 0, 0);
         }

         return thid;
}

int main() {
x=1;
zmena=1;
level=1;
SetupCallbacks();
pspDebugScreenInit();
pspDebugScreenSetXY(1,0);
color(0x00FFFF);
backcolor(0x0088FF);
printf("                          Bludiste by kgsws                       ");
color(0xFFFFFF);
backcolor(0x000000);
pspDebugScreenSetXY(1,2);
printf("Level: %d",level);
while(konec==0){
sceCtrlReadBufferPositive(&pad, 1);
if(pad.Buttons & PSP_CTRL_DOWN) {
x++;
zmena=1;
}
if(pad.Buttons & PSP_CTRL_UP) {
x--;
zmena=1;
}
if(pad.Buttons & PSP_CTRL_CROSS) {
if(x==1) {
// ----------------------------------------------------------- HRA {
sprintf(levels,"level%d.dat",level);
soub = fopen(levels, "rb");
if(soub != NULL) {
x=0;
while(x!=20*20-1) {
ch=fgetc(soub);
pole[x]=ch;
x++;
}
fclose(soub);
x=1;
y=1;
zmena=1;
konec=0;
my=1;
pspDebugScreenClear();
color(0x008800);
backcolor(0x005555);
pspDebugScreenSetXY(1,0);
printf("                           Level:                                ");
pspDebugScreenSetXY(35,0);
printf("%d",level);
backcolor(0x000000);
color(0xFFFFFF);
pspDebugScreenSetXY(2,3);
printf("Klice:");
while(my!=21){
mx=1;
while(mx!=21){
if(pole[(mx-1)+(my-1)*20]=='+'){
 x=mx*8+20*8;
 y=my*8+8*8;
 }else if(pole[(mx-1)+(my-1)*20]=='*'){
 charto(mx*8+20*8,my*8+8*8,0xFFFFFF,219);
 }else if(pole[(mx-1)+(my-1)*20]=='A'){
 charto(mx*8+20*8,my*8+8*8,0x000088,219);
 }else if(pole[(mx-1)+(my-1)*20]=='B'){
 charto(mx*8+20*8,my*8+8*8,0x008800,219);
 }else if(pole[(mx-1)+(my-1)*20]=='C'){
 charto(mx*8+20*8,my*8+8*8,0x880000,219);
 }else if(pole[(mx-1)+(my-1)*20]=='D'){
 charto(mx*8+20*8,my*8+8*8,0x008888,219);
 }else if(pole[(mx-1)+(my-1)*20]=='E'){
 charto(mx*8+20*8,my*8+8*8,0x888800,219);
 }else if(pole[(mx-1)+(my-1)*20]=='F'){
 charto(mx*8+20*8,my*8+8*8,0x880088,219);
 }else if(pole[(mx-1)+(my-1)*20]=='1'){
 charto(mx*8+20*8,my*8+8*8,0x0000FF,'*');
 }else if(pole[(mx-1)+(my-1)*20]=='2'){
 charto(mx*8+20*8,my*8+8*8,0x00FF00,'*');
 }else if(pole[(mx-1)+(my-1)*20]=='3'){
 charto(mx*8+20*8,my*8+8*8,0xFF0000,'*');
 }else if(pole[(mx-1)+(my-1)*20]=='4'){
 charto(mx*8+20*8,my*8+8*8,0x00FFFF,'*');
 }else if(pole[(mx-1)+(my-1)*20]=='5'){
 charto(mx*8+20*8,my*8+8*8,0xFFFF00,'*');
 }else if(pole[(mx-1)+(my-1)*20]=='6'){
 charto(mx*8+20*8,my*8+8*8,0xFF00FF,'*');
 }else if(pole[(mx-1)+(my-1)*20]=='%'){
 charto(mx*8+20*8,my*8+8*8,0xFFFFFF,219);
 }else if(pole[(mx-1)+(my-1)*20]=='#'){
 }else if(pole[(mx-1)+(my-1)*20]=='G'){
 charto(mx*8+20*8,my*8+8*8,0x0088FF,219);
 }else charto(mx*8+20*8,my*8+8*8,0xFFFFFF,pole[(mx-1)+(my-1)*20]);
mx++;
}
my++;
}
zx=1;
zy=30;
klice=0;
while(konec==0) {
sceCtrlReadBufferPositive(&pad, 1);
if(pad.Buttons & PSP_CTRL_START) {
konec=1;
}
if(pad.Buttons & PSP_CTRL_UP) {
zy=y;
zx=x;
y=y-8;
zmena=1;
}
if(pad.Buttons & PSP_CTRL_DOWN) {
zy=y;
zx=x;
y=y+8;
zmena=1;
}
if(pad.Buttons & PSP_CTRL_LEFT) {
zy=y;
zx=x;
x=x-8;
zmena=1;
}
if(pad.Buttons & PSP_CTRL_RIGHT) {
zy=y;
zx=x;
x=x+8;
zmena=1;
}
if(zmena==1){
zmena=0;
if(x<1) x=1;
if(y<1) y=1;
if(x>473) x=473;
if(y>265) y=265;
mx=(x-20*8)/8;
my=(y-8*8)/8;
if(pole[(mx-1)+(my-1)*20]=='*'){
x=zx;
y=zy;
}
if(pole[(mx-1)+(my-1)*20]=='A'){
if(klice & Ceklic) {
pole[(mx-1)+(my-1)*20]=' ';
} else {
x=zx;
y=zy;
}
}
if(pole[(mx-1)+(my-1)*20]=='B'){
if(klice & Zeklic) {
pole[(mx-1)+(my-1)*20]=' ';
} else {
x=zx;
y=zy;
}
}
if(pole[(mx-1)+(my-1)*20]=='C'){
if(klice & Moklic) {
pole[(mx-1)+(my-1)*20]=' ';
} else {
x=zx;
y=zy;
}
}
if(pole[(mx-1)+(my-1)*20]=='D'){
if(klice & Zlklic) {
pole[(mx-1)+(my-1)*20]=' ';
} else {
x=zx;
y=zy;
}
}
if(pole[(mx-1)+(my-1)*20]=='E'){
if(klice & Azklic) {
pole[(mx-1)+(my-1)*20]=' ';
} else {
x=zx;
y=zy;
}
}
if(pole[(mx-1)+(my-1)*20]=='F'){
if(klice & Puklic) {
pole[(mx-1)+(my-1)*20]=' ';
} else {
x=zx;
y=zy;
}
}
if(pole[(mx-1)+(my-1)*20]=='1'){
pole[(mx-1)+(my-1)*20]=' ';
pspDebugScreenSetXY(9,3);
color(0x0000FF);
printf("*");
klice=klice+1;
}
if(pole[(mx-1)+(my-1)*20]=='2'){
pole[(mx-1)+(my-1)*20]=' ';
pspDebugScreenSetXY(11,3);
color(0x00FF00);
printf("*");
klice=klice+2;
}
if(pole[(mx-1)+(my-1)*20]=='3'){
pole[(mx-1)+(my-1)*20]=' ';
pspDebugScreenSetXY(13,3);
color(0xFF0000);
printf("*");
klice=klice+4;
}
if(pole[(mx-1)+(my-1)*20]=='4'){
pole[(mx-1)+(my-1)*20]=' ';
pspDebugScreenSetXY(15,3);
color(0x00FFFF);
printf("*");
klice=klice+8;
}
if(pole[(mx-1)+(my-1)*20]=='5'){
pole[(mx-1)+(my-1)*20]=' ';
pspDebugScreenSetXY(17,3);
color(0xFFFF00);
printf("*");
klice=klice+16;
}
if(pole[(mx-1)+(my-1)*20]=='6'){
pole[(mx-1)+(my-1)*20]=' ';
pspDebugScreenSetXY(19,3);
color(0xFF00FF);
printf("*");
klice=klice+32;
}
if(pole[(mx-1)+(my-1)*20]=='#'){
charto(x,y,0xFFFFFF,219);
x=zx;
y=zy;
pole[(mx-1)+(my-1)*20]='*';
}
if(pole[(mx-1)+(my-1)*20]=='G'){
konec=2;
level++;
}
charto(zx,zy,0x000000,32);
charto(x,y,0x0088FF,1);
for(i=0; i<10; i++) {
sceDisplayWaitVblankStart();
}
}
}
pspDebugScreenClear();
pspDebugScreenSetXY(1,0);
color(0x00FFFF);
backcolor(0x0088FF);
printf("                          Bludiste by kgsws                       ");
color(0xFFFFFF);
backcolor(0x000000);
pspDebugScreenSetXY(1,2);
printf("Level: %d",level);
if(konec!=3) konec=0;
zmena=1;
x=1;
} else {
pspDebugScreenSetXY(20,20);
color(0x0000FF);
printf("soubor level%d.dat nenalezen!",level);
color(0xFFFFFF);
}
// ----------------------------------------------------------- HRA }
}
if(x==2) 
{
pspDebugScreenSetXY(25,20);
soub = fopen("save.dat", "rb");
if(soub != NULL){
ch=fgetc(soub);
level = ch;
if(level!=-1){
zmena=1;
color(0x00FF00);
printf("   Nacteno ...");
color(0xFFFFFF);
pspDebugScreenSetXY(1,2);
printf("Level: %d",level);
} else {
color(0x0000FF);
printf("Chyba v souboru!         ");
color(0xFFFFFF);
}
fclose(soub);
} else {
color(0x0000FF);
printf("Nic neni ulozeno!        ");
color(0xFFFFFF);
}
}
if(x==3) {
pspDebugScreenSetXY(25,20);
soub = fopen("save.dat", "wb");
if(soub != NULL){
fputc(level,soub);
fclose(soub);
color(0x00FF00);
printf("       Ulozeno ...       ");
color(0xFFFFFF);
} else {
color(0x0000FF);
printf("Nelze vytvorit soubor!   ");
color(0xFFFFFF);
}
}
if(x==4) konec=3;
}
if(zmena==1){
if(x<1) x=1;
if(x>4) x=4;
pspDebugScreenSetXY(29,10);
if(x==1){
color(0x0088FF);
}else{
color(0x005599);
}
if(level==1){
printf(" Nova hra ");
} else {
printf("Pokracovat");
}
pspDebugScreenSetXY(29,11);
if(x==2){
color(0x0088FF);
}else{
color(0x005599);
}
printf("  Nacist  ");
pspDebugScreenSetXY(29,12);
if(x==3){
color(0x0088FF);
}else{
color(0x005599);
}
printf("  Ulozit  ");
pspDebugScreenSetXY(29,13);
if(x==4){
color(0x0088FF);
}else{
color(0x005599);
}
printf("  Konec   ");
for(i=0; i<5; i++) {
sceDisplayWaitVblankStart();
}
}
}
color(0x00FFFF);
backcolor(0x000000);
pspDebugScreenClear();
pspDebugScreenSetXY(29,15);
printf("ukoncovani");
sceKernelExitGame();
return 0;
}

jo a klidně si mužete udělat novy kola ... stači přidat dalši level-soubory no a obsah neni těžky zjistit ;) (počet levelu neomezen, vždy pole 20x20)

Odkaz ke komentáři
Sdílet na ostatní stránky

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.

Návštěvník
Odpovědět na toto téma...

×   Vložili jste obsah s formátováním..   Odstranit formátování

  Only 75 emoji are allowed.

×   Váš odkaz byl automaticky načten a vložen..   Zobrazit jako odkaz

×   Váš předchozí obsah byl obnoven.   Vymazat obsah

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Vytvořit...

Důležitá informace

Tento web používá k poskytování služeb a k analýze návštěvnosti soubory cookies. Více informací naleznete v Zásady ochrany osobních údajů a Pravidla webu