游戏开发

Cesium小记之加载暗黑色地图&&蓝色透明模型

一效果图“ 二、demo import Vue from 'vue' import App from './App' import router from './router' import Cesium from 'cesium/Cesium' import MeasureTool from '../src/js/MeasureTools' Vue.config.productionTip = false /* eslint-disable no-new */ new Vue({ el: '#app', router, components: {App}, template: '', mounted () { var viewer = new Cesium.Viewer('cesiumContainer', { baseLayerPicker: false // 是否显示图层选择器 }) var layer = new Cesium.MapboxImageryProvider({ mapId: 'mapbox.dark', accessToken: 'mapbox的token' }) viewer.scene.globe.enableLighting = false viewer.imageryLayers.addImageryProvider(layer) // 加载三维模型灰模 var tileset = viewer.

cesium加载mapbox黑色底图

其实很简单,但是对于不知道的人,就很麻烦了。 官网上的mapbox.street会报错 var layer=new Cesium.MapboxImageryProvider({ mapId: 'mapbox.dark', accessToken: '你的token' }) viewer.imageryLayers.addImageryProvider(layer) 放一张师弟做的三维效果图

军旗(陆战棋)

apk下载:点击打开链接 军棋分三种下法: 一种是暗棋(棋子立起),两人对决,需要裁判; 一种是明棋,字朝上摆,不需要裁判; 一种是翻棋,开始字朝下摆,不需要裁判。

ov7725摄像头–图像中间亮四周暗

使用OV7725摄像头采集图像进行商品识别,uvc调试过程中发现图像中间亮四周暗; 网上找原因,说是lens 的CRA 和 sensor的CRA不匹配;可以通过矫正透镜改进; 查看手册,lens correction部分;果然有这部分介绍 12 Deal with Lens—处理Lens 12.1 Light fall off—-光线脱落 光线掉落意味着图像的角落比图像的中心更暗。它是由镜头引起的。 OV7725的镜头阴影校正功能可以打开以补偿角亮度并使整个画面看起来一样明亮。 12.2 Dark corner—黑暗的角落 某些镜头可能有黑暗的角落。黑角表示图片的颜色几乎为黑色。使用镜头校正无法纠正黑暗角落。所以暗角的模块是NG,不能使用。 12.3 Resolution—方法 相机模块的分辨率取决于镜头设计,对焦调整和传感器分辨率。相机模块组装对焦调整非常重要。 对于OV7725,焦距约为50〜60cm。景深大约从25〜30厘米到无限大。如果检查相机模块的分辨率,分辨率图表应放置在50〜60厘米处。 12.4 Optical contrast—光学对比度 镜头的光学对比度对于画质非常重要。如果镜头的光学对比度不好,照片会看起来很诡异。尽管可以通过增加传感器对比度来提高图像清晰度,但较高的传感器对比度会使图像暗区的细节丢失。 12.5 Lens Cover—镜头盖 镜头盖是光路中最便宜的部件。 但它可能会非常影响画面质量。 镜头盖应由双面带AR涂层的光学玻璃制成。 否则,镜头盖可能会导致灵敏度损失和/或更强烈的镜头光晕。 12.6 Lens Correction—镜头校正 应该在每个模块中调整镜头校正设置。 请联系OmniVision本地FAE镜头校正调整。 我的问题应该是光脱落导致的,打开透镜的阴影矫正功能; 设置寄存器 // Lens Correction, should be tuned with real camera module set_REGISTER(LC_RADI, 0x10); //(0x4a, 0x10); set_REGISTER(LC_COEF, 0x10); //(0x49, 0x10); // set_REGISTER(LC_XC, 0x08); //(0x47, 0x08); set_REGISTER(LC_COEFB, 0x14); //(0x4b, 0x14);

Cadence原理图中一个错误和解决方法

画好原理图保存时,出现了错误 “ERROR(SPCOCN-1998): HDL Power Symbol does not have voltage property. To turn off this warning, choose Tools – Options – Check and deselect the ‘Voltage on HDL Symbols’ option. (voltage_on_hdl)” 解决方法:就是这个操作Tools – Options – Check ,然后看下面的图,不要选我下面划红线的就行了,其实就是一个你默认这个符号是标示电压的就行了。

unity 仿ue4湖水效果

这次是做个测试,看看材质通用性 为了方便使用的是untiy 5.6 + shaderforge 1.38 下面是最后的效果(当然比起ue4里面还添加了一些,用的线性空间和deferred模式) 下面是ue4原本的 因为主要是法线上的效果,unity在法线和光照效果上还是差挺多的 连节点中还发现深度信息和ue4略有不同这个要注意 而且在测试中还发现了shaderforge的bug 当然depth相关节点最终连接到normal节点的话会报下面的错 Shader error in ‘Shader Forge/test’: undeclared identifier ‘partZ’ at line 106 (on d3d11) 但是只需要改源码,把partZ声明放在使用之前就可以了 下面是第一个版本的shaderforge节点 基本和ue4那个很像,需要注意的是某些节点虽然和ue4很像,但是略有不同 预览是错误,因为需要改源码,但每次改过后,shaderforge打开又会开回来 这个bug其实挺多见的,节点连多了,各种bug就出现了 效果如下 但是这个缺少放入物体虚化的效果,于是又改了下 效果就是第一幅图的了,注意这个需要开启透明,使用的时候只能是不透明的物体放入水中,否则会有深度问题 节点如下 预览也是这个问题,shader文件里直接改 放上改好的shader下载地址(注意只有shader文件) http://download.csdn.net/download/shenmifangke/9991699

游戏——海战棋

又写了个小小的棋类游戏,希望大家喜欢! 游戏规则 由电脑随机在敌我双方布好船阵,每艘船周围一格内都不许有其他船,船有1、2、3、4格大小的,(1格有四艘 2格有三艘 3格有两艘 4格有1艘),双方都只能看不到自己船的布阵方式。 我方在左边,敌方在右边 双方轮流在对方海域内打炮 若射中了对方的船,则可再射一炮 整艘战船都被打到则会有提示整艘船沉了(这里是换符号) 左右的数字是敌我剩下的船种类以及其数量 其实你可以作弊,按了作弊键后就可以看到敌方的船只位置了 有如下两套控制按钮配置 修改布阵 控制光标 确认射击 作弊一下 ._. 0 1,2,3,5 0 8 0 a,s,d,w (space) g 截图 具体实现 这就是一个简单的博弈问题,我建了一个队列 要是队列是空的,则随机确定一个点,并把它周围没射过的的点加入队列 要是队列非空,则依次弹出元素并确定射那里,要是射中了,就继续弹出,若整艘船都击沉了,那么弹出队列元素直到队首元素不是这艘沉船周围的格子为止 上面那点最后面用到了一个小性质,就是每艘船周围一格内都没有其它的船,所以当确定这艘船全被击中后,就可以排除它周围的格子了。 源代码 #include #include //rand()%(x) 0~x-1 int #include //停顿:Sleep(); #include //清屏:system("cls"); #include //getch(); char #include #include //未知 :□; 打中 :◎; 未打中:○ 船:★; using namespace std; int rest[3][5],r1,r2; //rest[1]:玩家的海域; rest[2]:电脑的海域 r1:玩家还剩船数; r2:电脑还剩船数 int b1[12][12],b2[12][12]; //0:空海; 1:船只; 2:打中; 3:边界 4:未打中 5:沉船 int c1[12][12],c2[12][12]; //c1:玩家海域的颜色 c2:电脑海域颜色 int fx[8][2]={{ 0,1},{1,0},{0,-1},{-1,0},{1,1},{-1,-1},{1,-1},{-1,1}}; int now[2][2]; //now[左/右][x/y] 光标 string a1[12][12],a2[12][12]; int fd [500][2],head=0,tail=0; void color(int a)//颜色函数 { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a); } void gotoxy(int x,int y)//位置函数(整个界面)(行为x 列为y) { COORD pos; pos.

SpriteBuilder实现2D精灵光影明暗反射效果(一)

其实不用3D建模,用2D的图像就可以模拟3D场景中光照反射的效果. 这里我们不得不提到一个normalMap(法线图)的概念,请各位童鞋自己度娘吧,简单来说它可以使得2D表面生成一定细节程度的光照方向和反射效果. 我们首先要制作精灵的法线贴图,至于怎么做,懂3D制图的童鞋应该都知道,有专门的软件.不过对于本猫猪这种图痴来说,也有简单容易上手的工具,名字为SpriteIlluminator,可以到其官网下载: https://www.codeandweb.com/spriteilluminator 软件非常不错,可惜要收费 ;( 不过有7天的试用期限,以下是软件运行界面: 至于怎么用,大家可以看其简明教程: https://www.codeandweb.com/blog/2015/03/17/cocos2d-dynamic-lighting-tutorial 而在这里可以看到更多的教程: https://www.codeandweb.com/blog 以下就是其教程中,app完成后实际的效果: 还是相当不错的,我们在下篇中就来简单说说用SpriteBuilder如何完成类似效果.

Ren’Py上手指南1

Ren’Py(http://www.renpy.org)是一个基于Python编写的文字AVG游戏引擎。可以快速开发出文字AVG游戏,因为Python的可移植性,可以将游戏发布到Windows,Linux和Mac上,并且可以通过官方提供的工具移植到Android上面(至于iOS,作者在论坛中表示不鸟这些封闭平台,不过有人在做ios的移植https://github.com/chrismear/renios/releases)。 在我看来选用Ren’Py的理由主要有下面几个: 语法简洁,继承了Python的优点,常用的AVG元素基本上都以命令的方式实现了,封装了底层的技术细节,比如你不用去理解为什么要双重缓冲。 可移植性强,上面提到了。 可扩展性强,虽然是文字AVG引擎,但中间层的python也预留了更多的API,完全可以抛开上层的命令直接调用API来实现更加复杂的游戏功能,官网上已经有RPG模版了,也有人做了SLG,并发布到了Steam上。 社区活跃,有什么问题到论坛上问问,都会得到回复。 在官网下载到的是一个压缩包,解压之后就可以直接运行,会看到一个控制台界面,其中界面左侧会列出本地路径找到的项目,默认会带两个示例项目,‘The Question‘是一个简单的AVG游戏,包含了基本的项目,tutorial是分别演示各种功能,建议先跑一下这两个看看。 创建新工程 点击”Create New Project”可以创建新游戏工程,随后会让你指定游戏项目的目录,名字以及界面风格。 打开刚才你指定的目录,会找到一个以游戏名字命名的文件夹,这就是根目录,打开以后里面会有一个game文件夹,所有的素材,脚本等全部放在这个文件夹下面,当然随着文件的增多,建议建立子文件夹来分类管理不同素材,比如images, sounds等等。 刚才打开的game文件夹里会有script.rpy这个文件,这是游戏脚本的入口文件,每次游戏都会从这里开始运行,我们先进去看看里面有什么。 # You can place the script of your game in this file. # Declare images below this line, using the image statement. # eg. image eileen happy = "eileen_happy.png" # Declare characters used by this game. define e = Character('Eileen', color="#c8ffc8") # The game starts here. label start: e "You've created a new Ren'Py game.