ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:177.73KB ,
资源ID:18436470      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18436470.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式网络协议及其应用开发课程设计报告基于SDL的记忆小游戏Word文档格式.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

嵌入式网络协议及其应用开发课程设计报告基于SDL的记忆小游戏Word文档格式.docx

1、8. 问题及心得体会 189. 对本设计过程及方法、手段的改进建议 1810. 任务分配 1811. 参考文献 18课程设计报告1. 课程设计内容本课程设计的内容是设计一个基于SDL的记忆小游戏。2. 课程设计目的考察自己对课程的掌握程度,以及自己实际的动手能力,编程能力。3. 背景知识网络应用程序的基本实现方法网络游戏的基本实现原理 SDL是Simple DirectMedia Layer(简易直控媒体层)的缩写。它是一个跨平台的多媒体库,以用于直接控制底层的多媒体硬件的接口。 这些多媒体功能包括了音频、键盘和鼠标(事件)、游戏摇杆等。 当然,最为重要的是提供了2D图形帧缓冲(framebu

2、ffer)的接口,以及为OpenGL与各种操作系统之间提供了统一的标准接口以实现3D图形。 SDL是一个跨平台的多媒体函数库,被用来设计成在低层访问音频,键盘,鼠标,游戏杆,基于OPENGL(一个3D图象开发函数库)的3D 硬件,和2D图象帧缓冲区。它被广泛的用于基于MPEG的媒体播放软件,模拟器,和许多著名的游戏。 SDL是一个跨平台的函数库,几乎支持现今所有平台:Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX。 4. 工具/

3、准备工作硬件:安装有windowsXP以上版本的操作系统PC机一台建议配置是CPU PIV以上,512M内存以上, 20G硬盘空间以上ARM2200教学实验开发平台软件:安装PhotoshopVMware 6.0,debian5. 设计步骤与方法在photoshop下编辑图片 编译程序安装SDL使用命令“sdl-config -cflags”来检查是否已安装SDL。如果没有安装,可以选择上网安装,或从源码包安装: 上网安装:首先确保能联上internet(如果没有联上互联网可参考Linux相关实验常见问题.doc).并在命令行下输入 :apt-get install libsdl1.2-dev

4、 libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev。系统将自动完成安装 从源码包安装:拷贝SDL-1.2.13.tar.gz至linux主机/home/test目录,然后执行命令:tar xvzf tar xvzf SDL-1.2.13.tar.gz SDL-1.2.13.tar.gz, 执行后,将在本地生成一个SDL-1.2.13的目录,进入这个目录,在root权限下,依次执行 ./configure; make; make install linux下编译执行1) 将源文件sdl_simple_game.cpp拷贝到linu

5、x主机2) 进行编译:g+ -o t sdl_simple_game.cpp L/usr/lib lSDL,生成可执行文件3) 执行 ,在命令行输入./t设计游戏代码 /The headers#include SDL/SDL.hSDL/SDL_image.h#include math.h/Screen attributesconst int SCREEN_WIDTH = 721;const int SCREEN_HEIGHT = 721;const int SCREEN_BPP = 32;/The frames per secondconst int FRAMES_PER_SECOND = 1

6、0;/The dimenstions of the stick figureconst int FOO_WIDTH = 180;const int FOO_HEIGHT = 180;const int Begin=0;const int Run=1;const int End=2;bool flag44;int tu44;int tu_x;int tu_y;int m_x;int m_y;bool m_s;bool lock=true;bool quit = false;int g_s;int end_y;/The surfacesSDL_Surface *foo = NULL;SDL_Sur

7、face *screen = NULL;SDL_Surface *menu = NULL;SDL_Surface *begin = NULL;SDL_Surface *end = NULL;SDL_Surface *pai1 = NULL;SDL_Surface *pai2 = NULL;SDL_Surface *pai3 = NULL;SDL_Surface *pai4 = NULL;SDL_Surface *pai5 = NULL;SDL_Surface *pai6 = NULL;SDL_Surface *pai7 = NULL;SDL_Surface *pai8 = NULL;/The

8、event structureSDL_Event event;/The areas of the sprite sheetSDL_Rect menu_rect 2 ;SDL_Rect end_rect 2 ;/The stick figureclass Fooprivate: /The offset int offSet; /Its rate of movement int velocity; /Its current frame int frame;public: /Initializes the variables Foo(); /Handles input void handle_eve

9、nts(); /Shows the stick figure void show();SDL_Surface *load_image( std:string filename ) /The image thats loaded SDL_Surface* loadedImage = NULL; /The optimized surface that will be used SDL_Surface* optimizedImage = NULL; /Load the image loadedImage = IMG_Load( filename.c_str() ); /If the image lo

10、aded if( loadedImage != NULL ) /Create an optimized surface optimizedImage = SDL_DisplayFormat( loadedImage ); /Free the old surface SDL_FreeSurface( loadedImage ); /If the surface was optimized if( optimizedImage ! /Color key surface SDL_SetColorKey( optimizedImage, SDL_SRCCOLORKEY, SDL_MapRGB( opt

11、imizedImage-format, 0, 0xFF, 0xFF ) ); /Return the optimized surface return optimizedImage;void apply_surface( int x, int y, SDL_Surface* source, SDL_Surface* destination, SDL_Rect* clip = NULL ) /Holds offsets SDL_Rect offset; /Get offsets offset.x = x; offset.y = y; /Blit SDL_BlitSurface( source,

12、clip, destination, &offset );/*void set_clips() /Clip the sprites clipsRight 0 .x = 0; clipsRight 0 .y = 0; clipsRight 0 .w = FOO_WIDTH; clipsRight 0 .h = FOO_HEIGHT; clipsRight 1 .x = FOO_WIDTH; clipsRight 1 .y = 0; clipsRight 1 .w = FOO_WIDTH; clipsRight 1 .h = FOO_HEIGHT; clipsRight 2 .x = FOO_WI

13、DTH * 2; clipsRight 2 .y = 0; clipsRight 2 .w = FOO_WIDTH; clipsRight 2 .h = FOO_HEIGHT; clipsRight 3 .x = FOO_WIDTH * 3; clipsRight 3 .y = 0; clipsRight 3 .w = FOO_WIDTH; clipsRight 3 .h = FOO_HEIGHT; clipsLeft 0 .x = 0; clipsLeft 0 .y = FOO_HEIGHT; clipsLeft 0 .w = FOO_WIDTH; clipsLeft 0 .h = FOO_

14、HEIGHT; clipsLeft 1 .x = FOO_WIDTH; clipsLeft 1 .y = FOO_HEIGHT; clipsLeft 1 .w = FOO_WIDTH; clipsLeft 1 .h = FOO_HEIGHT; clipsLeft 2 .x = FOO_WIDTH * 2; clipsLeft 2 .y = FOO_HEIGHT; clipsLeft 2 .w = FOO_WIDTH; clipsLeft 2 .h = FOO_HEIGHT; clipsLeft 3 .x = FOO_WIDTH * 3; clipsLeft 3 .y = FOO_HEIGHT;

15、 clipsLeft 3 .w = FOO_WIDTH; clipsLeft 3 .h = FOO_HEIGHT;*/bool init() /Initialize all SDL subsystems if( SDL_Init( SDL_INIT_EVERYTHING ) = -1 ) return false; /Set up the screen screen = SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_SWSURFACE ); /If there was an error in setting up

16、the screen if( screen = NULL ) /Set the window caption SDL_WM_SetCaption( Animation Test, NULL ); /If everything initialized fine return true;void Cs_Index() srand(time(NULL); int i,j,x,y,t; int k=0; m_s = true; tu_x = -1; lock = false; quit = false; end_y = 30; g_s = Begin; for(i=0;i4;i+) for(j=0;j

17、=300 & y= 240 & x=420 & quit = true; / g_s =End; else if(g_s = Run) if(lock & !flagy/180x/180) flagy/180x/180 = true; m_s = !m_s; m_x = x; m_y = y;void move() if(g_s = Run & lock = false) if(m_s) if(tu_x != -1)&(tutu_xtu_y != tum_y/180m_x/180) ) flagtu_xtu_y = false; flagm_y/180m_x/180 = false; else

18、 tu_x = m_y/180; tu_y = m_x/180; lock = true; bool isopen = true; for(int i=0; i i+) for(int j=0; j 360) end_y = 360; end_rect0.y = 360-end_y; end_rect0.h = end_y; end_rect1.h = end_y;show() int i,j; if(g_s = Begin)/如果开始状态,显示开始图片 apply_surface(0, 0, begin, screen); for( i=0;2; apply_surface(240, 300

19、+i*60, menu, screen, &menu_recti); /遍历图像索引,在相应位置显示图像 for( j=0; if(flagij) /翻开 switch(tuij) case 0: apply_surface(180*j,180*i, pai1, screen); break; case 1: apply_surface(180*j,180*i, pai2, screen); case 2: apply_surface(180*j,180*i, pai3, screen); case 3: apply_surface(180*j,180*i, pai4, screen); case 4: apply_surface(180*j,180*i, pai5, screen); case 5: apply_surface(180*j,180*i, pai6, screen); case 6: apply_surface(180*j,180*i, pai7, screen); case 7: apply_surface(180*j,180*i, pa

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1