借助SDL图库画个按钮

原创 2012年03月23日 12:21:53

  其实我们点击的按钮都是用坐标画上去的,当我们点击按钮就是触发里一个事件,好我们将按钮的上部分图片的坐标往一个方向移动一点距离,当我们松开鼠标时就让图片回到原来的位置,这样就是一个具有立体感的按钮!

 

主函数:

#include "Button.h"

Button::Button( SDL_Surface *src){
  screen=src;
 }
 
void Button::drawn()
{
 SDL_Event event;
 while(1){
  SDL_WaitEvent(&event);
  switch(event.type)
  {
   case SDL_MOUSEBUTTONDOWN:
    if(event.button.x<=100 && event.button.x>=40)
    if(event.button.y>=40 && event.button.y<= 100){
     
     boxRGBA(screen,44,44,104,104,100,100,63,0xff);
     filledTrigonRGBA(screen,55,55,85,70,55,85,70,77,235,0xff);
     boxRGBA(screen,85,55,90,85 ,70,77,235,0xff);
     display();
    }
    break;
   case SDL_MOUSEBUTTONUP:
     boxRGBA(screen,43,43,103,103,233,231,231,0xff);
     boxRGBA(screen,40,40,100,100,133,124,122,0xff);
     filledTrigonRGBA(screen,55,55,85,70,55,85 ,69,55,67,0xff);
     boxRGBA(screen,85,55,90,85 ,69,55,67,0xff);
     filledTrigonRGBA(screen, 100,40,104,44,100,44,233,231,231,0xff);
     display();
     SDL_FillRect(screen,NULL,0x00);
     break;
   case SDL_QUIT:
    exit(1);
  }
 }
}

void Button::drawn1()
{
 boxRGBA(screen,43,43,103,103,233,231,231,0xff);
 boxRGBA(screen,40,40,100,100,133,124,122,0xff);
 filledTrigonRGBA(screen,55,55,85,70,55,85 ,69,55,67,0xff);
 boxRGBA(screen,85,55,90,85 ,69,55,67,0xff);
 filledTrigonRGBA(screen, 100,40,103,43,100,43,233,231,231,0xff);
 display();
 SDL_FillRect(screen,NULL,0x00);

}
void Button::display()
{
 
 SDL_UpdateRect(screen,0,0,0,0);

}

 

头文件

#ifndef BUTTON_H
#define BUTTON_H

#include<iostream>
using namespace std;
#include<SDL/SDL.h>
#include<SDL/SDL_gfxPrimitives.h>
class Button
{
 public:
 Button( SDL_Surface *src);
 void drawn();
 void drawn1();
 void display();
 private:
 SDL_Surface *screen;

};
#endif

 

SDL 上的界面库

 前两天折腾 Symbian,顺便把 SDL 在上面编译通过了,其间经历的艰辛真是一言难尽,不知道 Symbian 的作者到底有什么值得夸耀的地方,总是不遗余力地宣传自己的优秀架构。   S...
  • u012075739
  • u012075739
  • 2014年06月04日 10:22
  • 1124

SDL2.0学习笔记3——用SDL画图

#include "SDL.h" class Game2 { public: Game2():m_pWindow(NULL),m_pRenderer(NULL), m_bRunning(false...
  • finewind
  • finewind
  • 2014年08月14日 22:22
  • 6962

SDL的一个按钮的制作

  • 2012年12月20日 22:06
  • 3KB
  • 下载

SDL学习教程

本章目标 理解SDL_Surface中pixels数据块格式。SDL_PixelFormat结构的分配和释放过程。知道点对点块移、RLE块移优点和缺陷。哈希表、surface表、LRU链表协同管...
  • hustbin
  • hustbin
  • 2013年11月24日 00:17
  • 4486

linux下C语言编程8-SDL图形入门

SDL简介     SDL 是 Simple DirectMedia Layer(简易直控媒体层)的缩写。它是一个跨平台的多媒 体库,以用于直接控制底层的多媒体硬件的接口。这些多媒体功能包括了音频、...
  • hbuxiaoshe
  • hbuxiaoshe
  • 2010年12月15日 13:47
  • 5304

SDL游戏之路(十一)--按钮制作

 按钮制作 按钮我们定义三种状态, 1.按钮区域外,2.按钮区域内,3.按钮被点下 对三种状态可以分别显示不同的图片。 #ifndef SKBUTTON_H_ #define SK...
  • ycg01
  • ycg01
  • 2014年01月16日 22:27
  • 2327

visio教程PDF

  • 2010年05月17日 23:56
  • 5.41MB
  • 下载

自绘按钮的实现

http://blog.chinaunix.net/uid-21658818-id-116917.html   下载本文示例工程 如果你希望能够在...
  • haoruifly
  • haoruifly
  • 2012年05月24日 16:52
  • 819

python之matplotlib画图库学习绘制常用的图

python之matplotlib画图库学习绘制常用的图
  • xiaoping_1988
  • xiaoping_1988
  • 2017年09月24日 15:26
  • 446

sdl2.0的按钮控件实现原理小程序

#include "SDL.h" #include "SDL_thread.h" #include"SDL_stdinc.h" #include #include   #defi...
  • u012075739
  • u012075739
  • 2014年05月12日 22:27
  • 1111
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:借助SDL图库画个按钮
举报原因:
原因补充:

(最多只允许输入30个字)