标题:烟花代码的问题
只看楼主
何以为孤
Rank: 2
等 级:论坛游民
帖 子:61
专家分:10
注 册:2017-10-7
结帖率:89.47%
已结贴  问题点数:20 回复次数:8 
烟花代码的问题
#include<graphics.h>
#include<conio.h>
#include<stdio.h>
#include<time.h>

#define NUM 13

//烟花弹的结构体
struct JET
{
    int x,y;  //发射高度
    int hx,hy;//最高点
    int height;//烟花高度
    bool shoot;//是否发射


    DWORD  t1,t2,dt;//发射速度
    IMAGE img[2];//储存一亮一暗的图片
    byte  n : 1;//图片的下标
}Jet[NUM];

//包含库文件
#pragma  comment(lib,"winmm.lib")//播放音乐

//全局函数的声明
void Welcome();
void Load_Image();   //加载图片
void Init_Fire(int i);//初始化
void chose(DWORD& t1);//筛选烟花


int main()//主函数
{
    initgraph(1200,800);//初始化一个图形界面
    srand(unsigned int (time(NULL)));  //随机因子
    Welcome();

    DWORD t1=timeGetTime();//筛选烟花
    for(int i=0;i<NUM;i++)
    {
        Init_Fire(i);


    }
    Load_Image();

    BeginBatchDraw();//开始批量绘图
    while(!kbhit())
    {
        Sleep(50);
        chose(t1);
        FlushBatchDraw();

    }
    closegraph();
    return 0;
   
   


}
//欢迎界面
void Welcome()
   

{//播放背景音乐
    mciSendString("open ./fire/bk.mp3 alias bk",0,0,0);//获取音乐的文件的路径
    mciSendString("play bk repeat",0,0,0);




    //文字的输出
    settextstyle(50,0,"楷体");//设置字体风格
    setcolor(YELLOW);  //设置字体颜色
    outtextxy(480,100,"衣");//在指定坐标输出文字
    outtextxy(440,150,"欢迎");


    settextstyle(25,0,"楷体");
    getchar();
    cleardevice();
    outtextxy(400,250,"你 好");
    outtextxy(400,300,"不好");
    outtextxy(400,350,"不喜欢");
    outtextxy(400,400,"喜欢");
    outtextxy(400,450,"还可以");
    outtextxy(400,500,"一般般");
    outtextxy(400,550,"还有谁");


getch();
   
}
//思路:1,加载图片  2,初始化  3.循环并改变坐标  4.逻辑判断







void Load_Image()

{    //加载烟雾弹
    IMAGE sm;
    loadimage(&sm,"./fire/shoot.jpq",200,50);

    for(int i=0;i<13;i++)
    {
   
    SetWorkingImage(&sm);   //设置回绘窗口
    int n=rand()%5;

    getimage(&Jet[i].img[0],n*20,0,20,50);    //暗的图片
    getimage(&Jet[i].img[1],(n=5)*20,0,20,50);//亮的图片


    }
   SetWorkingImage();

}

//初始化
void Init_Fire(int i)
{
   

        Jet[i].x=-240;
        Jet[i].y=-240;
        Jet[i].hx=-240;
        Jet[i].hy=-240;
        Jet[i].height=0;
        Jet[i].t1=-timeGetTime();
        Jet[i].dt=rand()%10;
        Jet[i].n=0;
        Jet[i].shoot=false;
}

//筛选烟花
void chose(DWORD& t1)
{
DWORD t2=timeGetTime();
if(t2-t1>100)
{
    int n=rand()&20;
        if(n<13)
        {
            Jet[n].x=rand()%1200;
            Jet[n].y=rand()%100+600;
            Jet[n].hx=Jet[n].x;
            Jet[n].hy=rand()%400;
            Jet[n].hy=Jet[n].y-Jet[n].hy;
            putimage(Jet[n].x,Jet[n].y,&Jet[n].img[Jet[n].n],SRCINVERT);
        }
}




}


为什么不能显示出烟花的效果,,
这是错误,能帮我改一下么,谢谢
搜索更多相关主题的帖子: JET int 图片 void rand 
2017-10-15 23:42
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
_WinMain@16 这个东东貌似是窗体程序的入口标志  莫非你创建的不是控制台程序

DO IT YOURSELF !
2017-10-16 08:55
何以为孤
Rank: 2
等 级:论坛游民
帖 子:61
专家分:10
注 册:2017-10-7
得分:0 
回复 2楼 wp231957
我创建的是一个窗口
2017-10-16 09:53
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:20 
回复 3楼 何以为孤
但是你的代码是控制台模式

DO IT YOURSELF !
2017-10-16 10:06
何以为孤
Rank: 2
等 级:论坛游民
帖 子:61
专家分:10
注 册:2017-10-7
得分:0 
回复 4楼 wp231957
我也不知道了,,,  这个怎么改??
2017-10-16 12:17
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
得分:0 
回复 5楼 何以为孤
win32应用控制台试试、?
2017-10-16 13:08
何以为孤
Rank: 2
等 级:论坛游民
帖 子:61
专家分:10
注 册:2017-10-7
得分:0 
回复 6楼 花脸
我用的就是win32的控制台
2017-10-16 13:11
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
以下是引用何以为孤在2017-10-16 12:17:07的发言:

我也不知道了,,,  这个怎么改??
这个取决你了

你的程序到底是在控制台下运行还是窗口下运行 他们的入口函数都不一样

举个简单的例子  windows自带的记事本 windows自带的扫雷游戏 啥的 这都归属于窗口运行

而控制台程序就是那个黑黑的控制台下运行的

DO IT YOURSELF !
2017-10-16 13:51
何以为孤
Rank: 2
等 级:论坛游民
帖 子:61
专家分:10
注 册:2017-10-7
得分:0 
回复 8楼 wp231957
好吧  谢谢   我在想想
2017-10-16 16:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-481450-1-1.html




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

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