#include "acllib.h"
ACL_Sound sound1;
ACL_Image img;//开始图
ACL_Image img1;//涂鸦图
ACL_Color c=RED;//默认画笔颜色
int cx=0;
int cy=0;
int j=0;//开始界面和绘图界面分离
int m=0;//重置当前绘图点and监控鼠标左或右键是否一直按着
void BEGIN(void)
{
 loadImage("begin_one.jpg",&img);
 loadSound("pop.mp3",&sound1);
 playSound(sound1,1);
 beginPaint();
 putImage(&img,0,0);
 setTextColor(RED);
 setTextBkColor(GREEN);
 setTextSize(50);
 setTextFont("Goudy Stout");
 paintText(125,200,"BEGIN");
 paintText(175,275,"MUSIC");
 paintText(225,350,"EXIT");
 endPaint();
}

void face_paint()
{
   loadImage("tu.jpg",&img1);
  
   //事先插图为了能够在上面涂鸦
   beginPaint();
   putImage(&img1,200,200);
    endPaint();
}

void rel_paint()
{
    static int ox = 0;
    static int oy = 0;
 
       if(m==1)//避免线画图成为点画图和把绘图起点确定
      {
            ox=cx;
           oy=cy;
           m++;
      }
     if(!(cx>=10&&cx<=72&&cy>=10&&cy<=30))
    { 
       
        beginPaint();
        setPenWidth(3);
        setPenColor(c);
        line(ox,oy,cx,cy);
        endPaint();
        ox=cx;
        oy=cy;
    
    }
}

void mouseEvent(int x,int y,int key,int event)
{
         static int k = 0; //完成歌曲开关键的重复使用(用全局或静态变量保证生存周期)
         //记录绘图坐标
         cx=x;
         cy=y;
 
      //开始界面的begin功能实现
    if(j==0&&x>=125&&x<=260&&y>=200&&y<=250&&key==LEFT_BUTTON&&event==BUTTON_DOWN)
      {
                beginPaint();
                clearDevice();
                endPaint();
                face_paint();
                j=1;
      }
 
          //MUSIC开关控制
     if(j==0&&x>=175&&x<=309&&y>=275&&y<=322&&key==LEFT_BUTTON&&event==BUTTON_DOWN)
    {
       switch(k)
      {
          case 0: 
         //菜单颜色
          beginPaint();
          putImage(&img,0,0);
           setTextColor(RED);
           setTextBkColor(GREEN);
           setTextSize(50);
           setTextFont("Goudy Stout");
           paintText(125,200,"BEGIN");
           paintText(225,350,"EXIT");
           endPaint();
          //改变选项颜色
           beginPaint();
          setTextColor(GREEN);
          setTextBkColor(RED);
          setTextSize(50);
         setTextFont("Goudy Stout");
         paintText(175,275,"MUSIC");
         endPaint(); 
         stopSound(sound1);//关闭音乐
         k=1;
         break;
  
          case 1:
          playSound(sound1,1);
            beginPaint();
            putImage(&img,0,0);
             setTextColor(RED);
             setTextBkColor(GREEN);
             setTextSize(50);
             setTextFont("Goudy Stout");
              paintText(125,200,"BEGIN");
              paintText(175,275,"MUSIC");
              paintText(225,350,"EXIT");
              endPaint();
             k=0;
             break;
         }
    }
 
 
    if(j==0&&x>=222&&x<=319&&y>=349&&y<=398&&key==LEFT_BUTTON&&event==BUTTON_DOWN)
 {
  exit(0);//退出功能
 }
 
 //画板面
 
       if(j==1)
     {   
       //选色板
         beginPaint();
        setBrushColor(BLUE);
        rectangle(10,10,30,30);
        endPaint();
 
        beginPaint();
       setBrushColor(GREEN);
       rectangle(31,10,51,30);
       endPaint();
 
       beginPaint();
       setBrushColor(BLACK);
       rectangle(52,10,72,30);
       endPaint();
   
       //调用划线函数
      //按住左键即可画图
             if(m!=0)
             {   
                rel_paint();
            }

//笔色
            if(key==LEFT_BUTTON&&event==BUTTON_DOWN)
           {
                 m=1;
                          if(x>=10&&x<=30&&y>=10&&y<=30)
                        {
                              c=BLUE;
                         }
                        if(x>=31&&x<=51&&y>=10&&y<=30)
                         {
                                c=GREEN;
                          }
                       if(x>=52&&x<=72&&y>=10&&y<=30)
                        {
                                c=BLACK;
                       }
           }

if(event==BUTTON_UP)
         {
              m=0;//既停止了一次画线,又重置了绘图点
          }
   
    }
 
}

int Setup()
{
 
 initWindow("",DEFAULT,DEFAULT,800,600);
 initConsole();
 switch(j)
 {
 case 0: BEGIN();break;
 }
 registerMouseEvent(mouseEvent);
    return 0;
 
}

//选用开始图片(img)

//选用音乐和涂鸦图随意

mooc上学习acllib后写的包含背景音乐的小涂鸦板(初入江湖,大佬勿喷)的更多相关文章

  1. Spring学习之——手写Spring源码V2.0(实现IOC、D、MVC、AOP)

    前言 在上一篇<Spring学习之——手写Spring源码(V1.0)>中,我实现了一个Mini版本的Spring框架,在这几天,博主又看了不少关于Spring源码解析的视频,受益匪浅,也 ...

  2. 在sqlbolt上学习SQL

    在sqlbolt上学习SQL 该网站能够学习sql基础,并且能在网页中直接输入sql语句进行查询. 学习网站原网址https://sqlbolt.com/(!部分指令该网站不支持,且存在一些bug!) ...

  3. JMeter学习-009-JMeter 后置处理器实例之 - 正则表达式提取器(二)多参数获取

    前文简述了通过后置处理器 - 正则表达式提取器 获取 HTTP请求 响应结果中的特定数据,未看过的亲,敬请参阅 JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一). ...

  4. JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一)概述及简单实例

    上文我们讲述了如何对 HTTP请求 的响应数据进行断言,以判断响应是否符合我们的预期,敬请参阅:JMeter学习-007-JMeter 断言实例之一 - 响应断言 那么我们如何获取 HTTP请求 响应 ...

  5. 在技术胖博客上学习ES6遇到的坑和想法

    第一节:ES6的开发环境搭建 坑1:全局安装babel-cli已经不被官方推荐,改为局部安装(cnpm install babel-cli --save-dev): 坑2:babel src/inde ...

  6. 关于学习less后一些感悟

    学习了一天的less发现,自己被自己弄的晕头转向,好在是学明白了! 一.写自己的第一个less css样式编程: 网址:http://www.1024i.com/demo/less/document. ...

  7. 【MOOC课程学习记录】程序设计与算法(一)C语言程序设计

    课程结课了,把做的习题都记录一下,告诉自己多少学了点东西,也能给自己一点鼓励. ps:题目都在cxsjsxmooc.openjudge.cn上能看到,参考答案在差不多结课的时候也会在mooc上放出来. ...

  8. 小甲鱼零基础入门学习python--课后作业

    [小甲鱼零基础入门学习python--课后作业] 小甲鱼零基础入门学习python--课后作业 本章内容: 1.基础部分的作业 2.函数部分的作业 3.字典.集合.文件部分作业 4.异常 5.Easy ...

  9. 使用MJRefresh遇到的一个问题,上拉刷新后tableview瞬间滑到最底部

    最近用MJRefresh上拉刷新时遇到一个问题,就是上拉刷新后,tableview会瞬间滑到最底部,用户还要往回翻才能看到新刷出来的数据,体验十分不好.查了很久没找到原因,最后发现在refreshvi ...

随机推荐

  1. Javascript编码规范,好的代码从书写规范开始,增强代码的可读性,可维护性,这是相当重要的!

    1. 前言 JavaScript在百度一直有着广泛的应用,特别是在浏览器端的行为管理.本文档的目标是使JavaScript代码风格保持一致,容易被理解和被维护. 虽然本文档是针对JavaScript设 ...

  2. Autotest添加测试用例小结

    Autotest本身是一个自动化测试框架,可以在上面添加各种测试工具用于系统测试.前几天我在上面添加了几个基于龙芯桌面5.0系统的性能测试工具.现在做以下总结,大体写以下添加的过程. 以unixben ...

  3. .net、jquery、ajax、wcf实现数据库用户名检测局部刷新

    jquery代码 $(function() { $("#user_name").blur(function(){ var user_name=$("#user_name& ...

  4. 导入java项目时出现红色叹号问题的解决

    问题:导入java项目时出现红色叹号(如下图所示) 原因:引入项目的某些jar包跟自己电脑上的位置不一样: 解决方案:步骤如下 (1)右键红色叹号所在项目————>build path————& ...

  5. .NET MVC页面生命周期及传统ASP.NET页面周期

    目前我主要使用.Net MVC框架进行网页创建,数据库是MSSQL Server.所以,我就用.NET MVC框架的web页面周期来说明页面的生命周期,但是我觉着其他MVC框架也是大同小异的. 本文主 ...

  6. cpp(第五章)

    1.副作用,指的是在计算表达式时对某些东西(如存储在变量的值)进行修改:顺序点,是程序执行过程中的一个点,在这里,进入下一步之前将确保对所有的副作用 都进行评估.(分号就是一个顺序点).for exa ...

  7. PhpStorm 设置之主题

    一 打开设置 File --> settings 二 设置窗口字体.大小.主题 Appearance & Behavior --> Appearance 下面是本人自己比较偏爱的一 ...

  8. CentOS上安装redis记录

    下载稳定版 curl -O http://download.redis.io/releases/redis-stable.tar.gz tar -zxvf redis-stable.tar.gz cd ...

  9. Java 9 揭秘(4. 模块依赖)

    文 by / 林本托 Tips 做一个终身学习的人. 在此章节中,主要学习以下内容: 如何声明模块依赖 模块的隐式可读性意味着什么以及如何声明它 限定导出(exports)与非限定导出之间的差异 声明 ...

  10. [0] Lc.exe 已退出,代码 -1

    可能的原因是:在你的项目中引用了第三方组件,并且这个第三方组件是个商业组件,他在组件的主使用类定义了LicenseProvider(typeof(LicFileLicenseProvider))这个A ...