借助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按钮制作

自己封装了一个SDL按钮类,主要是实现了三种状态的切换(鼠标移入,移出,左键单击)和左键单击消息的响应(回调函数) 头文件代码 #ifndef BRBUTTON_H_ #define BRBUTT...
  • rankun1
  • rankun1
  • 2016年05月03日 15:11
  • 505

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

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

Android拍照或从图库选择图片并裁剪

今天看《第一行代码》上面关于拍照和从相册选取图片那一部分,发现始终出不来效果,所以搜索其他资料学习一下相关知识,写一个简单的Demo。...

android开发笔记之内置图片到图库

开发需求客户提了一个需求,内置22张客户提供的壁纸到launcher的壁纸中,并且要在图库中显示这22张壁纸初步实现初步看,觉得这应该是一个非常简单的需求,只要在luncher中对应以前的壁纸中添加2...

Android拍照、调用系统图库、裁剪图片到指定大小后输出

在这两天开发过程中要实现一个更换封面的功能,图片可以从系统图库或者照相机拍照,虽然可以通过Intent意向传递简单获取系统功能,但是在处理图片的时候还是遇到了很多问题。 首先我们创建一个uri指向图片...

webview打开图库并获取安卓文件图片

1,实现安卓webview 打开安卓图库并拿到文件,最后调用js实现文件上传(未实现)。 2,网页代码如下:一个简单的文件选择按钮。 HTML PUBLIC "-//W3C//DTD HTML 4....

Android 调用系统相机拍照(适配7.0)、从图库选择图片、从数据库读取联系人信息、相册图片、扫描文件

一、调用系统相册图库(sdk23以上需要动态申请权限): 1. 调用系统相机拍照 注:android 7.0(sdk 24)之后拍照发生了改变,需用ContentValues或者FileProvid...

通讯录图库界面,两种cell的定制

@interface FYZMalePersonCell : UITableViewCell @property (nonatomic, retain) PhotoInfo *photoInfo;/...

Android 仿照微信发说说,既能实现拍照,选图库,多图案上传 使用Retrofit2.0技术

转自  http://blog.csdn.net/u010046908/article/details/50767904 接在本项目中用到了一个library:photopicker,封装了图片...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:借助SDL图库画个按钮
举报原因:
原因补充:

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