tr-demoscene

the scene => coding => pc => Konuyu başlatan: Decipher - 09.07.2008 04:39:34

Başlık: Krysp by Decipher/Resident
Gönderen: Decipher - 09.07.2008 04:39:34
Selam, baktim gayet guzel kaptirmis gidiyoruz, ufak ufak hareketlenme de var. Biraz tuz biber de ben ekleyeyim dedim yemege, buyrun siftah benden. Kucuk bir productimsi ama bunu oncul dalga olarak yorumlamaniz daha sonraki muhtemel sok dalgalarini daha kolay atlatmaniza fazlasiyla yardimci olacaktir. Arkadaslarimla takildigim ufak bir forumda 80 x 25, blackbox (ya da codeblock) compo'ya bu gece icinde kodladigim 80 x 17 urun ve kodu asagidadir:

Exe'ye Link (http://decipher.untergrund.net/Krysp.zip)
Kod: [Seç]

#include<SDL/SDL.h>/*! <~~~~~~~~~~~~~~ Krysp :*: by Decipher ~~~~~~~~~~~~~~> !*/
SDL_Surface*e;SDL_Rect f;SDL_Rect k={0,0,7,7};int p(int x,int y){return*((int*)e
->pixels+x+y*480)==874069;}void g(){f.x=f.y=1,f.w=f.h=7;SDL_FillRect(e,0,5824849
);for(;f.x<480;f.x+=8){for(;f.y<480;f.y+=8)SDL_FillRect(e,&f,874069);f.y=1;}f.x=
(rand()%60)*8+1;srand(time(0));f.y=(rand()%60)*8+1;int h=0;int i=rand()%2399;
while(h<2400){switch(rand()%4){case 0:if(f.y>9){f.y-=8;break;}continue;case 1:if
(f.x<465){f.x+=8;break;}continue;case 2:if(f.y<465){f.y+=8;break;}continue;case
3:if(f.x>9)f.x-=8;else continue;}if(h==i)k.x=f.x,k.y=f.y;SDL_FillRect(e,&f,
5824849);++h;}SDL_FillRect(e,&k,255);}int main(int a,char**b){SDL_Event d;char z
[99]=&quot;Krysp &quot;;SDL_Init(32);SDL_Surface*c=SDL_SetVideoMode(480,480,32,0);e=
SDL_CreateRGBSurface(0,480,480,32,0,0,0,0);int t=SDL_GetTicks();g();while(1){if(
SDL_PollEvent(&d)){if(d.type==12)break;else{int x=d.button.x;int y=d.button.y;if
(d.button.button==1&&x<f.x+13&&x>f.x-5&&y<f.y+13&&y>f.y-5){x=((x>>3)<<3)+1;y=((y
>>3)<<3)+1;if(!p(x+2,y+2)){f.x=x;f.y=y;if(f.x==k.x&&f.y==k.y){t=SDL_GetTicks();g
();}}}}}SDL_BlitSurface(e,0,c,0);SDL_FillRect(c,&f,0);int u=SDL_GetTicks()-t;
itoa(20-u/1000,z+6,10);SDL_WM_SetCaption(z,z);if(u>20000)break;SDL_Flip(c);
SDL_Delay(20);}SDL_FreeSurface(e);SDL_Quit();return 0;}
/* You are the black dot, who needs to eat that blue dot in 20 seconds. Controls
 * are fairly simple : click on the black dot and drag. The game never ends!
 * There's a continuous generation as you eat the blue dot. I guess this is also
 * the only game submitted 'til now that features a window caption & a counter!
 *                          OH, FORGOT TO TELL!
 *                       IT IS GOOD TO HAVE SPACE!
 ******************************************************************************/


Dedigim gibi, kucuk mucuk, ufak da olsa bir sey. Hicbisiden cok daha iyidir.

[edit]asagida belirttigim degiskligi yaptim.
[edit2]bugfix.
Başlık: Krysp by Decipher/Resident
Gönderen: nightlord - 09.07.2008 08:38:03
Vaay afferim Decifer, hos bir urun olmus ne guzel :)
 
Yalniz formatlanmamis kodu okuyayim derken afakanlar basti. Iyice coding convention manyagi olmusum haberim yok :D
Başlık: Krysp by Decipher/Resident
Gönderen: Decipher - 09.07.2008 10:14:40
Sagol nightlord, ben de Hungarian notation kullanan biri olarak kodu yazarken mehter takimi gibi iki ileri bir geri gidip durdum. O variable isimleri nasil nefret edilesi bisi, bi halta benzemeyince :)

[edit]
Gece gece yazinca kodu, ufak bir nokta gozumden kacmis, bir kac byte daha kazanacagim ufak bir degisiklik yaptim.
Başlık: Krysp by Decipher/Resident
Gönderen: tesla - 09.07.2008 11:18:54
80X25 compo ha? hmm. 80x17 'ye göre baya güzel bir oyun olmuş, eline sağlık Deciphercan.

Koda bakmadım ama bu mavi ile siyah'ın arasındaki yol hiç bir zaman çıkmaza girmiyor, güzel!  

Ben olsam nası yapardım diye düşündüm, hmm aklıma: Maviyi sabit tutup, siyahı mavinin yanından başlatıp ~200 adım random olarak etrafta dolaştırırdım sonra oyun başlayınca aşağı yukarı senin oyundaki gibi bir harita çıkar karşıma, çıkar değil mi :)  

not: Ben haberlerini alıyom senin, siz Spritus ile bi işler çeviriyonuz ama napıyonuz olum? :)
Başlık: Krysp by Decipher/Resident
Gönderen: Decipher - 09.07.2008 12:00:27
vay tesla bile cevap atti ya, tamam artik olsem de gam yemem. yok olm bisi karistirdigimiz, biz kiiim release yapmak kim di mi ama? ;)

o degil de, senin dediginde siyah mavinin ustune de cikabilir o yuzden oyle bir yol izledim, onu onlemek icin yapilacak if checkler yerine bir rect daha ekleyip randomize etmek cok daha az yer kapliyor (codewise, literally, opuldun). bunun disinda, sen isvec'de misin nerdesin olm sorup sorusturuyorum kimsenin bisi dedigi yok? stockholm meeting yapalim, asm'ye de geliyosun tabii?
Başlık: Krysp by Decipher/Resident
Gönderen: Ragnor - 09.07.2008 12:27:41
Eline sağlık Decipher. Seni yeniden aktif görmek çok güzel.

ılk olarak derlemek bayağı zamanımı aldı, meğerse itoa standart bir c fonksiyonu değilmiş, sadece bazı derleyiciler destekliyormuş ve gcc tahmin edebileceğiniz gibi desteklemiyomuş, kodun tepesine ekleyince itoa fonksiyonunu bu durumda çözüldü.

Sonra olayın bi oyun olduğunu kavramam zaman aldı, eve açıklama satırlarını okumalıyım :). Laptop touchpad'i ile kutu sürüklemekte oldukça eziyetli idi ama herhalde mouse ile daha kolay olur.

O değilde güzel oyun olmuş ya, minik tatlı bişi. Senden gelecek diğer prodları merakla bekliyorum :)
Başlık: Krysp by Decipher/Resident
Gönderen: Decipher - 09.07.2008 13:04:17
sagol Ragnor,

kusura bakmayin bu arada guzin ablanin kosesi gibi soru cevap tadinda oldu bu forum basligi ama kodla ilgili sorular geldikce cevaplayasim geliyor.

su itoa ile ilgili kisim, eger C89 standardini kullanarak derlersen implicit declaration'a cevirmeli GCC. MinGW ile derlemistim kodu ilk andan beri ve gayet guzel calisiyor implicit declaration. gicikligina bir warning sokuyor gozune ama onemli degil :)
Başlık: Krysp by Decipher/Resident
Gönderen: skate - 10.07.2008 00:29:39
Visual Studio 6'da zahmetsizce derlendi. Sadece time() fonksiyonundan hoşlanmadı ve Code Generation'dan Debug Multithreaded DLL seçmem gerekti o kadar.
 
Oyunu çok beğendim. Eskiden yaptığım Javascript bir oyunu hatırlattı bana.
 
http://www.akaydin.com/javascript/littlegame2.htm
Başlık: Krysp by Decipher/Resident
Gönderen: tesla - 10.07.2008 12:29:46
Alıntı yapılan: skate;18448
Visual Studio 6'da zahmetsizce derlendi. Sadece time() fonksiyonundan hoşlanmadı ve Code Generation'dan Debug Multithreaded DLL seçmem gerekti o kadar.
 
Oyunu çok beğendim. Eskiden yaptığım Javascript bir oyunu hatırlattı bana.
 
http://www.akaydin.com/javascript/littlegame2.htm

Ya soyle stres oyunlar yapmayin... bu arada ilk bitiriste skorum 75 :P
Başlık: Krysp by Decipher/Resident
Gönderen: skate - 10.07.2008 13:57:20
çok hızlı olursan 0 (sıfır) bile yapabilirsin. en azından 1 garanti. biraz düşün bulacaksın :D
Başlık: Krysp by Decipher/Resident
Gönderen: Decipher - 10.07.2008 14:27:00
Skate senin oyuna anca bakabildim, cok guzelmmis cidden :), ilk basta benim de aklimda top-down maze slider vardi ama sonra post ettigime cevirdim.

Bu arada:
(http://img144.imageshack.us/img144/824/booci0.png)
Dis sinirlarin kontrolu iyi olurdu hani. ;)
Başlık: Krysp by Decipher/Resident
Gönderen: skate - 10.07.2008 15:00:58
Ben 0 yapabiliyorum yani rekor bende. :)