快速业务通道

简单图形模拟吃豆游戏

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-29

这个程序主要是想了下怎么样让游戏中的敌人自己行走,但是又不会固定在两点来回徘徊,我用的方法是随机方向,而且走的一步不可以和前一部的方向相反,希望高手们多多指点.也希望高手们可以指教下编写简单游戏的一些技术.

#include "graphics.h"
    #include "stdlib.h"
    #include "dos.h"
    #include "bios.h"
    #define LEFT 0x4b00
    #define RIGHT 0x4d00
    #define DOWN 0x5000
    #define UP 0x4800
    #define ESC 0x011b
    #define ENTER 0x1c0d
    /*2墙壁,1可以移动地方,3自己,4敌人*/
    int a[15][20]={2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
                   2,1,1,0,0,0,1,0,1,0,0,0,1,1,1,1,1,1,0,2,
                   2,1,2,2,2,1,1,2,1,1,0,0,0,1,1,4,1,1,0,2,
                   2,1,1,0,2,1,1,2,0,1,1,2,2,2,2,2,0,0,0,2,
                   2,4,1,0,2,1,1,2,1,1,1,0,1,1,1,1,0,1,1,2,
                   2,1,2,1,2,1,1,2,1,3,2,2,1,1,1,1,2,2,1,2,
                   2,1,2,1,2,1,1,1,1,1,1,1,1,0,0,0,1,1,1,2,
                   2,1,2,1,0,1,1,1,1,2,1,0,1,2,2,2,1,1,1,2,
                   2,1,0,1,0,1,2,1,1,2,1,0,1,2,1,1,4,1,1,2,
                   2,1,0,2,0,1,2,1,1,2,1,0,1,2,1,1,1,1,1,2,
                   2,1,0,2,1,1,2,1,1,2,1,0,2,2,1,0,0,0,1,2,
                   2,1,1,2,1,1,2,1,1,2,1,0,2,1,1,2,2,1,1,2,
                   2,1,2,2,1,2,2,1,1,1,1,0,1,4,1,2,0,0,1,2,
                   2,1,0,0,0,0,0,4,0,1,1,0,1,1,1,1,0,0,1,2,
            2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};/*数组就是地图*/
    strUCt play /*游戏中人物的结构体*/
    {
     int x;
     int y;
    };
    struct play you,them[5];
    int sum=0;/*统计吃的豆子个数,吃满50颗就算胜利*/
    int xx[5][2];/*判断敌人方向用的结构体*/
    int false=0;
    void TimeDelay(unsigned long microsec) /*延时函数 传入微秒数*/
    {
     union REGS r;
     r.h.ah=0x86;
     r.x.cx=microsec>>16;
     r.x.dx=microsec;
     int86(0x15,&r,&r);
    }
    drawblackdou(int x,int y)/*吃豆子的函数*/

    begain()/*开始函数*/
    {int i,j;
     sleep(1);
     for(i=0;i<15;i++)
      for(j=0;j<20;j++)
       if(a[i][j]==2)/*代表墙壁*/
        {
         setfillstyle(SOLID_FILL,BLUE);
         bar(100+j*20-10,100+i*20+10,100+j*20+10,100+i*20-10);
        }
       else if(a[i][j]==3)/*代表自己*/
        {
         setcolor(RED);
         circle(100+j*20,100+i*20,9);
        }
       else if(a[i][j]==4)/*代表敌人*/
        {
         setcolor(GREEN);
         circle(100+j*20,100+i*20,9);
        }
       else if(a[i][j]==0)/*代表豆子*/
       {
        setcolor(YELLOW);
        circle(100+j*20,100+i*20,3);

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号