码迷,mamicode.com
首页 > 其他好文 > 详细

一. 透明坦克跑起来

时间:2020-05-02 19:19:24      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:main函数   color   mil   href   文件   防止   ges   遮罩   ide   

说明: 我使用的是visual Studio 2019,安装的是Easyx这个库。

推荐一篇透明贴图的博客。  详解透明贴图和三元光栅操作

1创建一个Image文件夹,存放坦克图片(main函数放在TANKTEST里了)

技术图片

 

 资源在这里

 技术图片技术图片技术图片 技术图片

 

 技术图片技术图片技术图片 技术图片

 

2.然后就是一些 EasyX库(graphics.h)  函数的使用,看不懂建议去翻EasyX的帮助文档,贴下代码。

#include<graphics.h>
#include<iostream>
#include<stdlib.h> 
#include<time.h> 
#include <string>
#define KEY_DOWN(VK_NONAME) (GetAsyncKeyState(VK_NONAME) & 0x8000)   //一个键是否按下 

int  r = 168, g = 168, b = 168 , x = 500, y = 300;
void transparentimage(int x, int y, IMAGE* srcimg, IMAGE* maskimg)//三元光栅贴透明图
{
    putimage(x, y, maskimg, SRCAND);  //遮罩图片
    putimage(x, y, srcimg, SRCPAINT);
}
int main() {
    //图片加载
    IMAGE pic[4], mask[4],ImageShow , ImageMask;
    loadimage(&mask[0], _T("Image\\player_hide0_up.png"), 60, 60, false);
    loadimage(&mask[1], _T("Image\\player_hide0_down.png"), 60, 60, false);
    loadimage(&mask[2], _T("Image\\player_hide0_left.png"), 60, 60, false);
    loadimage(&mask[3], _T("Image\\player_hide0_right.png"), 60, 60, false);
    loadimage(&pic[0], _T("Image\\player1_0_up1.png"), 60, 60, false);
    loadimage(&pic[1], _T("Image\\player1_0_down1.png"), 60, 60, false);
    loadimage(&pic[2], _T("Image\\player1_0_left1.png"), 60, 60, false);
    loadimage(&pic[3], _T("Image\\player1_0_right1.png"), 60, 60, false);
    ImageShow = pic[0], ImageMask = mask[0];

    initgraph(800, 600);  //创建绘图窗口
    BeginBatchDraw();  //防止坦克闪烁
    while (1) {
        r += rand() % 10 - 5, g += rand() % 10 - 5, b += rand() % 10 - 5;  //调渐变
        setbkcolor(RGB(r,g,b));  //设置背景色
        cleardevice();  //背景色填充
        if (KEY_DOWN(W)) {
            y -= 2;
            ImageShow = pic[0], ImageMask = mask[0];
        }
        else if (KEY_DOWN(S)) {
            y += 2;
            ImageShow = pic[1], ImageMask = mask[1];
        }
        else if (KEY_DOWN(A)) {
            x -= 2;
            ImageShow = pic[2], ImageMask = mask[2];
        }
        else if (KEY_DOWN(D)) {
            x += 2;
            ImageShow = pic[3], ImageMask = mask[3];
        }
        //putimage(300, 300, &pic);  //普通的贴图
        transparentimage(x, y, &ImageShow, &ImageMask);
        FlushBatchDraw();  //防止坦克闪烁
        Sleep(10);
    }
    EndBatchDraw();  //防止坦克闪烁

    //system("pause");
    closegraph();
    return 0;
}

3 运行截图

技术图片

 

 技术图片

              又要被带飞了好开心

DLS技术图片

  

详解透明贴图和三元光栅操作

一. 透明坦克跑起来

标签:main函数   color   mil   href   文件   防止   ges   遮罩   ide   

原文地址:https://www.cnblogs.com/SunChuangYu/p/12818775.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!