SDL历程:课程设计之画图

在我的SDL系列文章中的上一篇我已经介绍了关于SDL的安装过程及其详细步骤,下面就开始我们的SDL征途吧。

这一篇我着重为大家讲解如何利用SDL做一个简单的颜色自动变换调色板。

根据SDL官方文档我们很容易就能够获得建立一个屏幕的步骤:

首先我们要初始化一个Video,而后获得一个SDL_Surface;

SDL_Init(SDL_INIT_VIDEO);

SDL_Surface *screen = SDL_SetVideoMode(640,480,32,SDL_SWSURFACE);

如果函数调用成功则一切OK,

SDL给用户提供了很多画图的API,它们在SDL_gfxPrimitives.h文件中

在这里我们只用其中的一个来实现我们的功能

boxRGBA(SDL_Surface * dst, Sint16 x1, Sint16 y1, Sint16 x2,
  Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a);

这个函数就可以实现在dst上显示出我们所要绘制的图案了...是不是感觉很high呀...就这么简单

下面我就把具体的代码贴出来供大家分享下...

#include <SDL.h>
#include <SDL_gfxPrimitives.h>
#include <SDL_image.h>
#include <SDL_rotozoom.h>
#include <SDL_ttf.h>
#include <stdio.h>    

int main(int argc,char *argv[])
{
 if(SDL_Init(SDL_INIT_VIDEO) < 0 )
 {
  printf("Init error\n");
  return -1;
 }    

 SDL_Surface *screen = SDL_SetVideoMode(640,480,32,SDL_SWSURFACE);    

 if(!screen)
 {
  printf("Init video mode error\n");
  return -1;
 }
 int i = 255;
 for(; i >= 0; i--)
 {
  SDL_FillRect(screen, &screen->clip_rect, 0x0);
  boxRGBA(screen, 100, 100, 300, 300, 255, 0, 0, i);
  SDL_Delay(20);
  SDL_UpdateRects(screen,1,&screen->clip_rect);    

 }
 SDL_Quit();    

 return 0;
}

本文出自 “驿落黄昏” 博客,请务必保留此出处http://yiluohuanghun.blog.51cto.com/3407300/832855

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索include
, return
, sdl
, 插件gcc和sdl
, sdl初学问题
, screen
, uint8
, sdl设计
一个
,以便于您获取更多的相关知识。

时间: 2024-08-02 20:48:59

SDL历程:课程设计之画图的相关文章

基础-JAVA课程设计实数计算器求指导思路

问题描述 JAVA课程设计实数计算器求指导思路 [问题描述]运用面向对象程序设计知识,利用Java语言设计和实现一个复数计算器.要求具备如下主要功能: (1)建立实数类.复数类 (2)实现实数.复数信息的初始化 (3)实现实数的加.减.乘.除.自增.自减.求平方.二次方根等操作 (4)实现复数的加.减.乘.除.取模.求平方.求共轭复数.求单个复数的向量角.求两个复数的夹角等运算 (5)实现实数.复数信息的输出 在实现过程中,需利用面向对象程序设计理论的基础知识,充分体现出Java语言关于类.继承

C++课程设计老师说我没有用到类 求指教这段代码要怎么修改加上类

问题描述 C++课程设计老师说我没有用到类 求指教这段代码要怎么修改加上类 #include #include #include using namespace std; const double pi = 3.14159265; const double e = 2.718281828459; const int SIZE = 1000; typedef struct node//为了处理符号而建立的链表(如: 1+(-2)) { char data; node *next; }node; t

数据库课程设计具体要怎么做

问题描述 数据库课程设计具体要怎么做 数据库课程设计具体要怎么做,准确地说是用SQLserver写语句建表等等时要怎么做 解决方案 数据库课程设计数据库课程设计数据库课程设计 解决方案二: 找一本sql语句的教材,先了解sql语句的用法,然后多动手写一些. 解决方案三: http://www.w3school.com.cn/sql/index.asp 各种基础学习 解决方案四: 百度,搜SQLserver简单建表语句

Java小例子:图书馆课程设计

用 Java 模拟一个图书馆.包括创建图书.创建读者.借书.还书.列出所有图书. 列出所有读者.列出已借出的图书.列出过期未还的图书等功能.每个读者最多只能借 3 本书,每个书最多只能借 3 个星期,超过就算过期. 下面是一个命令行下的实现.这个例子的主要目的是向初学者展示内部类的好处. Command 及其子类都是 LibrarySimulator 的内部类.它们可以无阻碍的访问 LibrarySimulator 的成员.使用内部类,而不是大量的 if-else,让程序更容易扩展. 01.im

c语言课程设计总结心得大全

c语言课程设计心得体会范文一: 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在.因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的. 回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固

java 课程设计 投票统计

问题描述 java 课程设计 投票统计 课程设计,照着书做也不会,能不能就是给一个完整的代码,一次就可以编译执行,功能就是点一下哪个人的头像,那个人的票数就增加一个,然后点显示得票数就能显示三个人的票数 解决方案 Java 小例子:图书馆课程设计Java 小例子:图书馆课程设计 解决方案二: 先Mark一下我也想知道这个怎么解决最近在学IO

java ee-软件工程课程设计!!!求指导

问题描述 软件工程课程设计!!!求指导 使用java,jsp ,数据库,ajax,等等技术,开发一款电子商务平台,能够进行正常的运转,不要求最先进的技术,但要完成最基本的需求.. 解决方案 http://www.jb51.net/books/292002.html 解决方案二: 这种系统一般用mvc三层结构比较好做

叶子结点-二叉树的c++编程,我们做课程设计

问题描述 二叉树的c++编程,我们做课程设计 二叉树的前序,中序,后序遍历,求叶子结点,结点个数,和深度的编程 解决方案 用MatLAB做电路课程设计教你做课程设计! 解决方案二: http://www.cnblogs.com/elleniou/archive/2012/05/03/2480042.html

系统-数据库课程设计 在线等

问题描述 数据库课程设计 在线等 一.设计内容与设计要求1.设计内容:针对具体的问题,完成从系统的需求分析.数据库的概念设计.数据库的逻辑设计,到数据库实现等设计过程,最终实现一个较为完整的反映应用需求的数据库系统.下面是各个设计阶段的具体内容.⒈ 系统需求分析画出系统的数据流图,写出较为详细的数据字典.⒉ 数据库的概念设计画出局部E-R图和全局E-R图.⒊ 数据库的逻辑设计将概念设计阶段产生的全局概念模式(E-R图)转换成初始的关系模式.对关系模式进行规范化处理.根据设计所要求的规范级别,逐一