只要是有緣到此BLOG的閒人請投個票吧!給LINUX GAME一個機會!

2007年12月25日 星期二

SDL 感覺好象有有選單啦~~~~~

//TEST_MAIN_WINDOW_GAME source code.c

呵~好久沒放新東西啦~原因就是在用這個啦~ 選單
有一點小成果就給它放上來啦
還有幾天都在看 "Programming Linux Games" 的PDF
google一下就可以找到啦
因為source code 有點長 以經有一百多行啦~~~~ya
寫程式以經開始有過一百行的啦
如果想要可以說一聲喔~ 我知道不會有人要的哈~~

2007年12月17日 星期一

第n個 SDL WINDOW

//TEST_MAIN_WINDOW_GAME source code.c

#include "stdio.h"
#include "stdlib.h"
#include "SDL/SDL.h"
#include "SDL/SDL_image.h"

int main(void)
{
SDL_Event event;
SDL_Surface *screen;
SDL_Surface *image;
SDL_Rect n,z;
///////////////初始化SDL///////////////////////////////////
(SDL_Init(SDL_INIT_EVERYTHING));
SDL_WM_SetCaption("linux game 未來有希望了! 哈~~~~^ ^",NULL);
atexit(SDL_Quit);
screen=SDL_SetVideoMode(800, 600, 16, SDL_DOUBLEBUF | SDL_HWSURFACE);
/////////////////////////////////////////////////////////////
////////////////背圖_1/////////////////
image = IMG_Load("/home/byonk/Image/test_image.png");
if(screen == NULL){
printf("Unable to load Bitmap");
return 1;
}
//////////////㬎示image/////////////
n.x=0;
n.y=0;
n.w=screen->w;
n.h=screen->h;
z.x=0;
z.y=0;
z.w=screen->w;
z.h=screen->h;
SDL_BlitSurface(image, &n, screen, &z);
//////////////CLOSE_WINDOW////////
while(SDL_WaitEvent(&event) != 0){
////////更新image//////////////////
SDL_UpdateRect(screen, 0, 0, 0, 0);
/////////////////////////////////////
switch (event.type)
case SDL_QUIT:
exit(0);

}
}
linux game 未來有希望 一定有希望
相信我! 因該有吧! ~ ~

2007年12月15日 星期六

第三個 SDL WINDOW 有透明~

//TEST_WINDOW source code.c

#include "stdio.h"
#include "stdlib.h"
#include "SDL/SDL.h"
#include "SDL/SDL_image.h"

int main(void)
{
SDL_Surface *screen;
SDL_Surface *image;
SDL_Surface *image2;
SDL_Rect src, dest;
//////////////開始///////////////////////////////
if(SDL_Init(SDL_INIT_VIDEO)!=0)
return 0;
SDL_WM_SetCaption ("TEST_WINDOW",NULL);
atexit(SDL_Quit);

screen=SDL_SetVideoMode(640, 480, 16, SDL_HWSURFACE | SDL_DOUBLEBUF);
if(screen == NULL)
return 0;

image = IMG_Load("/home/byonk/Image/black.bmp");
if (image == NULL) {
printf("Unable to load bitmap.\n");
return 1;
}
image2 = IMG_Load("/home/byonk/Image/green.bmp");
if(image2 == NULL){
printf("Unable to load bitmap.\n");
return 1;
}
/* 背black*/
src.x = 0;
src.y = 0;
dest.w = image->w;
dest.h = image->h;
dest.x = 0;
dest.y = 0;
dest.w = image->w;
dest.h = image->h;
SDL_BlitSurface(image, &src, screen, &dest);
/*前green*/
src.x=0;
src.y=0;
src.w = image2->w;
src.h = image2->h;
dest.x=30;
dest.x=90;
src.w = image2->w;
src.h = image2->h;

SDL_BlitSurface(image2, &src, screen, &dest);

/////////////////////////////////////////////////////////
///////////粉///紅色 是看不到的 碼是 255,0,255///////////////
/////////////////////////////////////////////////////////
Uint32 colorkey = SDL_MapRGB(image2->format, 255, 0, 255);
////////////////////////////////////////////////////////
/////SDL_SetAlpha(surface, flage, alpha);////////
////////////////alpha透明度//////////////////////////
//////////////////0到255////////////////////////////////
///////////////////////////////////////////////////////
SDL_SetAlpha(image2, SDL_SRCALPHA, 100);
src.x = 0;
src.y = 0;
src.w = image2->w;
src.h = image2->h;
dest.x = screen->w - image->w - 30;
dest.y = 90;
dest.w = image2->w;
dest.h = image2->h;
SDL_BlitSurface(image2, &src, screen, &dest);

SDL_UpdateRect(screen, 0, 0, 0, 0);
SDL_Delay(10000);
}

//和第二個沒什麽差 只是改了 有透明度~~哈

2007年12月14日 星期五

第二個  SDL WINDOW 哈有圖了

//TEST_WINDOW2 source code.c

#include "stdio.h"
#include "stdlib.h"
#include "SDL/SDL.h"
#include "SDL/SDL_image.h"

int main(void)
{
SDL_Surface *screen;
SDL_Surface *image;
SDL_Surface *image2;
SDL_Rect src, dest;
//////////////開始///////////////////////////////
if(SDL_Init(SDL_INIT_VIDEO)!=0)
return 0;
SDL_WM_SetCaption ("TEST_WINDOW",NULL);
atexit(SDL_Quit);

screen=SDL_SetVideoMode(640, 480, 16, SDL_HWSURFACE | SDL_DOUBLEBUF);
if(screen == NULL)
return 0;

image = IMG_Load("/home/byonk/Image/black.bmp");
if (image == NULL) {
printf("Unable to load bitmap.\n");
return 1;
}
image2 = IMG_Load("/home/byonk/Image/green.bmp");
if(image2 == NULL){
printf("Unable to load bitmap.\n");
return 1;
}
/* 背black*/
src.x = 0;
src.y = 0;
dest.w = image->w;
dest.h = image->h;
dest.x = 0;
dest.y = 0;
dest.w = image->w;
dest.h = image->h;
SDL_BlitSurface(image, &src, screen, &dest);
/*前green*/
src.x=0;
src.y=0;
src.w = image2->w;
src.h = image2->h;
dest.x=30;
dest.x=90;
src.w = image2->w;
src.h = image2->h;

SDL_BlitSurface(image2, &src, screen, &dest);

/////////////////////////////////////////////////////////
///////////粉///紅色 是看不到的 碼是 255,0,255///////////////
/////////////////////////////////////////////////////////
Uint32 colorkey = SDL_MapRGB(image->format, 255, 0, 255);

SDL_SetColorKey(image2, SDL_SRCCOLORKEY, colorkey);
src.x = 0;
src.y = 0;
src.w = image2->w;
src.h = image2->h;
dest.x = screen->w - image->w - 30;
dest.y = 90;
dest.w = image2->w;
dest.h = image2->h;
SDL_BlitSurface(image2, &src, screen, &dest);



SDL_UpdateRect(screen, 0, 0, 0, 0);

SDL_Delay(10000);

}
\\和圖不太一樣 不過還是有效果

2007年12月13日 星期四

第一個 SDL Window

//TEST_WINDOW source code.c

#include "stdio.h"
#include "stdlib.h"
#include "SDL/SDL.h"
#include "SDL/SDL_image.h"

int main(void)
{
Uint16 *link;

SDL_Surface *screen;
SDL_Surface *image;

/*初始化 SDL*/
if(SDL_Init(SDL_INIT_VIDEO)!=0)
return 0;

atexit(SDL_Quit);

/*400*320 可改 */
screen=SDL_SetVideoMode(400, 320, 16, SDL_HWSURFACE | SDL_DOUBLEBUF);
if(screen == NULL)
return 0;

/*WINDOW_NAME*/
SDL_WM_SetCaption ("TEST_WINDOW", NULL);


SDL_UpdateRect(screen, 0, 0, 0, 0);
/*5秒後 close*/
SDL_Delay(5000);

}
這些 code 是從 "Programming Linux Games" 這本看來的
有些是去 google的~
看看吧~

2007年12月9日 星期日

太閒~寫的

//test_2 source code.c


#include "stdio.h"

int main(void)
{
int paper=130;
int takes;
printf("現在paper有%d張\n",paper);
printf("a.拿1張 b.拿5張\n");
printf("c.拿10張\n");


while((takes=getchar())!= '#' )// 按 "#" 算all
switch(takes)
{
case 'a': printf("少1張\n");paper--;
break;
case 'b':printf("少5張\n");paper-=5;
break;
case 'c':printf("少10張\n");paper-=10;
break;
}
printf("%d",paper);

return 0;
}

SDL 就決定是您了~

SDL(Simple DirectMedia Layer)是一套開放原始碼的跨平臺多媒體開發函式庫,使用C語言寫成。SDL提供了數種控制圖像、聲音、輸出入的函式,讓開發者只要用相同或是相似的程式碼就可以開發出跨多個平臺(Linux、Windows、Mac OS X等)的應用軟體。目前SDL多用於開發遊戲、模擬器、媒體播放器等多媒體應用領域。
 
 上面去Wiki找到的一些,想看完整請自己去google吧~
這幾天,阿~終於把 C Primer Plus 5 中文精華 看完了
從不知道,要從黑白到有window,C要有外面圖形庫才能有window,
阿又學到一點點了~
所以呢,就跑去找了好久好久,找到了幾個比較有名的圖形庫
OpenGL 、 SDL 、 Allegro 找到了這三個
都跑去官方看了好久又用google找了好久 這三個的一些文件
到最後 就決定 用 SDL了 主要原因呢 是因為看到一本
全世界可能也只有出這麽一本吧,還是原文書,可能也不會有中文本吧,
”Programming Linux Games”這本就是為了linux才出的書阿~~~~~
裡面有教到SDL 所以為了linux game的未來,一定要去把它買下來。