資源簡介
SDL俄羅斯方塊,自己做的,6410開發板完美運行,內含SDLTetris-mouse文件夾和SDLTetris-ts文件夾,SDLTetris-mouse是鼠標控制的,SDLTetris-ts是觸摸控制的,另附實驗報告冊,包括需求分析、系統設計等。

代碼片段和文件信息
#include?“SDL.h“
#include?“SDL_image.h“
#include?“SDL_mixer.h“
#include?“SDL_ttf.h“
#include?
#include?
SDL_Surface?*screen=NULL*bg=NULL*pic=NULL*message=NULL*up=NULL*left=NULL*right=NULL
*se=NULL*art=NULL*arting=NULL*op=NULL*ex=NULL*x=NULL*m=NULL*reart=NULL*re=NULL; //screen屏幕指針,bg背景圖片指針,pic磚塊,message字體信息
//Mix_Music?*music?=?NULL;
//Mix_Chunk?*down=NULL*turn=NULL*dele=NULL*over?=?NULL;
TTF_Font?*font?=?NULL;
SDL_Color?textcolor1?=?{4524226}textcolor2={2553232}textcolor3={23318236};
const?int?width?=?640;
const?int?height?=?480;
const?int?picture?=?30;
const?int?BPP?=?16;
int?moving??=?0; //monving表示方塊處于運動狀態。
SDL_Rect?clip; //整個程序隨時用的矩形
int?map[18][10]={0}; //整個數組
int?scorelevel;
int?delay; //初始化難度
int?mousex=0;
int?mousey=0;
typedef?struct?square?
{
int?x[4];
int?y[4];
int?num;
int?status;
}position; //方塊的信息,num是方塊的編號,status表示處于兩種狀態之一,即水平與豎直狀態。
position?where;
int?col1col2row1row2; //表示方塊所處與的行與列
int?des[3]; //用來表示每個坐標與標準坐標(x[3]y[3])之間的水平或豎直距離
int?nextnow; //下一個方塊的num與現在的num
void?apply_bg(int?xint?yint?wint?h);
void?apply_surface(int?xint?ySDL_Surface?*fromSDL_Surface?*toSDL_Rect?*clip);
void?clean();
void?clean_pic();
void?del(int?row);
int?go_down(int?sound);
int?go_left_right(int?i);
void?go_up();
void?go_up_one();
void?go_up_two();
int?init();
void?init_pic(int?xint?yint?num);
void?initGame();
void?judge();
int?load_files();
SDL_Surface?*load_image(char?*str);
void?pause(int?x);
void?save();
void?show_pic();
void?print(int?xint?ychar?*strint?iint?size);?//在(xy)坐標打印信息;
void?show_score();
int?fail();
int?go_somewhere(int?xint?y);
int?go_to(int?xint?yint?(*p)(intint));
void?button(int?x1int?y1int?x2int?y2SDL_Surface?*picture);
int?main(int?argcchar?*argv[])
{
int?t1?=?0;
SDL_Event?event;
int?quit=0;
int?flag=0;
if(!init())
return?1;
if(!load_files())
return?1;
initGame();
srand((unsigned)time(NULL));
now=rand()%7+1;
while(!quit)
{
if(!moving) //如果不在運動狀態,則需要預測下一個方塊及產生上一次預測的方塊
{
next=rand()%7+1;
where.num=next;
apply_bg(12*picture1*picture4*picture4*picture);
init_pic(91where.num);
show_pic();
where.num=now;
init_pic(00where.num);
now=next;
moving?=?1;
show_pic();
}
SDL_Delay(delay);
while(SDL_PollEvent(&event))
{
switch(event.type)
{
case?SDL_MOUSEBUTTONDOWN:
{
mousex=event.button.x;
mousey=event.button.y;
if(mousex>=560&&mousex<=590&&mousey>=110&&mousey<=140) //變形
{
go_up();
t1?=?1;
}
if(mousex>=520&&mousex<=550&&mousey>=150&&mousey<=180) //方塊左移
go_to(-10go_somewhere);
if(mousex>=560&&mousex<=590&&mousey>=150&&mousey<=180) //加速下落
go_to(01go_somewhere);
if(mousex>=600&&mousex<=630&&mousey>=150&&mousey<=180) //方塊右移
go_to(10go_somewhere);
if(mousex>=560&&mousex<=590&&mousey>=190&&mousey<=220) //暫停游戲
{
button(5601905902
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-01-04?14:34??SDL俄羅斯方塊\
?????目錄???????????0??2012-12-06?17:26??SDL俄羅斯方塊\SDLTetris-mouse\
?????目錄???????????0??2012-12-06?17:26??SDL俄羅斯方塊\SDLTetris-mouse\fonts\
?????文件???????45260??2010-07-13?13:29??SDL俄羅斯方塊\SDLTetris-mouse\fonts\arlrdbd.ttf
?????文件???????28360??2000-01-09?18:32??SDL俄羅斯方塊\SDLTetris-mouse\fonts\Elements.ttf
?????文件?????4009504??1999-03-22?00:32??SDL俄羅斯方塊\SDLTetris-mouse\fonts\kaiti.ttf
?????文件???????20024??2012-05-07?09:01??SDL俄羅斯方塊\SDLTetris-mouse\fonts\Michaelmas.ttf
?????目錄???????????0??2012-12-06?17:26??SDL俄羅斯方塊\SDLTetris-mouse\images\
?????文件????????2814??2012-05-11?11:12??SDL俄羅斯方塊\SDLTetris-mouse\images\art.bmp
?????文件????????2814??2012-05-11?11:25??SDL俄羅斯方塊\SDLTetris-mouse\images\arting.bmp
?????文件??????921654??2012-05-11?11:11??SDL俄羅斯方塊\SDLTetris-mouse\images\background.bmp
?????文件????????2814??2012-05-11?11:20??SDL俄羅斯方塊\SDLTetris-mouse\images\ex.bmp
?????文件????????2814??2012-05-11?11:12??SDL俄羅斯方塊\SDLTetris-mouse\images\left.bmp
?????文件????????2814??2012-05-11?11:19??SDL俄羅斯方塊\SDLTetris-mouse\images\m.bmp
?????文件????????2814??2012-05-11?11:12??SDL俄羅斯方塊\SDLTetris-mouse\images\op.bmp
?????文件????????2814??2012-05-13?15:31??SDL俄羅斯方塊\SDLTetris-mouse\images\re.bmp
?????文件????????2814??2012-05-11?11:23??SDL俄羅斯方塊\SDLTetris-mouse\images\reart.bmp
?????文件????????2814??2012-05-11?11:13??SDL俄羅斯方塊\SDLTetris-mouse\images\right.bmp
?????文件????????2814??2012-05-11?11:13??SDL俄羅斯方塊\SDLTetris-mouse\images\se.bmp
?????文件????????2814??2012-05-11?11:13??SDL俄羅斯方塊\SDLTetris-mouse\images\up.bmp
?????文件????????2814??2012-05-11?11:29??SDL俄羅斯方塊\SDLTetris-mouse\images\wall.bmp
?????文件????????2814??2012-05-11?12:44??SDL俄羅斯方塊\SDLTetris-mouse\images\x.bmp
?????文件???????19006??2012-05-13?21:57??SDL俄羅斯方塊\SDLTetris-mouse\SDLTetris.c
?????目錄???????????0??2012-12-06?17:26??SDL俄羅斯方塊\SDLTetris-mouse\sounds\
?????文件????????9322??2010-07-13?13:29??SDL俄羅斯方塊\SDLTetris-mouse\sounds\gameover.wav
?????文件????????5176??2010-07-13?13:29??SDL俄羅斯方塊\SDLTetris-mouse\sounds\high.wav
?????文件????????4554??2010-07-13?13:29??SDL俄羅斯方塊\SDLTetris-mouse\sounds\low.wav
?????文件????????3170??2010-07-13?13:29??SDL俄羅斯方塊\SDLTetris-mouse\sounds\medium.wav
?????目錄???????????0??2012-12-06?17:26??SDL俄羅斯方塊\SDLTetris-ts\
?????目錄???????????0??2012-12-06?17:26??SDL俄羅斯方塊\SDLTetris-ts\fonts\
?????文件???????45260??2010-07-13?13:29??SDL俄羅斯方塊\SDLTetris-ts\fonts\arlrdbd.ttf
............此處省略18個文件信息
評論
共有 條評論