cocos2dx3.X项目重写(六)添加不同高度的地图和跳跃优化

cocos2d-x+Tiledmap中实现自由跳跃和移动 最近在学习cocos2d-x,遇到一个问题:在tiledMap中,怎么实现类似超级玛丽跳跃和移动那样的算法? 阅读详情

以前的时候,我的地图是一个水平的地平面,为了增加可玩性,在这一次我添加了随机出现的方块形地图,大小和高度都是随机的。
首先准备四张图图片,高度相同但是宽度不一样,作为随机出现的地图块。

那么问题来了,肯定是要在schedule的自定义函数中,添加地图块的,但是为了随机,首先得让前一块地图块的最右边划出屏幕的最右侧才可以出现第二块,在这个间隙,还得添加一个随机的时间以及随机的下一个地图块。我来一一说明我的解决办法。

首先肯定是建立地图类bigblock.cpp和bigblock.h文件,我的想法是让bigblock一生成就有两个效果,一个是向左移动,一个是随机添加一个资源(四个图片前面有准备好),第一个问题以前实现过,就是加schedule,不多说,第二个功能,为了让随机添加一个图片,我先自定义一个create函数

static bigblock* create();

那么这样就明了了,我把四个图片的名字作为字符串添加到数组,然后随机取一个传进去就好了。代码如下

bigblock* bigblock::create()
{

	bigblock* bb = new bigblock();
	bb->init();
	bb->speed = 5;
	std::string v[4]={"bigblock1.png","bigblock2.png","bigblock3.png","bigblock4.png"};
	int r=0+rand()%3;
	bb->initWithFile(v[r]);

	bb->setPhysicsBody(PhysicsBody::createBox(bb->getContentSize()));
	bb->getPhysicsBody()->setDynamic(false);

	return bb;
}
这样随机出现不同block的功能就实现了,然后再看随机时间添加

在stage里,我已经有了addblock函数每帧都执行,这时候出现了一个问题,就是如果直接随机时间添加是很简单的,设定一个随机函数,create地图块就行了,但是这样会重叠,那就不好了,我得知道前一个块的尾部刚刚走出屏幕右边,这个时候再给一段随机时间,添加个块就不会重叠了,而且会出现坑,player掉下去就挂掉。但是问题又来了,

我们添加的函数肯定是auto bb=bigblock::create();,每个精灵都叫bb,根本没法分辨(这里多说一句,如果在正常情况下我们添加两个精灵,是重名的话,一定会报错,但是在schedule函数里面,每帧添加一个同名精灵就不会报错,我查了查资料,大概的意思是schedule会把这些精灵放到类似队列或者数组里面,这样的话,可能就不会有重名问题,但是我没有找到怎么访问他们的方法),我想如果添加数组的话,简直太麻烦,后来想到了个办法,用tag,把每个精灵标上tag,用getChildByTag获得当前tag的精灵,如果他的尾部出界了,就给一个随机时间,添加下一个,然后下一个的tag++;代码如下

		int hh= 0+rand()%55;
		if (getChildByTag(bigtag)->getContentSize().width/2+getChildByTag(bigtag)->getPositionX()<visible.width)
		{
		    
			a++;
			if(a>=b)
			{
				auto bb=bigblock::create();
				this->addChild(bb);
				bb->setPosition(Vec2(visible.width+bb->getContentSize().width/2,hh));
				bigtag=bigtag+1;
				bb->setTag(bigtag);
				restar();
				
			 }
			
		}
正如你所见,在设置坐标的时候,y轴的坐标用了随机函数,我们将得到高地交错的地面。

a和b的作用以前也有说过是获得随机时间。

至此地面的问题暂时解决了,接下来是跳跃的问题。

以前的时候,我们判断跳完了没有,是看player脚底的坐标是不是在地面了,现在不行了,地面的坐标不是定数了。我想了好久这个问题,如果判断现在脚下的物体高度简直太麻烦,后来想到了可以用速度来判断,如果速度为零便是在地面了,就可以再跳,但是问题来了,在最高点的时候速度也是零,这个问题一度让我很苦恼,怎么判断是在最高点还是在地面,我想说方法一定是有的,而且一定是一个简单的小算法,但是我发现,由于在空中的时候,速度为零的时间太短暂,来不及跳跃,所以暂且马虎过去,代码如下

在schedule里

 
       if(player->getVy()==0)
	   {
		   ve=1;

	   }
	   else
	   {
		   ve=0;
	   }
在跳跃的时候

if (ve==1)
        {

	  player->getPhysicsBody()->setVelocity(Vec2(0,1200));


	 }
最后还有一个问题,有一个有意思的功能是按住跳跃按钮会跳更高,一松手就会下落,这个功能我是这样实现的,在跳跃按钮抬起的时候设置速度为零

void Stage::button_jump_touchup(Ref* pSender,Control::EventType event)
{
	auto v=player->getPhysicsBody()->getVelocity();
	if (v.y>0)
	{
    	player->getPhysicsBody()->setVelocity(Vect(0,0));
    }
}

以上是我的解决方案,如有更好的方案或疑问请留言哦~


【cocos shader 006】 连续 滚动 特效无限地图背景 先上效果: local Rolling = { frag = [[ #ifdef GL_ES precision highp float; #endif varying vec4 v_fragmentColor; varying vec2 v_texCoord; uniform float speedX = 0.f; uniform float speedY = 0.f; void main() { vec2 pos = v_t 阅读详情

相关推荐

Cocos Creator v2.0安卓游戏开发实战:从跳箱子到APK上线

Cocos Creator 是一款面向2D游戏的轻量级跨平台引擎,其v2.0版本虽已迭代,但在安卓中低端设备上仍具不可替代的性能优势。该版本基于WebGL1+Canvas双渲染后端,对Android 7–9系统及联发科/骁龙4系SoC适配更优,启动更快、内存更稳。理解其底层资源加载队列、Canvas动态DPR校准、AudioEngine三重降级策略与Box2D轻量化改造,是保障闯关类游戏帧率稳定、音效不丢、触控不延的关键。本文聚焦真实安卓ROM生态(如MIUI、EMUI、ColorOS)下的逐厂适配实践,覆

weixin_33924220的博客 419

Cocos Creator 3.x 物理引擎使用笔记

Cocos Creator 3.x 引擎物理材质参数 属性 描述 friction 摩擦系数 rolling friction 摩擦系数 spinning friction 旋转摩擦力 restitution 回弹系数 实现人物在斜坡能原地站立效果 在使用Dynamic(动力学)物理数值控制制作人物在地形上移动时,胶囊碰撞器默认物理材质的摩擦系数较小,人物在移动到有斜坡地形时,会随重力滑落很远。 为模拟现实中人物在斜坡地形上是可以原地停留的效果,需要添加一个自定义物理材质,

weixin_39324642的博客 1556

cocos2dx-3.10 45度A*寻路

cocos2dx-3.10 45度A*寻路, http://blog.csdn.net/iuoon/article/details/51261187

创建地形——笔记

(8) 树:选中Terrain。选中Tree,点击Add Tree,在弹出界面选择准备好的预制体,点击add。依次点击Nomal Map和Mask Map右侧的Slect,增加法线贴图(紫)和遮罩(蓝)贴图。(1) 选中地形、设置整体地形的高度。(5) 编辑沙土层——选中Inspector中的新建沙土层,出现编辑面板。(7) 调节光滑度和笔刷后,开始在Scene中绘制。(3) 选中Terrain,绘制贴图。(6) 同样的方法创建草地。(9) 更改密度、高度等。(4) 新建一个沙土层。

Unity学习 601

SFR算法实现详解:从边缘检测到MTF计算的完整流程

本文详细解析了SFR算法从边缘检测到MTF计算的完整流程,包括边缘检测、ESF超采样、LSF差分等关键步骤。通过代码示例和实战经验,帮助开发者高效实现成像系统解析力评估,优化MTF测量精度。适用于摄像头模组调试、工业检测等场景。

Black的专栏 1009

RADIOML 2018.01A数据集在自动调制识别中的实战应用指南

本文提供了RADIOML 2018.01A数据集在自动调制识别(AMR)任务中的完整实战指南。内容涵盖从数据集介绍、数据获取与解包、高效预处理流程,到构建PyTorch数据管道、模型设计(如1D CNN、ResNet)以及训练调参策略。重点阐述了如何利用该数据集训练鲁棒的AI模型,以应对复杂信道环境和低信噪比挑战,并给出了详细的性能评估方法。

plant的博客 174

Cocos2d-x从入门到精通第六课《自定义绘制》

一.自定义绘制 一个图形引擎,总是由构建点,线,面的绘制功能写起来的。点,线,面。构成了最初的图形基础。所以说,掌握点,线,面是掌握引擎的基础。 Cocos2d-x 2.0的时候开始有的使用DrawPrimitives命名空间下的相关函数进行绘制。Cocos2d-x3.0版本开始有的DrawNode类提供的相关方法来绘制。今天的课程主要讲解使用最新的方法进行绘制。   二.图形绘制 获得

wocacaaa的专栏 1714

landsat8数据下载教程

下载landsat数据教程

weixin_44001203的博客 1万+

cocos2d-x 使用地图编辑器

void WorldLayerSence::createMapUseTMXTailedMap() {     CCTMXTiledMap* map =         CCTMXTiledMap::create("Maps/orthogonal-test4.tmx");     if(map!=NULL)     {         this->addChild(map);    

快乐悍马2013的专栏 834

基于C#的软PLC梯形图编辑器开发实战

本文详细介绍了基于C#开发软PLC梯形图编辑器的实战过程。文章从核心数据结构设计入手,阐述了如何利用C#的面向对象特性构建梯形图元素模型,并实现了图形编辑、指令表输入、逻辑连接拓扑重建等关键功能。重点剖析了模拟PLC执行引擎的扫描周期与能流传递算法,让梯形图逻辑在PC上“活”起来。最后探讨了定时器指令实现、性能优化及项目集成等进阶内容,为工业自动化软件集成提供了灵活高效的解决方案。

weixin_28314575的博客 404

kubedns-coredns部署pod出现not ready问题

文章目录遇到的问题1、发现问题2、排查问题3、解决方法 coredns的实例health_check不通过的问题,排查和解决方法 遇到的问题 1、发现问题 pod启动但是未ready 查看是readiness失败 使用对应的URL进行curl,发现真的返回503 2、排查问题 查看错误日志,发现一堆这个错误"waiting on : kubernetes" 网上相关的问题解答 这个跟测试场景不一样,这个案例是开了防火墙,可以确认我这个案例的机器没有开防火墙,但它提醒了一点,coredns是需要访问ap

u012533481的博客 2844

Cocos2d-x初入学堂(12)-->CCTMXTiledMap和CCTileMapAtlas拼地图

欢迎转载!转载时请注明出处:http://blog.csdn.net/aa4790139/article/details/8132740 上篇说了场景的切换,这一讲自然是游戏界面的制作了,游戏地图制作: 1、CCTileMapAtlas: //创建一个CCTileMapAtlas: CCTileMapAtlas* map = CCTileMapAtlas::create(地图素材.pn...

445822357 303

Eureka自我保护机制

Eureka自我保护机制 默认情况下,当eureka server在一定时间内没有收到实例的心跳,便会把该实例从注册表中删除(默认是90秒),但是,如果短时间内丢失大量的实例心跳,便会触发eureka server的自我保护机制,比如在开发测试时,需要频繁地重启微服务实例,但是我们很少会把eureka server一起重启(因为在开发过程中不会修改eureka注册中心),当一分钟内收到的心跳数大量减少时,会触发该保护机制。可以在eureka管理界面看到Renews threshold和Renews(last

Soul_Ming的博客 543

cocos2dx[3.4](25)——瓦片地图TiledMap

【唠叨】还记得我们小时候玩的小霸王里面的游戏吗?大部分都是基于Tile地图的游戏,如坦克大战、冒险岛、魂斗罗、吞食天地等。而在手游中,基于瓦片地图的游戏也很常见。如:《保卫萝卜》。瓦片地图有专门的地图编辑器:Tiled Map Editor 。先给大家看个酷炫的图吧。此图来自:http://blog.csdn.net/aa4790139/article...

weixin_33936401的博客 3035

【Zephyr存储专题】06_存储块设备驱动开发(Nand Flash)

本文介绍了基于Zephyr系统的NAND Flash驱动实现方案,重点阐述了Flash驱动模型的核心架构和关键API设计。

zero的博客 1804

游戏大厂射击游戏无缝大世界游戏DS服务器架构设计方案详解

摘要: 本文深入解析游戏大厂无缝大世界射击游戏的分布式服务器(DS)架构设计方案。以《和平精英》《量子特攻》为例,阐述如何通过动态分区、兴趣管理、弹性扩缩等核心技术应对高并发、低延迟、无缝切换等挑战。架构分为世界协调层、分区计算层、物理判定层等模块,结合微服务化、快照同步和Kubernetes调度,实现玩家跨区无感知迁移与一致判定。重点优化动态负载均衡、状态同步算法及容灾备份,依托分布式数据库与多云部署保障高可用性,为同类游戏提供可扩展的技术范本。(149字) 关键词: 无缝大世界、分布式服务器、动态分区、

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 563

关于Cocos2d-x中使用自定义地图等对象的缩放与拖动的实现

近日在做数据结构课程设计,题目是公交线路上优化路径的查询。图形方面需要实现可视化的地图,同时最好能够实现缩放与拖动。经过一番折腾后大致实现了此功能,方法并不困难,在此提供一下方法,给没有好想法或在高端技术实现上遇到困难的童鞋们一点思维的启迪。 首先,我们需要一个大的Layer,这个Layer用来绘制所有的地图元素信息,包括公交线路、站点图标、导航、背景图等等; 接着,我们要在这

学渣的博客 1343

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

cocos2d-x 瓦片地图的黑线及地图抖动解决方案

BUG 1:地图的每个图块之间有一些细密的间隔,特别是场景移动时更加明显,将游戏截图放大,可以很明显看到这个细线            解决方案:通过设置ccConfo.h中的CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL宏来解决。              将  #define CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL 0

we000636的专栏 7729

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

cocos2dx-js RenderTexture 将多张图片合并成一张图片

var sprite = new cc.Sprite("about_btn.png"); var sprite2 = new cc.Sprite("add5.png"); //创建画布 var rend = new cc.RenderTexture( starManager.winSize.width, starManager.winSize.he

cuijiahao的专栏 6186

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

SDL游戏开发之七-虚拟摇杆

当下的智能机除了音量键、Home键外,几乎没有多余的按键,因而有一部分游戏提供了虚拟摇杆。 SDL2.x并没有提供虚拟摇杆相关的代码,不过实现起来并不算困难;虚拟摇杆包括绘图和事件处理:前者提供视觉效果,后者则捕获事件并作出响应。 示例结果如下: 图1-虚拟摇杆演示程序 本示例中大约有四个类: Game类 主要包含了初始化、事件处理、纹理绘制等功能,是本示例的核心类; Player...

bull521的博客 1879

cocos2d-x RichText 真实高度

cocos2d-x版本 3.8  在RichText自动换行后,发现不能得到真实高度,查看源码发现算出了实际高度,但确没用上,都多少个版本了,还没完善 void RichText::formarRenderers() { if (_ignoreSize) { float newContentSizeWidth = 0.0f; float

to3 3865

CocosCreator零基础制作游戏《极限跳跃》

转载闭眼就天黑专栏_个人博客_技术源于分享。一个完整的小游戏教程适合小白入手 一、思维导图 二、制作登录场景 首先,打开CocosCreator,新建HelloWorld项目。选择项目路径,输入项目名称“jxty”,点击新建项目。 新建好项目,项目会自动打开。这里大家可以看下官方的文档,了解 下编辑器的功能和用法 点击工具栏上的预览按钮来查看当前场景的显示 在资源管理器中,我们选中Scen...

cnliping的博客 1973

cocos2dx三种定时器的使用

cocos2dx三种定时器的使用以及停止schedule,scheduleUpdate,scheduleOnce

水上漂的专栏 6万+
上一篇: cocos2dx3.X项目重写(五)添加分数,开始和结束场景。
下一篇: A电脑的gho还原到B电脑上的驱动解决方案
Fried_potatoes
博客等级 码龄12年 5粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值