自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

血色@残阳的专栏

个人公众号:编程之路从0到1

翻译 SDL编程入门(14)动画精灵和VSync

动画精灵和VSync 动画简而言之就是展示一个又一个的图像来制造运动的假象。在这里我们将展示不同的精灵来制作一个简笔画的动画。 假设我们有以下动画帧(这清楚地表明我不是动画师): 而且每隔十分之一秒就显示一个,我们会得到这个动画: 由于SDL 2中的图像是典型的SDL_Textures,所以在SD...

2020-09-20 02:14:48 31 0

翻译 SDL编程入门(13)透明度混合

得益于新的硬件加速渲染,SDL2.0中的透明度变得更快。这里我们将使用alpha调制(它的工作原理很像颜色调制)来控制纹理的透明度。 //Texture wrapper class class LTexture { public: //Initializes variabl...

2020-09-20 02:12:14 52 0

翻译 SDL编程入门(12)色彩调制

色彩调制 颜色调制可以让你改变渲染纹理的颜色。在这里,我们将使用各种颜色来调制一个纹理。 //Texture wrapper class class LTexture { public: //Initializes variables LTexture();...

2020-09-20 02:09:28 31 0

翻译 SDL编程入门(11)裁剪渲染和精灵表

裁剪渲染和精灵表 有时你只想渲染纹理的一部分。 很多时候,游戏喜欢将多个图像保留在同一张精灵表上,而不是拥有一堆纹理。 使用剪辑渲染,我们可以定义要渲染的纹理的一部分,而不是渲染整个对象。 //Texture wrapper class class LTexture{ public: ...

2020-09-20 02:07:32 27 0

翻译 SDL编程入门(10)Color Key

Color Key 当在屏幕上渲染多个图像时,通常需要让图像具有透明背景。幸运的是,SDL提供了一种使用颜色键控的简单方法来实现这一点。 //纹理包装类 class LTexture { public: //初始化 LTexture(); ...

2020-09-19 02:59:07 17 0

翻译 SDL编程入门(9)视口

视口 有些时候,你只想渲染屏幕的一部分,比如最小地图。使用视口你可以控制你在屏幕上的渲染位置。 //左上角视口 SDL_Rect topLeftViewport; topLeftViewport.x ...

2020-09-19 02:56:38 13 0

翻译 SDL编程入门(8)几何图形渲染

几何图形渲染 除了新的纹理API,SDL还有新的基元渲染调用作为其渲染API的一部分。因此,如果你需要渲染一些基本的形状,而你又不想为它们创建额外的图形,SDL可以为你省力。 bool loadMedia(){ //加载成功标志 bool success = true; ...

2020-09-19 02:54:49 25 0

翻译 SDL编程入门(7)纹理加载和渲染

纹理加载和渲染 SDL2 的一个主要新功能是纹理渲染 API。这为您提供了快速、灵活的基于硬件的渲染。在本教程中,我们将使用这种新的渲染技术。 //将单个图像作为纹理加载 SDL_Texture* loadTexture( std::string path ); //我们要渲染的窗口 SDL_W...

2020-09-18 17:51:40 29 0

翻译 SDL编程入门(6)扩展库SDL_image

扩展库 SDL_image SDL扩展库允许你做一些事情,比如加载BMP以外的图像文件,渲染TTF字体,以及播放音乐。您可以设置SDL_image来加载PNG文件,这可以为您节省大量的磁盘空间。在本教程中,我们将介绍如何安装SDL_image。 SDL本身是一个扩展库,因为它增加了游戏和媒体功能,...

2020-09-18 17:25:51 37 0

翻译 SDL编程入门(5)Surface 优化和软拉伸

Surface 优化和软拉伸 到现在为止,我们一直都是将我们的图像原始地融合在一起。因为我们只显示一张图片,所以这并不重要。当你在做游戏的时候,原始图像会导致不必要的减速。我们将把它们转换为优化的格式来加快它们的速度。 SDL2还为SDL表面提供了一个新的功能,叫做软拉伸,它允许你将图像按比例放大...

2020-09-18 17:05:36 35 0

翻译 SDL编程入门(4)按键操作

按键操作 点X关闭出窗口只是SDL能够处理的事件之一。另一种在游戏中大量使用的输入方式是键盘。在本教程中,我们将根据您所按的键来使不同的图像出现。 //按键表面常量 enum KeyPressSurfaces { KEY_PRESS_SURFACE_DEFAULT, KEY_PRE...

2020-09-18 16:46:45 19 0

翻译 SDL编程入门(3)事件驱动编程

事件驱动编程 除了在屏幕上放置图像外,游戏还要求您处理用户的输入。你可以通过SDL使用事件处理系统来实现这一点。 //主循环标志 bool quit = false; //事件处理程序 SDL_Event e; 在我们的代码中,在SDL被初始化并加载媒体后(如前面教程中提到的),我们声明一个退...

2020-09-18 16:06:53 14 0

翻译 SDL编程入门(2)在屏幕上显示图像

在屏幕上显示图像 现在你已经打开了一个窗口,让我们在上面放一张图片。 注意:从现在开始,教程将只涉及源代码的关键部分。如果想看完整的程序,你必须下载完整的源码。 //启动SDL并创建窗口 bool init(); //加载媒体 bool loadMedia(); //释放媒体并关闭SDL vo...

2020-09-18 15:28:44 24 0

翻译 SDL编程入门(1)Hello SDL

Hello SDL 你的第一个图形窗口 所以你学会了C++的基础知识,但你厌倦了制作基于文本的小程序。为了使用诸如图形、声音、键盘、操纵杆等东西,你需要一个API(应用程序员接口),将所有这些硬件功能转化为C++可以交互的东西。 这就是SDL所做的事情。它将Windows/Linux/Mac/An...

2020-09-18 14:51:06 15 0

原创 Flutter 路由源码剖析

文章目录Flutter 路由源码剖析根路由初始化流程路由栈操作剖析相关类总结NavigatorOverlayOverlayEntryRoute自定义悬浮框路由视频课程 Flutter 路由源码剖析 路由页面的简单树形结构,仅包含关键控件 根路由初始化流程 我们知道MaterialApp实际上是对...

2020-08-05 14:24:12 113 0

原创 Flutter 页面更新流程剖析

文章目录Flutter页面更新流程剖析更新流程渲染过程视频课程 Flutter页面更新流程剖析 更新流程 当我们需要更新页面时,会调用setState方法,这里我们就以之为突破口,研究一下页面更新的流程。 flutter\lib\src\widgets\framework.dart /// [St...

2020-08-05 14:20:32 200 0

原创 Flutter 事件处理源码剖析

Flutter 事件处理源码剖析 事件都是由硬件收集起来的,然后传递给系统处理。在Flutter中,则是由平台层传递给Flutter引擎,再由引擎通知给上层应用处理。在ui.Window类中,通过onPointerDataPacket回调来通知上层。 事件的分发 结合前面的启动流程分析,我们知道F...

2020-08-05 14:18:12 120 0

原创 Flutter 自定义控件之RenderObject
原力计划

文章目录使用RenderObject 自定义控件布局原理自定义示例自定义RenderObject自定义Widget使用自定义布局其他示例总结视频课程 使用RenderObject 自定义控件 前面课程已经讲了使用Canvas自绘控件,为什么还需要了解使用RenderObject 自定义控件呢?两种...

2020-08-05 14:15:31 220 0

原创 Flutter框架层启动源码剖析

文章目录Flutter框架层启动源码剖析WidgetsBinding 初始化构建Element和RenderObject树执行渲染小结总结视频课程 Flutter框架层启动源码剖析 PS: 剖析源码版本为Flutter 1.18 入口函数,其主要作用是注入给定的小控件并将其附加到屏幕上。 void...

2020-08-05 14:11:53 185 0

原创 Flutter 框架实现原理
原力计划

文章目录Flutter 框架实现原理UI 构建原理WidgetElementRenderObjectLayerUI构建过程视频课程 Flutter 框架实现原理 简版架构图 Framework:一个纯 Dart代码的 SDK。它实现了一套基础库, 包含动画、绘制和手势处理。并基于绘制封装了一套...

2020-08-05 14:02:31 374 1

原创 Flutter 大小单位详解
原力计划

关于Flutter 大小所使用的单位,官方文档没有给出非常明确的解释,因此一直存在模糊的说法,许多从事安卓开发者直接将之解释为安卓开发所用的单位dp,我认为这是非常不明智且不准确的说法,这个不准确不在于实质的数值,而在于概念的混淆!这样极容易对初学者造成误导,从事web前端或iOS原生开发的人,并...

2020-06-22 20:34:01 1372 1

原创 Flutter成就你的产品梦——就缺一个idea了
原力计划

在互联网时代,人们将信息与服务搬到了网络上,后来进入了移动互联网时代,人们又将互联网搬进了你我的生活中。智能手机是移动互联网的载体,如今,我们一刻也离不开智能手机,假如遗失了手机或者断开了网络,那对于个人来说不亚于一场灾难。 很多人说移动互联网已经进入了下半场,但这只是对于投资者而言的,移动互联网...

2020-06-10 23:44:19 203 0

原创 Flutter全栈式开发之Dart 编程指南

前言 Flutter 是 Google推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过 Dart语言开发 App,一套代码可同时运行在 iOS 、Android、Mac、Windows等平台,甚至能生成Web版,运行于浏览器中。 Dart亮相于2011年10月10至1...

2020-02-13 20:59:25 2033 0

原创 Dart 网络编程

Dart 网络编程 以下提供Dart 关于网络编程方面的各种代码示例,对于具体的协议方面知识,请自行学习。 TCP 服务端 import 'dart:convert'; import 'dart:io'; void main() { //绑定本地lo...

2020-02-07 19:48:00 674 0

原创 Python Web 之 Flask-SQLAlchemy 框架

文章目录数据库 ORM 框架MySql-8安装Windows 免安装版图形化客户端关于破解Flask-SQLAlchemyCRUD操作`Create` 插入数据`Read` 查询数据`Update` 修改数据`Delete` 删除数据定义实体关系欢迎关注我的公众号:编程之路从0到1 数据库 ORM...

2019-10-27 23:00:14 255 0

原创 Java 之JNI进阶篇(四)

文章目录JNI 本地对象的引用类型局部引用全局引用普通全局引用弱全局引用JNI 异常处理动态注册本地方法JNI 中的线程同步线程的注意事项 JNI 本地对象的引用类型 JNI将本地代码使用的对象引用分为两类:局部引用 和全局引用。 局部引用在本地方法调用期间有效,并在方法返回后自动释放。全局引用...

2019-10-06 02:17:55 234 0

原创 程序员C语言快速上手——工程篇(十三)

文章目录C语言的编译脚本shell脚本(bat脚本)Makefile 脚本 C语言的编译脚本 为什么需要编译脚本? 当C语言工程很大,源码非常多时,如果还去使用GCC命令编译程序,几乎是不现实的。这时候,可以通过编写shell脚本去执行编译命令,当然这并不是一种好的方式。在Linux上我们可以写s...

2019-10-02 19:33:53 719 0

原创 Go语言实践篇之MongoDB

文章目录Go语言中MongoDB的使用环境准备安装快速上手CRUD操作插入删除修改查询字段映射欢迎关注我的公众号:编程之路从0到1 Go语言中MongoDB的使用 关于MongoDB数据的基本介绍与环境搭建相关知识,可参见我的另一篇文章 文档数据库 MongoDB 环境准备 mgo简介 mgo(...

2019-09-16 12:34:17 138 0

原创 Dart 语言标准流与文件操作

文章目录标准输入输出流文件操作写文件读文件文件的其他操作关注我的公众号:编程之路从0到1 标准输入输出流 stdin stdout stderr // 导入io包 import 'dart:io'; void main() { // 向标准输出流写字符串 stdo...

2019-09-16 00:30:48 2241 0

原创 Dart 语言Stream详解

文章目录异步之 Stream 详解什么是Stream单订阅流创建 StreamperiodicfromFuturefromFuturesfromIterablevalue监听 StreamStream 的一些方法take 和 takeWhileskip 和 skipWhiletoList属性 le...

2019-09-15 21:46:23 1951 2

原创 Go语言入门——实践篇(五)

文章目录Web开发基础最简示例Go Web工作流程创建多路复用器处理静态文件创建处理器函数Go Web 应用基础简单配置处理器与处理器函数创建处理器创建多个处理器多路复用器第三方多路复用器欢迎关注我的公众号:编程之路从0到1 Web开发基础 所谓Web开发,也就是我们通常说的网站后端开发。与其他语...

2019-09-08 09:16:35 133 0

原创 Flutter 安卓平台源码剖析(一)

文章目录前言启动流程入口Activity环境初始化创建 splash viewApplication启动Java层与Flutter引擎关联运行Dart代码总结欢迎关注我的公众号:编程之路从0到1 前言 做技术,只有弄懂了原理,才能遇事不慌,手中无码,心中有码。这篇文章主要研究Flutter 在安卓...

2019-09-07 13:12:45 2035 0

原创 文档数据库 MongoDB 入门

文章目录概述MongoDB环境准备Windows 平台使用MongoDB配置 MongoDB 服务报错处理图形化工具Ubuntu平台简单示例 概述 什么是NoSQL? NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并...

2019-09-02 17:54:55 209 1

原创 Go语言入门——进阶语法篇(四)

文章目录异常处理与文件异常处理error 处理panic 与 recover延迟处理文件读写带缓冲区使用 ioutil文件追加文件的其他操作获取文件信息判断文件是否存在文件拷贝移动、删除和重命名欢迎关注我的公众号:编程之路从0到1 异常处理与文件 异常处理 error 处理 Go语言没有类似Jav...

2019-09-02 15:13:27 129 0

原创 Android与Python混合编程

早在2017年的时候,出于业余兴趣,我就开始研究关于Python移植到Android上的实现方案,我一直希望能实现Android与Python的混合编程,并为此写了一系列博客,我希望借助JNI技术,实现Java与Python的交互。或许是出于上班忙,时间少,精力有限,人的惰性等等原因,一直没有实现...

2019-09-01 00:33:48 12333 40

原创 Go语言入门——进阶语法篇(三)

进阶语法 面向对象 概述 所谓面向对象,是相对于面向过程而言的。那什么是面向过程呢?C语言就是一种典型的面向过程的编程语言。其实过程,也就是所谓的步骤。有一个经典例子是这样的,如何把大象放进冰箱? 把冰箱门打开 把大象放进去 把冰箱门关上 有些人可能会觉得荒诞,大象怎么能放得进冰箱呢?然而这就...

2019-08-15 19:58:57 292 0

原创 程序员C语言快速上手——工程篇(十二)

文章目录链接与库前言虚拟内存理解链接C程序编译的四个阶段预处理器编译器汇编器链接器小结什么是链接查看符号表*拓展:nm命令查看符号类型静态链接与动态链接函数库静态库打包静态库链接静态库动态库生成与位置无关的目标文件打包动态库链接动态库 链接与库 前言 其实学完C语言的语法后,我们往往会有数不清的疑...

2019-08-08 22:08:10 1120 2

原创 Flutter 新零售电商App UI界面设计与开发

文章目录前言四个主页仿淘宝详情页店铺订单详情登录欢迎关注我的公众号:编程之路从0到1 前言 使用Flutter开发跨平台UI界面,快速高效,可谓神器。网上关于Flutter入门博客已不少了,但编写的一些Demo界面过于简单,尤其是布局,与实际项目相去较远,这里将我自己学习过程中编写的界面整理后分享...

2019-08-01 20:49:06 3253 2

原创 Go语言入门——基础语法篇(二)

文章目录基础语法注释变量变量声明初始化多变量赋值常量枚举数据类型字符字符串数组切片从数组创建切片直接创建切片切片的操作字典/映射分支与循环if 分支switch 分支goto 跳转循环函数定义函数函数的不定参匿名函数与闭包闭包函数做为参数传递Go语言函数使用小结包自定义包包的几种导入方式包的初始化...

2019-07-31 20:33:40 317 0

原创 Go语言入门——环境准备篇(一)

文章目录环境准备篇背景Go开发环境搭建下载环境配置IDE的选择Go语言第一行代码Go语言交叉编译Go工程管理欢迎关注我的公众号:编程之路从0到1 环境准备篇 背景 Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。 由罗伯特·格瑞史莫(Ro...

2019-07-29 18:40:50 340 0

提示
确定要删除当前文章?
取消 删除