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

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í

Odesláno

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)

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