编程论坛's Archiver

无语的我 发表于 2007-5-4 19:58

SPACE的问题.

<P>#include &lt;conio.h&gt;<BR>#include &lt;stdio.h&gt;<BR>#include &lt;stdlib.h&gt; <BR>#include &lt;graphics.h&gt;<BR>#define LEFT 0x4b00<BR>#define RIGHT 0x4d00<BR>#define DOWN 0x5000<BR>#define UP 0x4800<BR>#define ESC 0x011b<BR>#define SPACE  0x39</P>
<P><BR>struct<BR>{<BR>    int x;<BR>    int y;<BR>}face;</P>
<P><BR>void initgr(void)<BR>{ <BR>int gd = DETECT, gm = 0;<BR>initgraph(&amp;gd, &amp;gm, "");<BR>}<BR>void Draw();<BR>void play();<BR>void Drawgun(int x,int y);<BR>int main(void) <BR>{ <BR>   initgr();<BR>   play();<BR>   closegraph();<BR>   getch(); <BR>   return 0; <BR>}</P>
<P>void Draw()<BR>{<BR>    int i;<BR>    setcolor(11);<BR>/*   setlinestyle(SOLID_LINE,0,THICK_WIDTH);*/<BR>   for(i=50;i&lt;=600;i+=10)<BR>   {<BR>      rectangle(i,40,i+10,49);<BR>      rectangle(i,451,i+10,460);<BR>   }<BR>  for(i=40;i&lt;=450;i+=10)<BR>  {<BR>     rectangle(50,i,59,i+10);<BR>     rectangle(601,i,610,i+10);<BR>  }<BR>}</P>
<P>void play()<BR>{<BR>   int key;<BR>   face.x=450;<BR>   face.y=200;<BR>   cleardevice();<BR>   setcolor(GREEN);<BR>   circle(face.x,face.y,15);<BR>   Draw();<BR>    while(1)<BR>    {<BR>        key=bioskey(0);<BR>        setcolor(BLACK);<BR>        switch(key)<BR>        {<BR>           case LEFT:   circle(face.x,face.y,15);<BR>                        face.x-=5;<BR>                        if(face.x&lt;79)<BR>                            face.x+=5;<BR>                        break;<BR>           case RIGHT:  circle(face.x,face.y,15);<BR>                        face.x+=5;<BR>                        if(face.x&gt;583)<BR>                            face.x-=5;<BR>                        break;<BR>           case DOWN:   circle(face.x,face.y,15);<BR>                        face.y+=5;<BR>                        if(face.y&gt;433)<BR>                            face.y-=5;<BR>                        break;<BR>           case UP:     circle(face.x,face.y,15);<BR>                        face.y-=5;<BR>                        if(face.y&lt;67)<BR>                            face.y+=5;<BR>                        break;<BR>           case SPACE:  Drawgun(face.x,face.y);<BR>                        break;<BR>           case ESC:    exit(0);<BR>        }<BR>        setcolor(GREEN);<BR>        circle(face.x,face.y,15);<BR>    }<BR>}</P>
<P>void Drawgun(int x,int y)<BR>{<BR>    int i;<BR>    setcolor(RED);<BR>    for(i=0;i&lt;200;i++)<BR>    {<BR>        circle(x+i,y,3);<BR>        setcolor(BLACK);<BR>        delay(10000);</P>
<P>        circle(x+i,y,3);<BR>        setcolor(RED);<BR>    }<BR></P>
<P>}<BR>好像执行不了Drawgun()这个函数.刚接触图形这方面的.<BR>哪个大哥帮下啊.</P>

奔跑的鸟 发表于 2007-5-4 21:46

你不用结构试试看,设个全局变量的x,y。<BR>你的程序里根本就没调用drawgun()函数,不知道是不是结构成员传递问题[em06]

无语的我 发表于 2007-5-5 11:07

<P>现在的问题是.执行不了那个case SPACE:这个语句.<BR></P>

奔跑的鸟 发表于 2007-5-5 11:18

我试了下,已确认,是你space编码不对,你可以改成0x1e61,然后按a注意是小写的,就可以了

无语的我 发表于 2007-5-5 17:55

谢谢.

奔跑的鸟 发表于 2007-5-5 19:02

8客气,你想做游戏的话,建议你的drawgun函数那种循环不要,放在play()函数里的while循环里,否则子弹动的时候其他东西都不能动的

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.