当前位置:文档之家› 嵌入式网络协议及其应用开发课程设计报告_基于SDL的记忆小游戏

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

课程设计说明书

学生信息

系别 计算机工程学院 专业 计算机科学与技术

班级 姓名 学号

课程设计信息

课程名称 嵌入式网络协议及其应用开发课程设计

课程设计题目 基于SDL的记忆小游戏

课程设计时间 学期第 1~16 周

小组情况 指导教师

批改情况

成绩 评阅教师 批改时间

2011-2012学年第 2 学期

第 2 页 共 17 页

目 录

1. 课程设计内容 ............................................................................................. 3

2. 课程设计目的 ............................................................................................. 3

3. 背景知识 .................................................................................................... 3

4. 工具/准备工作 ............................................................................................ 4

5. 设计步骤与方法 ......................................................................................... 4

5.1. 步骤1:在photoshop下编辑图片 ................................................................................. 4

5.2. 步骤2:编译程序 ............................................................................................................ 4

5.2.1. 步骤2.1:安装SDL ................................................................................................ 4

5.2.2. 步骤2.2:linux下编译执行 .................................................................................... 5

5.3. 步骤4:设计游戏代码 .................................................................................................... 5

6. 设计结果及分析 ....................................................................................... 17

7. 设计结论 .................................................................................................. 17

8. 问题及心得体会 ....................................................................................... 17

9. 对本设计过程及方法、手段的改进建议 .................................................... 17

10. 任务分配 .................................................................................................. 17

11. 参考文献 .................................................................................................. 17

第 3 页 共 17 页

课程设计报告

1. 课程设计内容

本课程设计的内容是设计一个基于SDL的记忆小游戏。

2. 课程设计目的

考察自己对课程的掌握程度,以及自己实际的动手能力,编程能力。

3. 背景知识

网络应用程序的基本实现方法

网络游戏的基本实现原理

SDL是Simple DirectMedia Layer(简易直控媒体层)的缩写。它是一个跨平台的多媒体库,以用于直接控制底层的多媒体硬件的接口。

这些多媒体功能包括了音频、键盘和鼠标(事件)、游戏摇杆等。

当然,最为重要的是提供了2D图形帧缓冲(framebuffer)的接口,以及为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 页 共 17 页 4. 工具/准备工作

硬件:

安装有windowsXP以上版本的操作系统PC机一台

建议配置是CPU PIV以上,512M内存以上, 20G硬盘空间以上

ARM2200教学实验开发平台

软件:

安装Photoshop

VMware 6.0,debian

5. 设计步骤与方法

5.1. 步骤1:在photoshop下编辑图片

5.2. 步骤2:编译程序

5.2.1. 步骤2.1:安装SDL

使用命令“sdl-config -cflags”来检查是否已安装SDL。如果没有安装,可以选择上网安装,或从源码包安装:

 上网安装:首先确保能联上internet(如果没有联上互联网可参考《Linux相关实验常见问题.doc》).并在命令行下输入 :apt-get install libsdl1.2-dev

第 5 页 共 17 页 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

5.2.2. 步骤2.2:linux下编译执行

1) 将源文件sdl_simple_game.cpp拷贝到linux主机

2) 进行编译:g++ -o t sdl_simple_game.cpp –L/usr/lib –lSDL,生成可执行文件

3) 执行 ,在命令行输入./t

5.3. 步骤4:设计游戏代码

//The headers

#include "SDL/SDL.h"

#include "SDL/SDL_image.h"

#include

#include

//Screen attributes

const int SCREEN_WIDTH = 721;

const int SCREEN_HEIGHT = 721;

const int SCREEN_BPP = 32;

//The frames per second

const int FRAMES_PER_SECOND = 10;

//The dimenstions of the stick figure

const int FOO_WIDTH = 180;

const int FOO_HEIGHT = 180;

const int Begin=0;

const int Run=1;

const int End=2;

bool flag[4][4];

int tu[4][4];

int tu_x;

int tu_y;

第 6 页 共 17 页 int m_x;

int m_y;

bool m_s;

bool lock=true;

bool quit = false;

int g_s;

int end_y;

//The surfaces

SDL_Surface *foo = NULL;

SDL_Surface *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 event structure

SDL_Event event;

//The areas of the sprite sheet

SDL_Rect menu_rect[ 2 ];

SDL_Rect end_rect[ 2 ];

//The stick figure

class Foo

{

private:

//The offset

int offSet;

//Its rate of movement

int velocity;

//Its current frame

int frame;

public:

//Initializes the variables

Foo();

相关主题