Processing【5】彩色棋盘实验报告,初始化棋盘格子,初始化最上和最下两边的颜色参数。 监测鼠标点击的位置的颜色和状态(0,-1,1)

彩色棋盘实验报告

一. 思路:

  1. 初始化棋盘格子,初始化最上和最下两边的颜色参数。
  2. 监测鼠标点击的位置的颜色和状态(0,-1,1)。
  3. 定义ball和square,包含了颜色,半径,位置(x,y)属性(property),并且定义了绘画ball和square的方法(method)。
  4. 在格子边缘确定这个颜色覆盖在哪个格子上。计算出鼠标点击的位置和该位置所占百分比,从而确定格子的位置i,j。
  5. 每次draw()函数调用时,刷新格子的状态。

二. 实现过程:

  1. 使用setcolor()来设置初始的上下两边的颜色参数,setNumbers()刷新ifUsed[i][j]数组。
  2. drawcirle()和drawblocks()设置上下的颜色。drawgrid()设置格子。
  3. 监测点击所选择的位置是否有填充颜色。具体利用ifUsed[i][j]数组和color[15][15]数组来确定。
  4. drawMain()刷新颜色和棋盘。
  5. mousePressed(),mouseReleased(),keyPressed()来检测键盘和鼠标的状态。点击鼠标则拖动方块,按下键盘空格则刷新界面。

三. 代码:见工程文件。

//Dear Reader:CopyRight by qingling


class rec {
  color reccolor;
  int positionX;
  int positionY;
  float radius=height/num-3.8;

  rec(color bc, 
    int X, int Y) {
    reccolor=bc;
    positionX=X;
    positionY=Y;
  }
  void drawrec() 
  { 
    noStroke();
    fill(reccolor);
    rectMode(CENTER);
    rect(mouseX, mouseY, height/num-3.8, height/num-3.8);
  }
  
  void drawgrid() //Draw the background
{
  int i;
  for (i=0; i0)
    {
      r=new rec(colorInit[i], mouseX, mouseY);
      r.drawrec();
      colorBlock[i][j]=colorInit[i];
      ifUsed[i][j]=-1;
    } else if (Y>height/num*(num-1) && Yheight/num&&ifRec&&ifCircle&&!ifCopy&&x>0&&xheight/num&&x>0&&x

你可能感兴趣的:(processing)