OpenCV小游戏-《跑跑卡丁车》项目实践-3
阶段任务一
1、问题引入
如何实现让角色出现在背景上
2、简介
通过Mat像素访问的方法,使得两张图片重叠显示
3、知识点
Mat像素访问的方法的应用
1)、基本任务
实现两张图像的重叠显示
示例代码:
#include "iostream"
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main() {// 读入一张图片Mat img = imread("./img/map/map1.png");Mat carImg = imread("./img/car/uupoop1.png");// 创建一个名为 "img" 窗口printf("%d %d %d %d", img.cols, img.rows ,img.channels(), img.depth());int posX = 200;int posY = 200;for (int h = 0; h < carImg.rows; h++) {for (int w = 0; w < carImg.cols ; w++) {Vec3b & carPixel = carImg.at<Vec3b>(h, w);uchar *ptr = img.ptr<uchar>(posX + h, posY + w);ptr[0] = carPixel[0];ptr[1] = carPixel[1];ptr[2] = carPixel[2];}}namedWindow("img");// 在窗口中显示图片imshow("img", img);// 等待 6000 ms 后窗口自动关闭waitKey(0);destroyWindow("img");img.release();
}
运行结果:
2)、扩展任务
实现两张图像的半透明交叠显示
运行结果:
阶段任务二
1、问题引入
如何实现角色在背景上的抠图显示;
2、简介
通过Mat像素访问的方法,使得两张图片透明显示;
3、知识点
Mat像素访问的方法的应用
注意:像素各个颜色值存放的位置顺序
1)、基本任务
实现游戏角色的抠图显示
示例代码:
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main() {Mat img = imread("./img/map/map1.png");Mat carImg = imread("./img/car/uupoop1.png");// 创建一个名为 "img" 窗口printf("%d %d %d %d", img.cols, img.rows, img.channels(), img.depth());int posX = 200;int posY = 200;for (int h = 0; h < carImg.rows; h++) {for (int w = 0; w < carImg.cols; w++) {Vec3b & carPixel = carImg.at<Vec3b>(h, w);uchar *ptr = img.ptr<uchar>(posX + h, posY + w);if ((carPixel[0] == 0) && (carPixel[1] == 255) && (carPixel[2] == 0))continue;ptr[0] = carPixel[0];ptr[1] = carPixel[1];ptr[2] = carPixel[2];}}namedWindow("img");// 在窗口中显示图片imshow("img", img);// 等待 6000 ms 后窗口自动关闭waitKey(0);destroyWindow("img");img.release();
}
运行结果:
2)、扩展任务
i、实现多角色图像的抠图显示
ii、抽象出透明贴图的函数
OpenCV小游戏-《跑跑卡丁车》项目实践-3相关推荐
- 小游戏推广项目,适合新手操作的网路项目
大家可能都玩过游戏,像之前的网页游戏,到现在的手机游戏. 另外,大家在玩游戏或浏览网页,会碰到很多游戏推广的广告. 有广告,就有赚钱的门路. 不知道大家是否了解游戏推广项目? 其实做游戏推广还是蛮赚钱 ...
- 用html+css+js实现中国象棋小游戏开发项目
用html+css+js中国象棋小游戏开发项目 最近刚学习完JS的相关课程,跟着老师做了两个小游戏项目,就已经抑制不住内心的小激动,想着要迫不及待的着手准备做一个网页小游戏--中国象棋 由于从小就比较 ...
- OpenCV小游戏-《跑跑卡丁车》项目实践-1
基于opencv的小游戏开发 使用c++库opencv开发小游戏.以简单的图像处理和应用为载体的项目训练,对专业基础要求较低. 项目的基本完成界面如下: opencv的官方说明 OpenCV是一个基于 ...
- Unity3d 微信小程序(小游戏)项目实现流量主接入功能(含源码)
前言 很早之前编写了Unity导出微信小游戏的博客,也尝试自己做了个Demo上线了,基本没更新过,不过几个月的时间,用户超过了一千,可以开通流量主了,大概率是因为上篇的帖子浏览量大了,扫码体验的人多, ...
- 围住神经猫C++/C简单实现网页小游戏【课程实践】
每天一个C语言小项目,提升你的编程能力! 一.游戏说明 本游戏仿造 4399 的小游戏-围住神经猫. 游戏操作:通过鼠标点击操作,设置路障,围住神经猫,当成功围住神经猫时,游戏胜利.当神经猫逃离地图边 ...
- 一个跑酷小游戏的项目总结
刚入职,项目经理要求我写一个跑酷小游戏,想看看我写代码水平 主要讲思路和问题 然后再问自己关于这个项目,想问的3个问题 思路 开始没有思路,给我看了微信比较火的猛男高跟鞋,但是人家是3d做的,我一定灵 ...
- 小游戏类项目 —— 扫雷
系列文章目录 五子棋游戏 扫雷游戏实现 文章目录 系列文章目录 前言 一.创建文件 二.实现 1.游戏的基本界面 2.实现Game函数 1.初始化 2.打印扫雷游戏 3.设置地雷 5.排查地雷 1.查 ...
- 小游戏类项目 —— 五子棋游戏
目录 第一步编写界面 1.构思 2.功能的实现 第二步编写游戏内容 1.游戏的框架 2.功能的实现 第三步编写电脑玩家 1.分类 2.输出顺序 总结 第一步编写界面 1.构思 我们平时玩游戏并非打开它 ...
- 基于CQRS的架构在答题PK小游戏中的实践案例
1. 前言 \\ 领域驱动设计(Domain-Driven Design,下文简称 DDD)在微服务时代成为了风口话题,而在 DDD 领域,我们常常看到命令查询与职责分离(Command and Qu ...
最新文章
- 盘点:2020年PMCAFF最受欢迎的文章!
- docker中使用golang:alpine镜像制作开启goweb的dockerfile
- linearregression_机器学习-TensorFlow建模过程 Linear Regression线性拟合应用
- python怎么制作图像_python数字图像处理(5):图像的绘制
- 事务失败返回_什么是分布式事务以及有哪些解决方案?
- opencv1-安装及资料
- python显示代码行数_python实现的代码行数统计代码
- “项目运行时出错,无法启动调试。绑定句柄无效”的解决办法
- 端口镜像 流量过滤_在 AWS 云环境中滥用 VPC 流量镜像抓取网络流量
- 河北大学计算机专业排名第几,河北国家一流专业排名,河北大学和燕山大学各13个,华北电力7个...
- 【暴力】LeetCode 300. Longest Increasing Subsequence
- python plot坐标轴_修改python plot折线图的坐标轴刻度方法
- Python基础—文件操作
- 微信/qq消息-定时自动循环发送
- “Flash闪存”基础 及 “SD NAND Flash”产品的测试
- APT,EPT,ET,DPD含义与理解
- 本地计算机无法设置共享文件夹,win10系统下共享文件夹无法访问的解决方法
- 2022中国消费者洞察
- EXCEL表格转化为XML格式文件
- android数字滚动动画,数字滚动效果 RollingText