pure c语言用法,12月4日_给大一小孩儿写的贪食蛇(纯C语言)_By PureMilk

#include#include#include#include#includeintx,y;intkey=GLUT_KEY_RIGHT;intsnake[100][2];intlen=5;voidmyDisplay(void)

{

glClear( GL_COLOR_BUFFER_BIT );

glColor3f(1.0f,1.0f,1.0f);for(inti=0; i

{

glRecti( snake[i][0], snake[i][1], snake[i][0]+1, snake[i][1]+1);

}

glColor3f(1.0f,0.0f,0.0f);

glRecti( x, y, x+1, y+1);

glutSwapBuffers();

}intHit(intx,inty )

{inti;for( i=0; i

{if( snake[i][0]==x&&snake[i][1]==y )

{return1;

}

}return0;

}intEat(inta,intb )

{if( a==x&&y==b )

{do{

x=rand()%64;

y=rand()%48;

}while( Hit(x,y) );return1;

}return0;

}voidAdd(inta,intb )

{

snake[len][0]=a;

snake[len][1]=b;++len;

}voidMove(intx,inty )

{inti;for( i=0; i

{

snake[i][0]=snake[i+1][0];

snake[i][1]=snake[i+1][1];

}

snake[len-1][0]=x;

snake[len-1][1]=y;

}voidStep(void)

{switch( key )

{caseGLUT_KEY_RIGHT:if( Hit( snake[len-1][0]+1, snake[len-1][1] )==1)

{

exit(0);

}elseif( Eat( snake[len-1][0]+1, snake[len-1][1] ) )

{

Add( snake[len-1][0]+1, snake[len-1][1] );

}else{

Move( snake[len-1][0]+1, snake[len-1][1] );

}break;caseGLUT_KEY_LEFT:if( Hit( snake[len-1][0]-1, snake[len-1][1] )==1)

{

exit(0);

}elseif( Eat( snake[len-1][0]-1, snake[len-1][1] ) )

{

Add( snake[len-1][0]-1, snake[len-1][1] );

}else{

Move( snake[len-1][0]-1, snake[len-1][1] );

}break;caseGLUT_KEY_UP:if( Hit( snake[len-1][0], snake[len-1][1]+1)==1)

{

exit(0);

}elseif( Eat( snake[len-1][0], snake[len-1][1]+1) )

{

Add( snake[len-1][0], snake[len-1][1]+1);

}else{

Move( snake[len-1][0], snake[len-1][1]+1);

}break;caseGLUT_KEY_DOWN:if( Hit( snake[len-1][0], snake[len-1][1]-1)==1)

{

exit(0);

}elseif( Eat( snake[len-1][0], snake[len-1][1]-1) )

{

Add( snake[len-1][0], snake[len-1][1]-1);

}else{

Move( snake[len-1][0], snake[len-1][1]-1);

}break;default:break;

}

}voidmyKey(intk,intnot_use,intnot_use1 )

{switch( k )

{caseGLUT_KEY_DOWN:if( key!=GLUT_KEY_UP )

{

key=k;

Step();

}break;caseGLUT_KEY_UP:if( key!=GLUT_KEY_DOWN )

{

key=k;

Step();

}break;caseGLUT_KEY_LEFT:if( key!=GLUT_KEY_RIGHT )

{

key=k;

Step();

}break;caseGLUT_KEY_RIGHT:if( key!=GLUT_KEY_LEFT )

{

key=k;

Step();

}break;default:break;

}

glutPostRedisplay();

}voidInit(void)

{inti;for( i=0; i

{

snake[i][0]=i;

snake[i][1]=0;

}

srand( GetTickCount() );do{

x=rand()%64;

y=rand()%48;

}while( Hit(x,y) );

}intmain(intargc,char*argv[] )

{

Init();

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE);

glutInitWindowPosition(100,100);

glutInitWindowSize(640,480);

glutCreateWindow("第一个OpenGL程序");

glutSpecialFunc(&myKey );

glutDisplayFunc(&myDisplay);

gluOrtho2D(0,64,0,48);

glutMainLoop();return0;

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值