一架小钢琴——图形界面与发声技术的简单应用
2005-03-03 09:28
411 查看
一架小钢琴——图形界面与发声技术的简单应用
发表日期:2004年7月17日 作者:林奕伟 已经有2975位读者读过此文
/*
* Super Piano, Version 1.0
* Compiled by TCC.EXE
* Coding Enviroment: Win-TC 1.72
* Written by Lin Yiwei,from ZJU
* Date: 2004-7-17
*/
#include
#include
#include
#include
#define closegr closegraph
#define KEY_WIDTH 60
#define KEY_HEIGHT 280
#define s 8051
#define d 8292
#define f 8550
#define g 8807
#define h 9064
#define j 9322
#define k 9579
#define ESC 283
/*function's prototype*/
void initgr()
{
int gd=DETECT,gm=0;
registerbgidriver(EGAVGA_driver);/*register BGI driver */
registerbgifont(triplex_font); /*register BGI font*/
registerbgifont(small_font);
registerbgifont(sansserif_font);
registerbgifont(gothic_font);
initgraph(&gd,&gm,"");
} /*initialize the graphic*/
void down(int x,int y)
{
setcolor(WHITE);
setfillstyle(SOLID_FILL,WHITE);
bar(x,y,x+KEY_WIDTH,y+KEY_HEIGHT-13);
setcolor(DARKGRAY);
setfillstyle(SOLID_FILL,DARKGRAY);
bar(x,y+KEY_HEIGHT-13,x+KEY_WIDTH,y+KEY_HEIGHT);
} /*the key being pressed*/
void up(int x,int y)
{
setcolor(WHITE);
setfillstyle(SOLID_FILL,WHITE);
bar(x,y,x+KEY_WIDTH,y+KEY_HEIGHT-20);
setcolor(DARKGRAY);
setfillstyle(SOLID_FILL,DARKGRAY);
bar(x,y+KEY_HEIGHT-20,x+KEY_WIDTH,y+KEY_HEIGHT);
} /*the key being release*/
void start()
{
int i=0;
initgr(); /* initialize the BGI */
setbkcolor(LIGHTGRAY);
/*set the background*/
settextstyle(4,0,5);
setcolor(BLUE);
outtextxy(170,40,"SUPER PIANO");
setcolor(RED);
outtextxy(172,42,"SUPER PIANO");
setcolor(YELLOW);
outtextxy(174,44,"SUPER PIANO");
setcolor(GREEN);
outtextxy(176,46,"SUPER PIANO");
/*this is the title*/
for(i=0;i<7;i++)
{
up(100+i*(KEY_WIDTH+5),110);
} /*the key*/
settextstyle(0,0,1);
setcolor(LIGHTRED);
outtextxy(175,420,"KEY:1-s,2-d,3-f,4-g,5-h,6-j,7-k,Quit-Esc");
setcolor(BLUE);
outtextxy(215,440,"All Rights Reversed @ 2004-7");
}
main()
{
int i=0;
int key=0;
start();
while(key!=ESC)
{
for(i=0;i<7;i++)
{
up(100+i*(KEY_WIDTH+5),110);
} /*release the key first*/
key=bioskey(0);
switch(key)
{
case s:down(100,110);sound(523);delay(3000);nosound();break;
case d:down(165,110);sound(587);delay(3000);nosound();break;
case f:down(230,110);sound(659);delay(3000);nosound();break;
case g:down(295,110);sound(699);delay(3000);nosound();break;
case h:down(360,110);sound(784);delay(3000);nosound();break;
case j:down(425,110);sound(880);delay(3000);nosound();break;
case k:down(490,110);sound(988);delay(3000);nosound();break;
default:break;
}
}
closegr();
}
/*图形驱动和字体均注册(可生成完全独立的exe文件),因而要求有相应的图形驱动和字体连库*/
发表日期:2004年7月17日 作者:林奕伟 已经有2975位读者读过此文
/*
* Super Piano, Version 1.0
* Compiled by TCC.EXE
* Coding Enviroment: Win-TC 1.72
* Written by Lin Yiwei,from ZJU
* Date: 2004-7-17
*/
#include
#include
#include
#include
#define closegr closegraph
#define KEY_WIDTH 60
#define KEY_HEIGHT 280
#define s 8051
#define d 8292
#define f 8550
#define g 8807
#define h 9064
#define j 9322
#define k 9579
#define ESC 283
/*function's prototype*/
void initgr()
{
int gd=DETECT,gm=0;
registerbgidriver(EGAVGA_driver);/*register BGI driver */
registerbgifont(triplex_font); /*register BGI font*/
registerbgifont(small_font);
registerbgifont(sansserif_font);
registerbgifont(gothic_font);
initgraph(&gd,&gm,"");
} /*initialize the graphic*/
void down(int x,int y)
{
setcolor(WHITE);
setfillstyle(SOLID_FILL,WHITE);
bar(x,y,x+KEY_WIDTH,y+KEY_HEIGHT-13);
setcolor(DARKGRAY);
setfillstyle(SOLID_FILL,DARKGRAY);
bar(x,y+KEY_HEIGHT-13,x+KEY_WIDTH,y+KEY_HEIGHT);
} /*the key being pressed*/
void up(int x,int y)
{
setcolor(WHITE);
setfillstyle(SOLID_FILL,WHITE);
bar(x,y,x+KEY_WIDTH,y+KEY_HEIGHT-20);
setcolor(DARKGRAY);
setfillstyle(SOLID_FILL,DARKGRAY);
bar(x,y+KEY_HEIGHT-20,x+KEY_WIDTH,y+KEY_HEIGHT);
} /*the key being release*/
void start()
{
int i=0;
initgr(); /* initialize the BGI */
setbkcolor(LIGHTGRAY);
/*set the background*/
settextstyle(4,0,5);
setcolor(BLUE);
outtextxy(170,40,"SUPER PIANO");
setcolor(RED);
outtextxy(172,42,"SUPER PIANO");
setcolor(YELLOW);
outtextxy(174,44,"SUPER PIANO");
setcolor(GREEN);
outtextxy(176,46,"SUPER PIANO");
/*this is the title*/
for(i=0;i<7;i++)
{
up(100+i*(KEY_WIDTH+5),110);
} /*the key*/
settextstyle(0,0,1);
setcolor(LIGHTRED);
outtextxy(175,420,"KEY:1-s,2-d,3-f,4-g,5-h,6-j,7-k,Quit-Esc");
setcolor(BLUE);
outtextxy(215,440,"All Rights Reversed @ 2004-7");
}
main()
{
int i=0;
int key=0;
start();
while(key!=ESC)
{
for(i=0;i<7;i++)
{
up(100+i*(KEY_WIDTH+5),110);
} /*release the key first*/
key=bioskey(0);
switch(key)
{
case s:down(100,110);sound(523);delay(3000);nosound();break;
case d:down(165,110);sound(587);delay(3000);nosound();break;
case f:down(230,110);sound(659);delay(3000);nosound();break;
case g:down(295,110);sound(699);delay(3000);nosound();break;
case h:down(360,110);sound(784);delay(3000);nosound();break;
case j:down(425,110);sound(880);delay(3000);nosound();break;
case k:down(490,110);sound(988);delay(3000);nosound();break;
default:break;
}
}
closegr();
}
/*图形驱动和字体均注册(可生成完全独立的exe文件),因而要求有相应的图形驱动和字体连库*/
相关文章推荐
- XML技术在界面生成中的简单应用(XSLT相关)1
- 10大实用web应用界面技术
- 将自己的工作环境全面移植到C++---最后一道工序:能用MFC制作简单的图形界面
- AJAX技术在PHP开发中的简单应用
- 使用react-native做一个简单的应用-04界面主框架
- 【Android应用开发技术:用户界面】界面导航设计
- 一个简单图形界面框架XYGui的设计与实现 (一)
- MDK 10.1版,简单硬盘安装法(图形界面)
- 交互式网页应用的网页开发技术Ajax简单介绍
- iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局
- java学习之实现简单的图形界面
- php ob_start() ob_end_flush()缓存技术简单应用
- java图像界面开发简单实例-JPanel应用
- iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局
- 技术博客三:JSOUP的简单应用
- AJAX开发技术在PHP开发过程中的简单应用技巧
- 【matlab】一个简单的matlab图形界面程序GUI
- CSS滑动门技术的简单应用
- C语言的图形界面?——简单外挂程序
- IGTA 2018-第十三届图像图形技术与应用学术会议