| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1214 人关注过本帖
标题:我想做一个类似雷电的游戏,现在想要子弹(符号是*)自动从飞机发射出去,怎 ...
取消只看楼主 加入收藏
菜鸡一只
Rank: 1
等 级:新手上路
帖 子:23
专家分:4
注 册:2014-12-31
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:4 
我想做一个类似雷电的游戏,现在想要子弹(符号是*)自动从飞机发射出去,怎么写啊
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>
#include<conio.h>
int map[50][40];
int x=25,y=30;
int ix,iy;
char key;
int Wait_Time=1;
int t=1;
clock_t Now_Time=clock();

void HideCursor();
void gotoxy(int x,int y);
void draw(int x,int y);
void plane();
void setmap();
void bullet(int x,int y);

void HideCursor()
{
    HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_CURSOR_INFO cursor_info={1,0};
    SetConsoleCursorInfo(hOut,&cursor_info);
}

void gotoxy(int x,int y)
{
    HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
    COORD pos{x,y};
    SetConsoleCursorPosition(hOut,pos);
}

void draw(int x,int y)
{
    gotoxy(x,y);
    printf("&");
}

void plane()
{
    int Wait_Time=1;
    if(clock()-Now_Time>=Wait_Time)
    {
        srand((unsigned)time(NULL));
        ix=rand()%25;
        iy=10;
        gotoxy(ix,iy);
        printf("$");
        Now_Time=clock();
    }
}

void bullet(int x,int y)
{
        if(clock()-Now_Time>=Wait_Time)
        {
            y=y-1;
            gotoxy(x,y);
            printf("*");
            Now_Time=clock();
        }
}


int main()
{
    system("mode con cols=50 lines=40");
    for(ix=0;ix<50;ix++)
    for(iy=0;iy<40;iy++)
    {
        map[ix][iy]=0;
    }
    draw(x,y);
    HideCursor();
    while(1)
    {
        plane();
        if(kbhit())
        {
            switch(getch())
            {
                case 'w':{gotoxy(x,y);printf(" ");map[x][y]=1;draw(x,--y);break;}
                case 's':{gotoxy(x,y);printf(" ");map[x][y]=1;draw(x,++y);break;}
                case 'a':{gotoxy(x,y);printf(" ");map[x][y]=1;draw(--x,y);break;}
                case 'd':{gotoxy(x,y);printf(" ");map[x][y]=1;draw(++x,y);break;}
            }
            if(map[x][y]==1)
            bullet(x,y);
        }

    }

}
搜索更多相关主题的帖子: include 游戏 
2015-01-10 20:07
菜鸡一只
Rank: 1
等 级:新手上路
帖 子:23
专家分:4
注 册:2014-12-31
收藏
得分:0 
回复 2楼 wmf2014
画图的那个函数不理解。。。什么OLDMAP还有什么a=32,48,42的是什么啊,本人大一,很多东西都不懂,太菜了。。。
2015-01-11 08:59
菜鸡一只
Rank: 1
等 级:新手上路
帖 子:23
专家分:4
注 册:2014-12-31
收藏
得分:0 
回复 5楼 wmf2014
没看懂为什么取消闪烁。。。。。。
2015-01-11 12:29
菜鸡一只
Rank: 1
等 级:新手上路
帖 子:23
专家分:4
注 册:2014-12-31
收藏
得分:0 
回复 7楼 wmf2014
哦!谢谢你!但是我现在加入了敌机这个元素,但是不知道为什么运行了一段时间之后飞机突然自动变形了!请问一下是为什么,然后怎么改。。
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>
#include<conio.h>
int map[50][40],oldmap[50][40];
clock_t Now_Time=clock();

void HideCursor();
void gotoxy(int x,int y);
void drawmap();
void setplane();

void HideCursor()
{
    HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_CURSOR_INFO cursor_info={1,0};
    SetConsoleCursorInfo(hOut,&cursor_info);
}

void gotoxy(int x,int y)
{
    HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
    COORD loc={x,y};
    SetConsoleCursorPosition(hOut,loc);
}
void drawmap()
{
    int x,y,j;
    char a,b;
    for(x=0;x<50;x++)
        for(y=0;y<40;y++)
        {
            gotoxy(x,y);
            j=map[x][y];
            if(j==0)
                a=' ';
            if(j==1)
                a='0';
            if(j==2)
                a='*';
            if(j==3)
                a='$';
            if(map[x][y]!=oldmap[x][y])
                {printf("%c",a);oldmap[x][y]=map[x][y];}

        }
}

void setplane(int x,int y)
{
    HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hOut,FOREGROUND_GREEN);
    int i,j;
    for(i=0;i<50;i++)
        for(j=0;j<40;j++)
            if(map[i][j]==1)
                map[i][j]=0;
    for(i=y;i<(y+6);i++)
        map[x][i]=1;
    for(i=x-3;i<x+4;i++)
        map[i][y+2]=1;
    map[x-1][y+5]=1;
    map[x+1][y+5]=1;
}

int main()
{
    srand((unsigned)time(NULL));
    int x,y,px=25,py=30,flag,ix,iy,m,score=0;
    long t1,t2,t3,t4;
    char a;
    system("mode con cols=80 lines=40");
    for(x=0;x<50;x++)
    for(y=0;y<40;y++)
    {
        map[x][y]=0;
        oldmap[x][y]=-1;
    }
    HideCursor();
    flag=true;
    drawmap();
    Now_Time=clock();
    t1=Now_Time;
    t2=Now_Time;
    t3=Now_Time;
    while(1)
    {

        Now_Time=clock();
        if(kbhit())
        {
            a=getch();
            if((a=='a')&&((px-3)>0))
                px=px-1;
            if((a=='s')&&((py+6)<40))
                py=py+1;
            if((a=='d')&&((px+3)<49))
                px=px+1;
            if((a=='w')&&(py>0))
                py=py-1;
            if(a=='p')
                flag=!flag;
        }
        if(flag)
        {
            setplane(px,py);
            if(Now_Time-t1>200)
            {
                map[px][py-1]=2;
                t1=Now_Time;
            }
            if(Now_Time-t2>30)
            {
                t2=Now_Time;
                for(x=0;x<50;x++)
                    for(y=0;y<40;y++)
                        if(map[x][y]==2)
                        {
                            map[x][y]=0;
                            if((y-1)>0)
                            map[x][y-1]=2;
                        }
            }
            if(Now_Time-t3>1000)
            {
                ix=rand()%44+3;
                iy=1;
                map[ix][iy]=3;
                t3=Now_Time;
            }
            if(Now_Time-t4>500)
            {
                t4=Now_Time;
                for(x=50;x>0;x--)
                for(y=40;y>0;y--)
                if(map[x][y]==3)
                {
                    map[x][y]=0;
                    if((y+1)<40)
                    map[x][y+1]=3;
                }
            }
            drawmap();
        }
    }
}
2015-01-12 16:30
菜鸡一只
Rank: 1
等 级:新手上路
帖 子:23
专家分:4
注 册:2014-12-31
收藏
得分:0 
回复 9楼 wmf2014
就是我这个代表敌机的符号$不是从最上面开始下来的吗,然后下到最底层的时候程序就乱了。。
2015-01-13 13:54
快速回复:我想做一个类似雷电的游戏,现在想要子弹(符号是*)自动从飞机发射出 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046546 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved