社区
C语言
帖子详情
如何用C语言进行图形编程
Helendeng
2004-04-07 09:08:37
各位前辈,本人初学C,碰到一个问题,就是怎么样在C中调入一个图形,然后再在图形界面中插入菜单选项选择下面要运行的程序。即跟用C编一个小游戏差不多。只是没那么复杂。请各位帮帮忙。要求是越简单越好。谢谢
...全文
89
9
打赏
收藏
如何用C语言进行图形编程
各位前辈,本人初学C,碰到一个问题,就是怎么样在C中调入一个图形,然后再在图形界面中插入菜单选项选择下面要运行的程序。即跟用C编一个小游戏差不多。只是没那么复杂。请各位帮帮忙。要求是越简单越好。谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ChinaPlayer
2004-07-21
打赏
举报
回复
SC
wodeyouxian
2004-04-09
打赏
举报
回复
有两种模式,
一、在文本方式下,先画出各个界面,然后调用相应的菜单
二、用图形模式下,和上面也差不多, 也要有菜单
八卦之魂
2004-04-09
打赏
举报
回复
收藏
wp790507
2004-04-08
打赏
举报
回复
看不懂啊!而且有一个错误啊!
hanyimath
2004-04-08
打赏
举报
回复
up
gwcui
2004-04-08
打赏
举报
回复
//接上面
int choice(){
int i;
int key;
int button=1;
update(LEFT,TOP,WIDTH,WIDTH);
while(1){
setfillstyle(1,LIGHTGRAY);
for(i=1;i<=7;i++)
bar3d(BUTTONX,TOP+30*i,BUTTONX+BUTTONW,TOP+30*i+BUTTONH,2,1);
setfillstyle(1,BROWN);
for(i=1;i<=7;i++)
if(button==i)bar3d(BUTTONX,TOP+30*i,BUTTONX+BUTTONW,TOP+30*i+BUTTONH,2,1);
setcolor(RED);settextstyle(1,0,2);
outtextxy(BUTTONX+8,TOP+30*1+2,"LEVEL 1");
outtextxy(BUTTONX+8,TOP+30*2+2,"LEVEL 2");
outtextxy(BUTTONX+8,TOP+30*3+2,"LEVEL 3");
outtextxy(BUTTONX+8,TOP+30*4+2,"LEVEL 4");
outtextxy(BUTTONX+8,TOP+30*5+2,"LEVEL 5");
outtextxy(BUTTONX+8,TOP+30*6+2,"LEVEL 6");
outtextxy(BUTTONX+8,TOP+30*7+2,"LEVEL 7");
key=getkey();
if(key==0x4800)button--;
if(key==0x5000)button++;
if(button<1)button=7;
if(button>7)button=1;
if(key==0x1c0d)break;
}
return button;
}
int fover(){
int key;
update(LEFT,TOP,WIDTH,WIDTH);
setcolor(RED);
settextstyle(0,0,3);
outtextxy(LEFT+15,TOP+30,"GAME OVER");
settextstyle(1,0,1);
outtextxy(LEFT+30,TOP+130,"Exit? or not?(y/n)");
link:
while (bioskey(1) == 0){;}
key=bioskey(0)&0xff;
if((key=='n')||(key=='N'))return 1;
else if((key=='y')||(key=='Y'))return 0;
else goto link;
}
void fwin(){
update(LEFT,TOP,WIDTH,WIDTH);
setcolor(RED);
settextstyle(0,0,3);
outtextxy(LEFT+12,TOP+70,"YOU WIN !!!!!!");
getch();
}
void fstep(float step){
update(LEFT,BOTTOM+17,STEP*BLOODW,(22-17));
setfillstyle(1,RED);
bar(LEFT,BOTTOM+17,(LEFT)+(int)(step*BLOODW),BOTTOM+22);
}
void draw(int i,int j,int n){
char ch[2];
ch[1]='\0';
if(back[i][j]==' ')update(LEFT+(i-1)*(RECTW+RECTM),TOP+(j-1)*(RECTW+RECTM),RECTW,RECTW);
else{
setfillstyle(1,BROWN);
bar(LEFT+(i-1)*(RECTW+RECTM),TOP+(j-1)*(RECTW+RECTM),LEFT+i*(RECTW),TOP+j*(RECTW));
ch[0]=back[i][j];
setcolor(BLUE);
settextstyle(0,0,3);
outtextxy(LEFT+(i-1)*(RECTW+RECTM)+18,TOP+(j-1)*(RECTW+RECTM)+18,ch);
}
}
void map(int button,int n){
int i,j;
switch(button){
case 1:for(i=1;i<=n;i++)for(j=1;j<=n;j++)back[i][j]=back1[i][j];break;
case 2:for(i=1;i<=n;i++)for(j=1;j<=n;j++)back[i][j]=back2[i][j];break;
case 3:for(i=1;i<=n;i++)for(j=1;j<=n;j++)back[i][j]=back3[i][j];break;
case 4:for(i=1;i<=n;i++)for(j=1;j<=n;j++)back[i][j]=back4[i][j];break;
case 5:for(i=1;i<=n;i++)for(j=1;j<=n;j++)back[i][j]=back5[i][j];break;
case 6:for(i=1;i<=n;i++)for(j=1;j<=n;j++)back[i][j]=back6[i][j];break;
case 7:for(i=1;i<=n;i++)for(j=1;j<=n;j++)back[i][j]=back7[i][j];break;
}
}
void flevel(int level){
char ch[2];
ch[1]='\0';
switch(level){
case 1: ch[0]='1';break;
case 2: ch[0]='2';break;
case 3: ch[0]='3';break;
case 4: ch[0]='4';break;
case 5: ch[0]='5';break;
case 6: ch[0]='6';break;
case 7: ch[0]='7';break;
}
update((LEFT+250+10+3)+50,TOP-35+2,18,20);
setcolor(RED);
settextstyle(1,0,1);
outtextxy((LEFT+250+10+3)+52,TOP-35+5,ch);
}
int judge(int n){
int i,j;
int m=0;
char BACK1[4][4]={
'#','#','#','#',
'#','A','D','G',
'#','B','E','H',
'#','C','F',' '
};
char BACK2[5][5]={
'#','#','#','#','#',
'#','A','E','I','M',
'#','B','F','J','N',
'#','C','G','K','O',
'#','D','H','L',' '
};
char BACK3[6][6]={
'#','#','#','#','#','#',
'#','A','F','K','P','U',
'#','B','G','L','Q','V',
'#','C','H','M','R','W',
'#','D','I','N','S','X',
'#','E','J','O','T',' '
};
switch(n){
case 3:for(i=1;i<=n;i++)for(j=1;j<=n;j++)if(back[i][j]==BACK1[i][j])m++;break;
case 4:for(i=1;i<=n;i++)for(j=1;j<=n;j++)if(back[i][j]==BACK2[i][j])m++;break;
case 5:for(i=1;i<=n;i++)for(j=1;j<=n;j++)if(back[i][j]==BACK3[i][j])m++;break;
}
if(m>=n*n-1)return 1;
else return 0;
}
gwcui
2004-04-08
打赏
举报
回复
我的一个小游戏,可能对你有帮助.
#include<graphics.h> #include<stdlib.h> #include<bios.h>
#define LEFT 150
#define RIGHT (getmaxx()-LEFT)
#define WIDTH (RIGHT-LEFT)
#define TOP ((getmaxy()-WIDTH)/2)
#define BOTTOM ((getmaxy()+WIDTH)/2)
#define RECTW (WIDTH/n)
#define RECTM 2
#define STEP 120
#define BLOODH 5
#define BLOODW (((WIDTH*4)/5)/STEP)
#define BUTTONW 150
#define BUTTONH 25
#define BUTTONX (LEFT+(WIDTH-BUTTONW)/2)
void window(int x,int y);
void update(int x,int y,int w,int h);
int getkey();
void fcircle(int r);
void start();
int choice();
void draw(int i,int j,int n);
int judge(int n);
void fwin();
int fover();
char back[6][6];
char back1[4][4]={
'#','#','#','#',
'#','B','E','C',
'#',' ','D','H',
'#','F','G','A'
};
char back2[4][4]={
'#','#','#','#',
'#','E','H','C',
'#','G','A','F',
'#','D',' ','B'
};
char back3[5][5]={
'#','#','#','#','#',
'#','G','I','L','J',
'#','E','H','A','F',
'#','C',' ','K','M',
'#','N','B','O','D'
};
char back4[5][5]={
'#','#','#','#','#',
'#','F','M','D','I',
'#','A','K',' ','O',
'#','E','H','N','C',
'#','B','L','G','J'
};
char back5[6][6]={
'#','#','#','#','#','#',
'#','C','D','F','O','X',
'#','H','G','B','J','P',
'#',' ','E','A','L','V',
'#','N','I','K','M','Q',
'#','T','S','U','R','W'
};
char back6[6][6]={
'#','#','#','#','#','#',
'#','C','E','B','J','V',
'#','F','A','G','I','W',
'#','D','H',' ','L','S',
'#','M','N','K','O','Q',
'#','X','U','T','R','P'
};
char back7[6][6]={
'#','#','#','#','#','#',
'#','G','E','A','O','Q',
'#','H','D','F','N','S',
'#','B',' ','C','I','V',
'#','L','J','M','K','W',
'#','X','U','T','R','P'
};
void map(int level,int n);
void fstep(float step);
void flevel(int level);
void main(){
int gdriver=VGA,gmode=VGAHI;
int i,j;
int nulli,nullj;
int key;
int n=3;
float step;
int win,over,level=1;
initgraph(&gdriver,&gmode,"");
window(LEFT,TOP);
start();
START:
win=0;
step=STEP;
level=choice();
flevel(level);
if(level==1||level==2)n=3;
if(level==3||level==4)n=4;
if(level==5||level==6||level==7)n=5;
map(level,n);
update(LEFT,TOP,WIDTH,WIDTH);
while(1){
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(back[i][j]==' '){
nulli=i; nullj=j;
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++){
draw(i,j,n);
}
fstep(step);
key=getkey();
switch(n){
case 3:step-=1.5;break;
case 4:step-=0.8;break;
case 5:step-=0.35;break;
}
if( (key==0x4b00||key==0x1e41)&&(nulli!=n) ){
back[nulli][nullj]=back[nulli+1][nullj];
back[nulli+1][nullj]=' ';
}
if( (key==0x4d00||key==0x2044)&&(nulli!=1) ){
back[nulli][nullj]=back[nulli-1][nullj];
back[nulli-1][nullj]=' ';
}
if( (key==0x4800||key==0x1157)&&(nullj!=n) ){
back[nulli][nullj]=back[nulli][nullj+1];
back[nulli][nullj+1]=' ';
}
if( (key==0x5000||key==0x1f53)&&(nullj!=1) ){
back[nulli][nullj]=back[nulli][nullj-1];
back[nulli][nullj-1]=' ';
}
win=judge(n);
if(key==0x011b||step<=0||win==1)break;
}
if(win==1)fwin();
over=fover();
if(over==1)goto START;
closegraph();
}
void window(int x,int y){
setbkcolor(BLACK);
setfillstyle(1,LIGHTGRAY);
bar3d(x-20,y-50,getmaxx()-(x-10),getmaxy()-(y-40),5,1);
setfillstyle(1,LIGHTGREEN);
bar3d(x,y,getmaxx()-x,getmaxy()-y,3,1);
setfillstyle(1,LIGHTGRAY+1);
bar3d(x,y-35,x+50,y-10,2,1);
bar3d(x+50+10,y-35,x+100,y-10,2,1);
bar3d(x+100+10,y-35,x+150,y-10,2,1);
bar3d(x+150+10,y-35,x+200,y-10,2,1);
bar3d(x+200+10,y-35,x+250,y-10,2,1);
bar3d(x+250+10,y-35,x+340,y-10,2,1);
setcolor(WHITE);
settextstyle(1,0,1);
outtextxy(x+3,y-35+3,"X-Esc");
outtextxy(x+50+10+3,y-35+5,"<- A");
outtextxy(x+100+10+3,y-35+5,"/\\ W");
outtextxy(x+150+10+3,y-35+5,"-> D");
outtextxy(x+200+10+3,y-35+5,"\\/ S");
outtextxy(x+250+10+3,y-35+5,"LEVEL:");
outtextxy(getmaxx()-x-75,getmaxy()-y+17,"5.3.2003");
}
void update(int x,int y,int w,int h){
setfillstyle(1,LIGHTGREEN);
bar(x,y,x+w,y+h);
}
int getkey(void){
char lowbyte;
int press;
while (bioskey(1) == 0){;}
press=bioskey(0);
lowbyte=press&0xff;
press=press&0xff00+toupper(lowbyte);
return(press);
}
void fcircle(int r){
int i;
for(i=1;i<r;i++){
setcolor(i%16);
circle(320,240,i);
delay(7000);
}
}
void start(){
setfillstyle(1,BLUE);
bar(LEFT,TOP,RIGHT,BOTTOM);
fcircle(LEFT-30);
bar(LEFT,TOP,RIGHT,BOTTOM);
setcolor(BROWN);
settextstyle(0,0,2);
outtextxy(LEFT,TOP+40,"Aplication of Snowwin");
settextstyle(1,0,1);
outtextxy(LEFT+100,TOP+140,"by Cui Guangwei");
getch();
}
//下面还有呢
zhangfjj
2004-04-07
打赏
举报
回复
即是初学者
还是要看看书,才行的
建议用王士元
清华出的C高级实用程序设计一书
rorot
2004-04-07
打赏
举报
回复
菜单窗口(TC3.0)
---------------------
#include <conio.h>
// 画出窗口
void window_3d(int x1, int y1, int x2, int y2, int bk_color, int fo_color)
{
textbackground(BLACK);
window(x1, y1, x2, y2);
clrscr();
textbackground(bk_color);
textcolor(fo_color);
window(x1-1, y1-1, x2-1, y2-1);
clrscr();
}
int main()
{
int out = 0;
char ch;
directvideo = 0;
textmode(3);
clrscr();
while (out != 1)
{
textbackground(WHITE);
textcolor(BLACK);
window(1, 1, 80, 25);
clrscr();
gotoxy(12, 5);
printf( " MENU CHOICE\n");
gotoxy(10, 7);
printf( "'w' Write Student Message" );
gotoxy(10, 8);
printf( "'v' View Student Message" );
gotoxy(10, 9);
printf( "'q' Quit " );
gotoxy(10, 11);
printf( "YOUR CHOICE: " );
scanf ( "%c", &ch );
switch(ch)
{
case 'w':
clrscr();
window_3d(50, 6, 70, 10, GREEN, WHITE);
printf( " Write Message");
gotoxy(1,3);
printf( " Press any key" );
getch();
break;
case 'v':
clrscr();
window_3d(50, 14, 70, 18, BLUE, WHITE);
printf( " Student Message" );
gotoxy(1, 3);
printf( " Press any key" );
getch();
break;
case 'q':
out = 1;
break;
}
}
return 0;
}
c语言
图形
编程
教程
c语言
图形
编程
教程
c语言
图形
编程
教程
c语言
图形
编程
教程
c语言
图形
编程
教程
c语言
图形
编程
教程
c语言
图形
编程
教程
c语言
图形
编程
教程
Linux下
c语言
的
图形
编程
[参考].pdf
Linux下
c语言
的
图形
编程
[参考].pdf
C语言
基础
一、
C语言
自我YY1)、
C语言
是许多高级计算机语言的基础,学好
C语言
能更好的学习其他高级语言,为以后的学习打基础;往深学
C语言
的话那就是学到C在Linux里的应用,Linux十分强大。2)、
C语言
是一种计算机程序设计语言。具有高级语言的特点,又具有汇编语言的特点。
C语言
可作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。3)、应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到
C语言
,适于编写系统软件,三维,二维
图形
和动画。具体应用比如单片机以及嵌入式系统开发。4)、
C语言
是面向过程语言,
C语言
通过windows/linux平台下编译的,是直接运行在windows/linux平台下的,而XX始终是运行在他的虚拟机之上的;所以理论上
C语言
能做一些相对于比较底层的工作,像XX就不能编写Windows病毒。5)、如果要利用
编程
来做一些windows优化工作的话,建议还是利用
C语言
。
C语言
是目前世界上流行、使用最广泛的高级程序设计语言6、很多编译器,几乎所有操作系统Windows,Linux,Unix的大部分代码都是C,C在背后做了很多东西的,也许开发游戏用C++,安卓用XX更为合适,
图形
界面的用其他语言开发效率更高一些(因为他们封装了很多东西),但同样的原因导致略微接近底层的功能其他语言根本干不了!Windows的API都是按照
C语言
的格式给的,这也很能说明问题!嵌入式开发更是离不了
C语言
!纵观电脑发展几十年,C语无所不能呀!
C语言
图形
编程
(非常详细)
C语言
图形
编程
C语言
图形
编程
C语言
图形
编程
C语言
图形
编程
C语言
图形
编程
技术
C语言
图形
编程
技术
C语言
图形
编程
技术
C语言
图形
编程
技术
C语言
图形
编程
技术
C语言
图形
编程
技术
C语言
图形
编程
技术
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章