sys_set.c

来自「redboy for gba 是BPNS为GBA编写的一个小软件。软件的邹形是B」· C语言 代码 · 共 59 行

C
59
字号
#include <CsAgb.h>
#include <graph.h>
#include <Qgraph.h>
#include <rb_stdio.h>

extern void key_delay_set(u32 *M,u8 act);

u32 KeyDelayCnt;

void readkey()
{
   u32 i,j;
   for (i=0;i<KeyDelayCnt;i++)
   for (j=0;j<10000;j++) j++;
   CS_ReadKey();
}

void get_keydelay()
{
   key_delay_set(&KeyDelayCnt,2);
   if (KeyDelayCnt>=400) KeyDelayCnt=40;
}

void set_keydelay()//设置读键延时
{
   u8 done=1;
   u32 temp=KeyDelayCnt;
   if (KeyDelayCnt%40) KeyDelayCnt=0;
   r_box(41,32,201,101,0,0);
   Q_box(40,30,200,100,RGB(27,27,26));
   r_box(40,30,200,100,RGB(30,30,30),0);
   Q_box(41,31,199,45,RGB(3,7,15));
   r_line(41,46,199,46,RGB(30,30,30),1);
   cwrite(42,33,RGB(30,30,30),"按键延时设置");
   cwrite(45,73,RGB(3,7,15),"A   :确 定 B   :取 消");
   cwrite(45,87,RGB(3,7,15),"UP  :延时减 DOWN:延时增");
   r_box(45,55,195,70,RGB(3,7,15),0);
   while (1)
   {
      readkey();
      if (CS_IsKeyDown(KEY_UP)||CS_IsKeyDown(KEY_LEFT))
      {
         if (KeyDelayCnt) {KeyDelayCnt-=40;done=1;}
      }
      else if(CS_IsKeyDown(KEY_DOWN)||CS_IsKeyDown(KEY_RIGHT))
      {
         if (KeyDelayCnt<400) {KeyDelayCnt+=40;done=1;}
      }
      else if(CS_IsKeyDown(KEY_A)) {key_delay_set(&KeyDelayCnt,1);return;}
      else if(CS_IsKeyDown(KEY_B)) {KeyDelayCnt=temp;return;}
      if (done)
      {
         Q_box(46,56,194,69,RGB(25,25,25));
         Q_box(46,56,46+149*KeyDelayCnt/400,69,RGB(3,7,15));
         done=0;
      }
   }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?