为何加载烟花就换了一句,将图片加载进资源,结果运行中烟花不显示

为何将图片装载在资源中编译没任何错误,程序也可基本运行,资源中的图片不工作

#include     //标准的输入输出头文件

#include

#include //图形库头文件

#include

#pragma comment(lib,"winmm.lib")

#include "resource.h"

#include

#define NUM 13

#define  PI  3.1415926548

//烟花弹结构体

struct Jet

{

int x; //坐标

int y;

int hx; //最高的坐标 将赋值给烟花

int hy;

int height; //高度

bool shoot; //是否可以发射

DWORD t1, t2, dt;//烟花弹的上升速度

IMAGE img[2];    //一亮一暗两张图片

byte n : 1;      //图片下标 0 1  //位段 一个二进制位  int 32 float 32 short 16

}jet[13];

//烟花结构体

struct Fire

{

int x, y;            //坐标

int cen_x, cen_y;    //中心坐标

int width,height;    //图片的宽和高

int r;                //半径 从小变大

int max_r;            //最大的半径

int xy[240][240];   //像素点的集合

bool show;

bool draw;            //输出像素点

DWORD t1, t2, dt;

}fire[NUM];

void Init(int i);

void welcome();

void Load();

void Chose(DWORD& t1);

void shoot();

void Show(DWORD* pMem);

int main()

{

initgraph(1200, 800); //打开一个界面

welcome();

DWORD t1 = timeGetTime();

DWORD *pMem = GetImageBuffer();

//循环初始化13次

for (int i = 0; i < NUM; i++)

{

Init(i);

}

Load();

BeginBatchDraw();

while (!_kbhit())

{

Sleep(10);

for (int clr = 0; clr < 1000; clr++)

{

for (int j = 0; j < 2; j++)

{

int px1 = rand() % 1200;

int py1 = rand() % 800;

if (py1 < 799)

{

pMem[py1 * 1200 + px1] = pMem[py1 * 1200 + px1 + 1] = BLACK;

}

}

}

Chose(t1);

shoot();

Show(pMem);

FlushBatchDraw(); //吧显存展示出来

}

getchar();

closegraph();        //关闭界面

return 0;

}

void welcome()

{

//wav

//PlaySound((LPCTSTR)IDR_WAVE1, NULL, SND_RESOURCE | SND_LOOP | SND_ASYNC);

//MP3

mciSendString(L"open ./music/你还要我怎样.mp3 alias BGM", 0, 0, 0);

mciSendString(L"play BGM repeat", 0, 0, 0);

settextcolor(YELLOW);

//怎样得到一个圆的轨迹上的n个坐标。

for (int i = 0; i < 50; i++)

{

int x = 600 + int(180 * sin(PI * 2 * i / 60));

int y = 200 + int(180 * cos(PI * 2 * i / 60));

cleardevice();  //刷新 没有指定颜色 默认为黑色

settextstyle(i, 0, L"楷体");

outtextxy(x - 200, y, L"给:");

outtextxy(x + 50, y + 100, L"某某");

Sleep(25);

}

getchar(); //卡住

cleardevice();

settextstyle(25, 0, L"楷体");

outtextxy(400,150,L"XXXXXXXXXXXXXXXXXXX");

outtextxy(400, 150, L"XXXXXXXXXX");

outtextxy(400, 200, L"XXXXXXXXX");

outtextxy(400, 250, L"XXXXXXXXXXXXXXXXXX");

outtextxy(400, 300, L"XXXXXXXXXXXXXXXXXXXXXXXXXXX");

outtextxy(400, 350, L"XXXXXXXXXXXXXXXXXX");

outtextxy(400, 400, L"XXXXXXXXX");

outtextxy(400, 450, L"XXXXXXXXXXXXXXXXXXXXXXXXXXX");

outtextxy(400, 500, L"XXXXXXXXXXXXXXXXXX");

getchar();

}

void Init(int i)

{

int r[13] = { 120, 120, 155, 123, 130, 147, 138, 138, 130, 135, 140, 132, 155 };

int x[13] = { 120, 120, 110, 117, 110, 93, 102, 102, 110, 105, 100, 108, 110 };

int y[13] = { 120, 120, 85, 118, 120, 103, 105, 110, 110, 120, 120, 104, 85 };

//初始化烟花

fire[i].x = 0;

fire[i].y = 0;

fire[i].width = 240;

fire[i].height = 240;

fire[i].max_r = r[i];

fire[i].cen_x = x[i];

fire[i].cen_y = y[i];

fire[i].show = false;

fire[i].dt = 5;

fire[i].t1 = timeGetTime();

fire[i].r = 0;

//初始化烟花弹

jet[i].x = 0;

jet[i].y = 0;

jet[i].hx = 0;

jet[i].hy = 0;

jet[i].height = 0;

jet[i].t1 = timeGetTime();

jet[i].dt = rand() % 10;

jet[i].n = 0;

jet[i].shoot = false;

}

void Load()

{

//加载烟花

IMAGE fm,gm;

//loadimage(&fm, L"./images/bluexc/flower.jpg");//用这一句,使用文件中的图片可以显示

loadimage(&fm, RT_BITMAP, MAKEINTRESOURCE(IDB_BITMAP2));//换这一句,资源中的图片无法显示,请帮忙修改能运行,我需要将图片装载在资源中,说明程序运行需要装EASYX运行图新界面库

for (int i = 0; i < NUM; i++)

{

SetWorkingImage(&fm);  //工作---对象是一张图片

getimage(&gm, i * 240, 0, 240, 240);

SetWorkingImage(&gm);  //工作---对象是一张图片

for (int a = 0; a < 240; a++)

{

for (int b = 0; b < 240; b++)

{

fire[i].xy[a][b] = getpixel(a, b);

}

}

}

//加载烟花弹

IMAGE jm;

loadimage(&jm, L"./images/shoot.jpg");

//jm 里面保存了一整张图片 分隔开来

for (int i = 0; i < NUM; i++)

{

SetWorkingImage(&jm);  //工作---对象是一张图片

int n = rand() % 5;    //0-4

getimage(&jet[i].img[0], n * 20, 0, 20, 50);

getimage(&jet[i].img[1], (n + 5) * 20, 0, 20, 50);

}

SetWorkingImage(NULL); //放弃掉刚才的工作区域。

//零基础 条件选择  循环。

}

//选出13个

void Chose(DWORD& t1)

{

DWORD t2 = timeGetTime();

if (t2 - t1 > 100)

{

int n = rand() % 20;

if (n < NUM&&jet[n].shoot == false&&fire[n].show==false)

{

jet[n].x = rand() % 1200;

jet[n].y = rand() % 100 + 600; //600-699

jet[n].hx = jet[n].x;

jet[n].hy = rand() % 400;

jet[n].height = jet[n].y - jet[n].hy;

jet[n].shoot = true;

putimage(jet[n].x, jet[n].y, &jet[n].img[jet[n].n], SRCINVERT);

}

t1 = t2;

}

}

void shoot()

{

for (int i = 0; i < NUM; i++)

{

jet[i].t2 = timeGetTime();

if (jet[i].t2 - jet[i].t1>jet[i].dt&&jet[i].shoot == true)

{

putimage(jet[i].x, jet[i].y, &jet[i].img[jet[i].n], SRCINVERT);

if (jet[i].y > jet[i].hy)

{

jet[i].n++; //明暗交替的效果

jet[i].y -= 5;

}

putimage(jet[i].x, jet[i].y, &jet[i].img[jet[i].n], SRCINVERT);

//

if (jet[i].y <= jet[i].hy)

{

putimage(jet[i].x, jet[i].y, &jet[i].img[jet[i].n], SRCINVERT);

fire[i].x = jet[i].hx + 10;

fire[i].y = jet[i].hy;

fire[i].show = true;

jet[i].shoot = false;

}

jet[i].t1 = jet[i].t2;

}

}

}

void Show(DWORD* pMem) //显存指针  像素 这里面所有的像素点的集合

{

//3D游戏 地形 天空 显存来做

int drt[16] = { 5, 5, 5, 5, 5, 5, 25, 25, 25, 25, 55, 55, 55, 55, 55, 55 };

for (int i = 0; i < NUM; i++)

{

fire[i].t2 = timeGetTime();

if (fire[i].t2 - fire[i].t1>fire[i].dt&&fire[i].show == true)

{

if (fire[i].r < fire[i].max_r)

{

fire[i].r++;

fire[i].dt = drt[fire[i].r / 10];

fire[i].draw = true;

}

if (fire[i].r >= fire[i].max_r-1)

{

fire[i].draw = false;

Init(i);

}

fire[i].t1 = fire[i].t2;

}

if (fire[i].draw)

{

for (double a = 0; a <= 6.28; a += 0.01)

{

int x1 = (int)(fire[i].cen_x + fire[i].r*cos(a));

int y1 = (int)(fire[i].cen_y + fire[i].r*sin(a));

if (x1 > 0 && x10 && y1 < fire[i].height)

{

int b = fire[i].xy[x1][y1] & 0xff;

int g = (fire[i].xy[x1][y1] >> 8) & 0xff;

int r = (fire[i].xy[x1][y1] >> 16);

int xx = (int)(fire[i].x + fire[i].r*cos(a));

int yy = (int)(fire[i].y - fire[i].r*sin(a));

if (r>0x20 && g > 0x20 && b > 0x20 && xx > 0 && xx<1200 && yy>0 && yy < 800)

pMem[yy * 1200 + xx] = BGR(fire[i].xy[x1][y1]);

}

}

fire[i].draw = false;

}

}

}

c语言运行不显示图片,为何加载烟花就换了一句,将图片加载进资源,结果运行中烟花不显示...相关推荐

  1. android异步加载图片并缓存到内存和sd卡上,Android批量图片加载经典系列——采用二级缓存、异步加载网络图片...

    http://www.cnblogs.com/jerehedu/p/4560119.html 2015-06-08 09:20 by 杰瑞教育, 232 阅读, 1 评论, 收藏, 编辑一.问题描述 ...

  2. rp原型中鼠标悬停显示图片_悬停状态原型4种方式

    rp原型中鼠标悬停显示图片 There are tons of options available for UX designers to prototype a user experience an ...

  3. Android中WebView加载sdcard中的html显示

    场景 Android中使用WebView加载本地html并支持运行JS代码和支持缩放: Android中使用WebView加载本地html并支持运行JS代码和支持缩放_BADAO_LIUMANG_QI ...

  4. Android中使用WebChromeClient显示Openlayers加载本地GeoJson文件显示地图(跨域问题解决)

    场景 Openlayers中加载GeoJson文件显示地图: Openlayers中加载GeoJson文件显示地图_BADAO_LIUMANG_QIZHI的博客-CSDN博客 上面加载显示GeoJso ...

  5. OpenGL3.x,4.x中使用FreeImage显示图片的BUG-黑色,或颜色分量顺序错乱

    OpenGL3.x,4.x中使用FreeImage显示图片的BUG-黑色,或颜色分量顺序错乱 1 //参照FreeImage官网给出的CTextrueManager写的加载函数 2 //官方给的例子是 ...

  6. jsp中不能正常显示图片+不能正常显示bootstrap字体图标

    一直以来,bootstrap框架下的轮播图在jsp中不能正式显示,我本以为是配置问题,导致bootstrap和jsp不一样. 话不多说,上图: 前期: 这是一个轮播图,可以看到第一:图片不能显示,我的 ...

  7. Ubuntu中Python无法显示图片

    Ubuntu中Python无法显示图片 显示错误是UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, ...

  8. tsc : 无法加载文件 S:\DEVNVM\nodejs\tsc.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink

    关于在学习typescript时使用vscode的终端利用命令tsc 文件名.ts进行ts文件的编译时会出现类似的报错: tsc : 无法加载文件 S:\DEVNVM\nodejs\tsc.ps1,因 ...

  9. R语言ggplot2可视化箱图(boxplot)时忽视异常值(outlier)并重新分配坐标轴的范围是的可视化的箱图可以有效显示箱体实战

    R语言ggplot2可视化箱图(boxplot)时忽视异常值(outlier)并重新分配坐标轴的范围是的可视化的箱图可以有效显示箱体实战 目录

最新文章

  1. 2019 年,19 种方法让自己成为更好的 Node.js 工程师
  2. 要买东西,要买好的,提高效率,经常用的
  3. 【数据结构与算法】实验 编写双链表的结点查找和删除算法
  4. 文档丨Oracle 20c 概念手册
  5. 18.外部相机校准——旋转(Rotation),R是什么样子的,绕Z轴旋转的例子,齐次坐标旋转_2
  6. 洛克人红色思考型机器人叫什么_如何让机器人“好好说话”?
  7. opencv移植到ubuntu
  8. 39. 二叉树的深度(C++版本)
  9. iPhone Web App及优缺点【书摘】
  10. 【报告分享】笔记本行业营销洞察白皮-腾讯x京东(附下载)
  11. JDK11 JAVA11下载安装与快速配置环境变量教程
  12. 一文看懂AutoML
  13. OpenGL入门学习
  14. 虚拟机无法连接到图形服务器,vmware vsphere client无法连接到服务器
  15. Excel如何统计数据个数
  16. 广度优先搜索(BFS)最短路径输出表示(三种方法)
  17. 澳大利亚大学着眼于不断增长的中国市场,将在迪拜推出全球奢侈品管理学位
  18. 使用FFmpeg实现rtmp播放和音视频同步
  19. 一夜爆红的BeReal,到底是年轻人的叛逆还是社交的新潮向?
  20. 亲测好用!四款ps小白也能用的宣传印刷物料!

热门文章

  1. 日语语法实践篇十二——新编日语第一册第十三课之会话篇
  2. 【POJ 3179】 Corral the Cows
  3. MBI5020 LED驱动
  4. 写.dbc文件教程及注意点
  5. 全网最全面的npm包管理学习
  6. 窥探Flutter的前世今身
  7. LeetCode算法刷题-URL化和重新排列字符串
  8. 小米蒸排骨+炒红萝卜丝+苦瓜炒蛋
  9. 笔记本usb转vga外连显示器问题解决记录
  10. 一个破解共存版微信个破解共存版微信