cocos2d-x 之 适配分辨率全屏的方法

2023-11-19

原文出处:

https://blog.csdn.net/yixiao3660/article/details/54316348
https://www.jianshu.com/p/0d6787e31112

http://dualface.github.io/blog/2012/08/17/cocos2d-x-2-dot-0-multi-resolution/

cocos2d-x 2.0 提供一个极有价值的新特征: setDesignResolutionSize() 。

这个函数用于指定一个 OpenGL 视图,然后将这个视图映射到设备屏幕上。根据不同的设定,视图会自动缩放显示内容,为 cocos2d-x 自适应多种分辨率提供了基本支持。

不过要真正实现自适应分辨率,从场景设计、美术制作到程序编写,都需要遵循一套规范,才能极大减少工作量。

注意:本文假定游戏是横向显示的。

~

Cocos2d-JS屏幕适配

在Cocos2d-JS中,设计分辨率到设备分辨率的适配方案有5种,分别是:

  • cc.ResolutionPolicy.EXACT_FIT
  • cc.ResolutionPolicy.SHOW_ALL
  • cc.ResolutionPolicy.NO_BORDER
  • cc.ResolutionPolicy.FIXED_HEIGHT
  • cc.ResolutionPolicy.FIXED_WIDTH

关于这五种设计模式的具体效果网络上已经有非常多的博客介绍了,甚至自己写个代码测试下就知道了,这里就不再赘述。

在Cocos2d-JS中设置适配方案的API是:

 

// 设置适配模式
cc.view.setResolutionPolicy(cc.ResolutionPolicy.FIXED_HEIGHT);

// 设置设计分辨率尺寸和适配模式
cc.view,setSesignReolutionSize(960, 540, cc.ResolutionPolicy.FIXED_HEIGHT);

// 设置资源分辨率到设计分辨率的缩放比例
cc.director.setContentScaleFactor(1);

Cocos Creator屏幕适配

实现方式

Creator的屏幕适配主要是放在Canvas组件上实现的,所以每当创建一个新的场景时,默认都会有个一个Canvas对象在层级管理器上,游戏内其它的节点都应该放在Canvas节点下,这样才能有效的在web浏览器上进行适配。

Canvas节点

Canvas组件

鼠标点选层级管理器上的Canvas对象,在属性检查器面板上会对应显示对象的组件信息。我们可以看到它默认添加了一个Canvas组件,并且勾选了“Fix Height”选项。

Canvas组件

关于Canvas组件,主要有三个属性:

  • Design Resolution:主要设置游戏设计分辨率的尺寸,默认设置宽度960(W)高度640(H)。
  • Fit Height:固定高度。
  • Fit Width:固定宽度。

EXACT_FIT(非等比拉伸至全屏)

由于EXACT_FIT适配方案是将游戏内容非等比拉伸或缩放至全屏,实际效果通常都无法接受,所以在Creator中被废弃了,无法通过编辑器进行设置。如果非要使用,可以通过代码设置:

 

// 设置适配模式
cc.view.setResolutionPolicy(cc.ResolutionPolicy.EXACT_FIT);

但是可能会和Canvas冲突,所以可以试试禁用Canvas组件。这样处理后在web平台上可能会有问题,native上应该是可行的。

SHOW_ALL(等比显示整个场景内容)

showAll

在Creator上同时勾选“Fit Height”和“Fit Width”即可开启showAll适配模式。

这个适配方案其实也不是非常常见,我们公司早期都是使用这个方案。它的好处是不管屏幕比例如何,保证整个场景都是可见的,而且等比适配。但是总是在左右两边或者上下两边出现黑边。

NO_BORDER(等比拉伸到全屏)

NO_BORDER

和SHOW_ALL相反,在Creator上同时去除“Fit Height”和“Fit Width”的勾选即可开启noBorder适配模式。

这个适配模式是根据屏幕比例等比拉伸画面,有两种结果:

  • 当高度拉满,宽度超出屏幕的时候,裁切宽度。
  • 当宽度拉满,高度超出屏幕的时候,裁切高度。

它的好处是没有黑边,缺点是在不同的屏幕比例上,不能缺点到底是宽度裁切还是高度裁切。所以进行场景设计的时候有挺大局限性。

FIXED_HEIGHT(等比拉伸高度到全屏)

FIXED_HEIGHT

由于手机屏幕的局限性,通常游戏设置为横屏的,在横屏模式下,通常设置适配方案为固定高度,所以这也是Creator默认的视频方案。

在Creator中,只勾选Canvas组件的“Fit Height”即可开启fixedHeight适配模式。

它的好处是可以实现全屏,拉伸或者缩放高度为屏幕高度,宽度进行裁切。

FIXED_WIDTH(等比拉伸宽度到全屏)

FIXED_WIDTH

在Creator中,只勾选Canvas组件的“Fit Width”即可开启fixedWidth适配模式。

它的好处是可以实现全屏,拉伸或者缩放宽度为屏幕宽度,高度进行裁切。在竖屏模式下,通常设置适配方案为固定宽度。

 

 明确自适应多种分辨率的需求

要让游戏在不同分辨率下都获得良好的用户体验,应该满足这几个要求:

  • 背景图填满整个画面,不出现黑边;
  • 背景图的主要内容都显示在屏幕上,尽可能少的裁剪图片(减少超出屏幕可视区域的部分);
  • 如果背景图需要放大,尽可能减小放大的比例,避免放大后出现明显的模糊;
  • 用户界面的文字标签、按钮在任何分辨率下都应该完整显示,并且容易交互。

上述需求实际上可以分解为两部分:

  • 如何制作满足多种分辨率的背景图;
  • 如何定位用户界面元素(标签、按钮等)。

~

 制作适合多种分辨率的背景图

在开始制作背景图前,我们看看市面上各种设备(480 像素分辨率的老设备 2012 的游戏应该可以无视了)常见的像素分辨率(resolution in pixels):

Device Width Height
iPad 1024px 768px
New iPad 2048px 1536px
iPhone 960px 640px
Android Phone 1 800px 480px
Android Phone 2 854px 480px
Android Phone 3 1280px 720px
Android Pad 1 1024px 600px
Android Pad 2 1280px 800px

经过几个游戏的实践,我们确定了几个背景图的分辨率:

  • 2048px * 1536px

    专门针对 New iPad,设计师的原稿也是这个尺寸。

  • 960px * 720px

    这个分辨率针对 iPhone 和 iPad 设备。在 iPhone 上 1:1 显示,上下各剪裁掉 40px。而在 iPad 上按 1.067 放大显示,正好填满整个屏幕,并且用户看不到模糊。从 2048px 的原稿导出 PNG 时,按照 0.469 比例缩小正好就是 960px * 720px。

  • 854px * 480px

    市面上的 Android 手机,854px * 480px 和 800px * 480px 是最常见的两种分辨率。2048px 的原稿按照 0.417 比例缩小,然后裁减掉上下多余部分就可以得到需要的 PNG 图片。

  • 1280px * 800px

    应付高分辨率的 Android 手机和平板设备,在各种分辨率下都可以获得很好的显示效果。2048px 的原稿按照 0.625 比例缩小,然后裁减掉上下多余部分就可以得到需要的 PNG 图片。

对于美术来说,背景图都按照 2048px * 1536px 的尺寸绘制。然后用脚本配合 ImageMagick 就可以自动导出四种分辨率的背景图片。

如果需要最大程度减小游戏的下载体积,那么可以只使用 960px * 720px 的素材。并且参考本文后面示例程序的做法,用一套素材应付各种不同的分辨率。

唯一需要注意的问题就是:确保画面中的主要内容在各种设备上都位于屏幕的可视区域中。

下面几个图展示 2048px 原稿在不同设备上的可视区域:

multires_01.pnguploading.4e448015.gif转存失败重新上传取消multires_01.pnguploading.4e448015.gif转存失败重新上传取消multires_01.pnguploading.4e448015.gif转存失败重新上传取消multires_01.pnguploading.4e448015.gif转存失败重新上传取消multires_01.pnguploading.4e448015.gif转存失败重新上传取消multires_01.pnguploading.4e448015.gif转存失败重新上传取消multires_01.pnguploading.4e448015.gif转存失败重新上传取消

multires_02.pnguploading.4e448015.gif转存失败重新上传取消multires_02.pnguploading.4e448015.gif转存失败重新上传取消multires_02.pnguploading.4e448015.gif转存失败重新上传取消multires_02.pnguploading.4e448015.gif转存失败重新上传取消multires_02.pnguploading.4e448015.gif转存失败重新上传取消multires_02.pnguploading.4e448015.gif转存失败重新上传取消multires_02.pnguploading.4e448015.gif转存失败重新上传取消

multires_03.pnguploading.4e448015.gif转存失败重新上传取消multires_03.pnguploading.4e448015.gif转存失败重新上传取消multires_03.pnguploading.4e448015.gif转存失败重新上传取消multires_03.pnguploading.4e448015.gif转存失败重新上传取消multires_03.pnguploading.4e448015.gif转存失败重新上传取消multires_03.pnguploading.4e448015.gif转存失败重新上传取消multires_03.pnguploading.4e448015.gif转存失败重新上传取消

multires_04.pnguploading.4e448015.gif转存失败重新上传取消multires_04.pnguploading.4e448015.gif转存失败重新上传取消multires_04.pnguploading.4e448015.gif转存失败重新上传取消multires_04.pnguploading.4e448015.gif转存失败重新上传取消multires_04.pnguploading.4e448015.gif转存失败重新上传取消multires_04.pnguploading.4e448015.gif转存失败重新上传取消multires_04.pnguploading.4e448015.gif转存失败重新上传取消

multires_05.pnguploading.4e448015.gif转存失败重新上传取消multires_05.pnguploading.4e448015.gif转存失败重新上传取消multires_05.pnguploading.4e448015.gif转存失败重新上传取消multires_05.pnguploading.4e448015.gif转存失败重新上传取消multires_05.pnguploading.4e448015.gif转存失败重新上传取消multires_05.pnguploading.4e448015.gif转存失败重新上传取消multires_05.pnguploading.4e448015.gif转存失败重新上传取消

multires_06.pnguploading.4e448015.gif转存失败重新上传取消multires_06.pnguploading.4e448015.gif转存失败重新上传取消multires_06.pnguploading.4e448015.gif转存失败重新上传取消multires_06.pnguploading.4e448015.gif转存失败重新上传取消multires_06.pnguploading.4e448015.gif转存失败重新上传取消multires_06.pnguploading.4e448015.gif转存失败重新上传取消multires_06.pnguploading.4e448015.gif转存失败重新上传取消

multires_07.pnguploading.4e448015.gif转存失败重新上传取消multires_07.pnguploading.4e448015.gif转存失败重新上传取消multires_07.pnguploading.4e448015.gif转存失败重新上传取消multires_07.pnguploading.4e448015.gif转存失败重新上传取消multires_07.pnguploading.4e448015.gif转存失败重新上传取消multires_07.pnguploading.4e448015.gif转存失败重新上传取消multires_07.pnguploading.4e448015.gif转存失败重新上传取消

Photoshop 源文件下载地址: multires.psd

~

 制作适合各种分辨率的用户界面元素

相比背景图,界面元素的制作只需要考虑一点:必须能够放置在最小的可视区域中。如下图界面底部有一排按钮,这些按钮在各种分辨率下都能完整显示:

multires_ui01.pnguploading.4e448015.gif转存失败重新上传取消multires_ui01.pnguploading.4e448015.gif转存失败重新上传取消multires_ui01.pnguploading.4e448015.gif转存失败重新上传取消multires_ui01.pnguploading.4e448015.gif转存失败重新上传取消multires_ui01.pnguploading.4e448015.gif转存失败重新上传取消multires_ui01.pnguploading.4e448015.gif转存失败重新上传取消multires_ui01.pnguploading.4e448015.gif转存失败重新上传取消

在导出界面元素的 PNG 图片时,仍然使用脚本文件和 ImageMagick 按照特定比例自动缩放。

~

 在各种分辨率的屏幕上定位界面元素

准备好了美术素材,接下来的挑战就是如何在不同分辨率的设备中定位界面元素。

为了解决这个问题,我们做了大量的尝试,最终找到一种可行的解决方案,而且使用起来非常简单。

 虚拟分辨率

为了简化程序的开发,我们使用一个统一的虚拟坐标系来映射设备的屏幕。经过几个产品的实践,证明将屏幕宽度设定为 960pt 是很合理的。

特别注意:在讨论虚拟坐标系时,一律使用 pt(Point)作为单位,而不是 px(Pixel)。

下面的表格整理了各种设备分辨率与 960pt 宽度虚拟分辨率的对应关系:

Device Width Height Virtual Width Virutal Height Scale
iPad 1024px 768px 960pt 720pt 1.066666667
New iPad 2048px 1536px 960pt 720pt 2.133333333
iPhone 960px 640px 960pt 640pt 1.0
Android Phone 1 800px 480px 960pt 576pt 0.833333333
Android Phone 2 854px 480px 960pt 540pt 0.889583333
Android Phone 3 1280px 720px 960pt 540pt 1.333333333
Android Pad 1 1024px 600px 960pt 562pt 1.066666667
Android Pad 2 1280px 800px 960pt 600pt 1.333333333

 根据参考点定位界面元素

在游戏初始化时,引擎就会根据设备的实际分辨率,自动设定好对应的虚拟分辨率,并且确定屏幕上的几个参考点:

Position Value
left 0pt
right 959pt
top 虚拟分辨率的高度 - 1
bottom 0pt
center x 480pt
center y 虚拟分辨率的高度 / 2

有了参考点,定位界面元素就很简单了。例如一个按钮的原点(按钮图片中心点)相对于屏幕左侧 40pt,相对于屏幕底部 30pt。那么在不同分辨率的设备上,这个按钮和屏幕左下角的距离都是差不多的。

只要确保所有界面元素都使用参考点来定位,那么就绝不会出现在设备屏幕上看不到界面元素的情况。

~

 示例程序

为了方便大家进行测试,本文的示例工程已经编译成 Windows 可执行文件。运行时可以用下列命令行启动以便测试不同分辨率:

命令行参数

1
2
 
  1. # 如果没有指定命令行参数,则默认使用 960px * 640px 的屏幕分辨率。

  2. multires.demo1.win32.exe 854 480

  3.  

或者双击 test_multires.cmd 直接查看不同分辨率的运行效果。

其他:

  • 示例程序只包含按照 960px * 720px 制作的素材。
  • 示例程序可执行文件以及源代码下载:multires.demo1.win32.zip

~

 补充说明

本文前面描述了如何创建适合不同分辨率的图片,但最后的示例程序并没有考虑这一点,而是用一套素材就搞定了多种分辨率。实际上,我个人推荐使用一套素材适应多种分辨率,最多再为 New iPad 单独准备一套素材,这样可以显著减少工作量。

如果一定要按照不同分辨率使用不同的素材,那么在显示图片时需要调用 setScale() 调整图片的缩放比例。这样做的原因是 setDesignResolutionSize() 设置虚拟分辨率后,会指定一个全局的缩放比例,所有的图片即便是 scale = 100%,也会自动缩放。所以当图片尺寸和虚拟分辨率不一致时,我们就需要手动调整图片缩放比例了。

假设设备分辨率是 1280px * 720px,虚拟分辨率是 960pt * 540pt,背景图是 1280px * 800px。要确保背景图 1:1 显示在屏幕上,参考如下代码:

让图片按 1:1 显示在屏幕上

1
2
3
4
5
6
 
  1. const CCSize& winSize = CCDirector::sharedDirector()->getWinSize();

  2. float scale = CCEGLView::sharedOpenGLView().getScaleX();

  3. CCSprite* bg = CCSprite::create("bg.jpg")

  4. bg->setPosition(ccp(winSize.width / 2, winSize.height / 2));

  5. bg->setScale(1.0f / scale); // 这里重置图片缩放比例,确保图片按 1:1 显示在屏幕上

  6. addChild(bg);

  7.  

~

-EOF-

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cocos2d-x 之 适配分辨率全屏的方法 的相关文章

  • iOS 中的构建对象文件扩展名是什么?

    当我在项目中构建java对象类时 将创建带有 class扩展名的构建文件 并且人类不可读 快速构建文件怎么样 example car java gt build gt car class 构建后会是什么 car swift gt build
  • 进入前台后刷新数据

    更改默认设置后 我想在AppDelegate中进入前台时刷新myViewController的数据 我所做的是 AppDelegate m void applicationDidFinishLaunching UIApplication a
  • 错误:更改核心数据模型后架构armv7的重复符号

    我有一个使用核心数据框架的应用程序 我工作得很好 我刚刚更改了数据模型 向一个实体添加一个属性 当我尝试构建它时 出现错误 duplicate symbol OBJC METACLASS AccountFolder in Users XXX
  • UICollectionView 拖放文件夹创建

    我正在使用 UICollectionView 创建 iOS 画廊应用程序 我希望用户能够拖放图像来重新排序图库并创建文件夹 类似于 iPhone 上的主屏幕 我发现了以下内容tutorial http nshint io blog 2015
  • 在现有 iOS 应用程序中集成 React-native(0.40.0) 后找不到 Yoga/Yoga.h 头文件

    在我的 Swift iOS 应用程序中集成 React Native 后 我无法构建 yoga Yoga h file cannot be found 我已经浏览了文档 查看了react native github页面 检查了类似问题的SO
  • git 提交错误:检测到大文件

    您好 我正在为 ios 8 1 开发一个应用程序 xcode 我已经使用 googleMaps 框架来实现自动完成功能 当我尝试在 Git 中推送我的项目时 我收到大文件检测错误 后来尝试使用 git lfs 并跟踪 git 检测到的文件
  • 苹果企业程序分发问题[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 这个问题涉及到Apple iOS 开发者企业计划 http developer apple com programs ios enterprise 我
  • Swift 中的 UIAlert 自动消失?

    我有以下代码 Creates Alerts on screen for user func notifyUser title String message String gt Void let alert UIAlertController
  • Xcode 存档上传失败并出现错误

    我正在尝试从 xCode 将新版本上传到 iTunesConnect 但每次我都会遇到此问题 问题是什么 我该如何解决这个问题 最近 我开始在上传过程中遇到问题 Xcode 经常卡住 最终会因您看到的第二个错误而失败 受够了一段时间后 我转
  • 在运行时获取 iPhone 应用程序的产品名称?

    如何才能实现这一目标 我想获取名称 以便可以在应用程序中显示它 当然 每次更改名称时不必在代码中更改它 Try this NSBundle bundle NSBundle mainBundle NSDictionary info bundl
  • 如果我的消耗性 IAP 被退款,我会收到任何通知吗?

    我有 Apple iOS 应用程序 其中有很多消耗性 IAP 我非常担心用户购买IAP并使用一段时间后向Apple客服投诉并获得退款 如果我的消耗品 IAP 退款 我会收到任何通知吗 我如何注意到这一点并阻止用户使用 IAP None
  • 奇怪的 UITableView 插入/删除行动画

    在带有动画 UITableView RowAnimationTop 的 UITableView 中插入 删除 UITableViewCell 时 我看到了奇怪的效果 当要插入的单元格比上面的单元格大得多时 就会发生动画故障 显示模拟器中的故
  • 在 iOS 上,UIView 的 Frame 属性未在动画内部分配

    在我的 iOS 应用程序中 我尝试执行以下简单的动画 void dismissToolbar NSLog bx f by f bw f bh f toolbar frame origin x toolbar frame origin y t
  • 使用 iPhone 摄像头检测心率 [重复]

    这个问题在这里已经有答案了 可能的重复 使用摄像头检测心率 https stackoverflow com questions 9274027 detecting heart rate using the camera 我正在研究 iOS
  • 如何自动缩放mapView以显示叠加层

    我可以在 mapView 上绘制多边形 但是我需要找到多边形并手动缩放它 有没有办法自动执行此过程 例如调整中心多边形 我浏览过互联网并阅读了一些相关文章 其中大多数都是基于折线和点的 任何形式的帮助将不胜感激 因为我正在寻找解决方案一段时
  • iOS - NSNotificationCenter 多个UIKeyboard通知

    我有两个视图控制器 我们称它们为 A 和 B 1 在 A 中 我显示一个包含文本字段的 popOver 2 B中有一个UITextView用于简单的文本编辑 我必须管理 A 和 B 中的键盘才能滚动键盘隐藏的内容 我知道如何重新定位内容 我
  • iOS Storyboards 我应该使用它们吗? [复制]

    这个问题在这里已经有答案了 我是 iOS 开发新手 尚未创建应用程序 但我向我的朋友寻求建议 他在市场上拥有非常高评价的应用程序 他说不要使用故事板 尽管我很想听取他的建议 但它们似乎确实很有帮助 这是否会在将来给我的应用程序带来问题 我有
  • 将带有地理位置数据的照片保存到照片库 Swift 3

    如何使用地理位置元数据将照片保存到照片库 我已请求 并允许 应用程序访问用户位置 private func allowAccessToUserLocation locationManager CLLocationManager locati
  • 是什么导致了这个 iPhone 崩溃日志?

    我有点卡住了 需要解决这个问题 因为我的一个应用程序出现了随机崩溃 而这些崩溃并不总是能够重现 这是崩溃日志之一 Incident Identifier 59865612 9F00 44EA 9474 2BF607AD662E CrashR
  • iOS 10 的错误? NSDate 日本地区时间描述和 24 小时休息

    这似乎是 iOS 10 的一个错误 在 iOS 8 和 9 中都可以 NSDate date description 的小时描述是错误的 它附加了 24 小时描述和 12 小时描述 我没有使用 NSDateFormatter 只是默认设置

随机推荐

  • Linux vim编辑器使用指南

    vim编辑器介绍 Vim是从vi发展出来的一个文本编辑器 代码补完 编译及错误跳转等方便编程的功能特别丰富 在程序员中被广泛使用 Vim 具有程序编辑的能力 可以主动以字体颜色辨别语法的正确性 方便程序设计 基本上 vim 共分为三种模式
  • Linux中ifconfig的使用

    ifconfig命令的全称是network interface configuring 用来配置Linux系统中的网卡信息 使用ifconfig命令配置的网卡配置信息 只是临时生效的 当网卡或者是机器重启 配置就会消失 只有通过修改配置文件
  • 分布式系统---幂等性设计

    分布式系统 幂等性设计 WEB资源或API方法的幂等性是指一次和多次请求某一个资源应该具有同样的副作用 幂等性是系统的接口对外一种承诺 而不是实现 承诺只要调用接口成功 外部多次调用对系统的影响是一致的 幂等性是分布式系统设计中的一个重要概
  • 操作系统笔记六(文件管理)

    1 文件逻辑结构 1 1逻辑结构的文件类型 分类 有结构文件 例如 PNG文件 无结构文件 1 2顺序文件 1 3索引文件 2 辅存的存储空间分配 2 1分配方式 连续分配 直接分配连续的存储空间 链接分配 隐式链接 在盘块内指定下一个盘块
  • 《华为机试》刷题之HJ88 扑克牌大小

    一 题目 二 示例 三 代码 dic 3 1 4 2 5 3 6 4 7 5 8 6 9 7 10 8 J 9 Q 10 K 11 A 12 2 13 joker 14 JOKER 15 while True try s1 s2 input
  • taking address of temporary错误

    前些天将一个项目从VS2013移植到Qt上 遇到了这样一个问题 Dispatch gt XCDispatchMessage linev error taking address of temporary这段代码从VS2013通过了编译 但是
  • 第十三章 公告板与粒子系统 标签: ogre公告板粒子系统ogre粒子系统

    Ogre编程入门与进阶 第十三章 公告板与粒子系统 标签 ogre公告板粒子系统ogre粒子系统 2015 07 05 14 41 1365人阅读 评论 1 收藏 举报 分类 Orge模块 16 版权声明 本文为博主原创文章 未经博主允许不
  • macbook百度网盘下载保存的文件在哪❓找不到

    困扰我好久的问题终于被我解决了 之前在AppStore里下载百度网盘 然后在百度网盘里下载文件 除了能直接打开以后 怎么都找不到文件位置 后来我终于知道了 是因为在AppStore里下载的百度网盘根本不是mac版的 如果你想下载mac版的百
  • 安卓TabLayout的使用

    安卓TabLayout的使用 我们在进行安卓开发时 常常会使用到ViewPager 为了展示更美观的效果 我们经常会选择第三方的诸如TabPageIndicator等配合ViewPager使用 但是TabPageIndicator已经很老了
  • 简单地使用webpack进行打包

    下面的webpack是4 14 0版本的 当时我学的 更新太快了 现在5 10 0了 你学习的时候 用的是最新的 就不要往下看啦 官方文档已经更新教程了 这是我看5 10 0教程后 简单搭建的打包demo 可以参考 或者你也自己去官网看文档
  • SpringCloud-Alibaba Nacos

    Nacos 简介 为什么叫Nacos 前四个字母分别为Naming和Configuration的前两个字母 最后的s为Service 是什么 一个更易于构建云原生应用的动态服务发现 配置管理和服务管理平台 Nacos Dynamic Nam
  • STM32的串口中断详解

    目录 中断配置 中断服务函数 1 中断服务函数名称查找 2 中断服务函数 3 可以选择的串口中断类型 extern u8 USART RX BUF USART REC LEN extern u16 USART RX STA 中断配置 使能接
  • js 字符串拼接的4种方法

    一 使用连接符 把想要连接的字符串串起来 let shy 帅哥 let a 我是 shy console log a 我是帅哥 二 模板字符串 模板字符串 template string 是增强版的字符串 用反引号 标识 特点 1 字符串中
  • 20221129-1Spring_day03(资料来自黑马程序)

    Spring day03 今日目标 理解并掌握AOP相关概念 能够说出AOP的工作流程 能运用AOP相关知识完成对应的案例编写 重点掌握Spring的声明式事务管理 1 AOP简介 前面我们在介绍Spring的时候说过 Spring有两个核
  • 【HTML】修复选中项与实际后台控制的选中项不一致的问题

    项目场景 项目场景 系统项目中有一个需要通过后台传递选中项的下拉项 由于反复确认都无法主动更新 考虑到其他人推荐的 方法 也是没有效果的 例如 无效
  • 首个数字银行卡明年发行,广州出台区块链措施支持大湾区

    锌链接作为首个提出产业区块链的机构媒体 一直积极推动产业区块链落地 通过深度报道直戳行业痛点 通过分享会聆听行业声音 通过周报呈现行业大观 通过评论展现独特产业观察视角 本周 广州出台66条措施支持粤港澳大湾区金融发展 其中多项与区块链有关
  • CVPR 2023和ICLR 2023异常检测相关文章

    关键词 Anomaly Detection Outlier Detection Out of Distribution Abnomal Detecting Abnormal Detection Defect DetectionInspect
  • 两万字整理Fabric(超级账本) 配置文件 掌握了它就掌握了Fabric的核心

    导语 文章没有重复的地方 没有废话 如果能帮助到你 那是我的荣幸 记得一键三连哟 Fabric 配置文件详解 一 四个核心配置文件 二 Fabric 的核心配置文件 三 网络启动步骤 1 生成认证证书 crypto config yaml
  • JS 时区时间转换

    业务场景 页面服务器时间是东八区时间 页面 JS 功能需要对比服务器时间和用户本地时间 为兼容世界各地时间 需要将用户本地时间转换为东八区时间 基本概念 格林威治时间 格林威治子午线上的地方时 或零时区 中时区 的区时叫做格林威治时间 也叫
  • cocos2d-x 之 适配分辨率全屏的方法

    原文出处 https blog csdn net yixiao3660 article details 54316348https www jianshu com p 0d6787e31112 http dualface github io