
GameMaker 8.0 从入门到入土
这是我从2017年开始在 Heabot 论坛(已关停)编写的一系列关于 GameMaker 8.0 的教程,最早是想写在贴吧,但是贴吧嘛懂得都懂,格式乱+不能二次编辑+吞贴,于是选择了 Heabot 论坛。 该教程从 2017 年一直写到 2019 年才完成大部分内容,并且之后也一直有在增加新的内容,涵盖从完全新手入门到精通 GameMaker 8.0 的一切内容,如果对 GameMake...
这是我从2017年开始在 Heabot 论坛(已关停)编写的一系列关于 GameMaker 8.0 的教程,最早是想写在贴吧,但是贴吧嘛懂得都懂,格式乱+不能二次编辑+吞贴,于是选择了 Heabot 论坛。 该教程从 2017 年一直写到 2019 年才完成大部分内容,并且之后也一直有在增加新的内容,涵盖从完全新手入门到精通 GameMaker 8.0 的一切内容,如果对 GameMake...
限制 由于 C++ 提供了 lambda 语法和强大的 functional 库,如果不做任何限制的话,那么实现柯里化是一件非常简单的事情。本文注重于介绍原理和过程,而不是最终结果,因此,让我们来做一些大胆的限制: 禁止使用任何标准库组件 禁止使用 lambda 语法 实现 Function 事实上,在我之前的文章 [C++] std::function 是如何实现 la...
C 语言:左值与右值 最初,C 语言中的左值(lvalue)意味着任何可以赋值的东西,因为它们可以放在赋值等号的左边,因此它们被命名为左值;相反地,那些只能放在赋值等号右边的东西就被称为右值(rvalue)。 时过境迁,随着 C 语言的版本迭代,这种分类方法已经不再具有价值,左值和右值的定义也随之发生改变。 但是在开始之前,我们需要特别明确一个概念:左值和右值在 C/C++ 中是表达式...
使用工具: Bus Hound, USB Device Tree Viewer 打开 Bus Hound,转到 Devices 选项卡,在设备列表中找到想抓包的 UVC 设备,勾选其 UVC interface。如果你不确定,可以把全部勾上,不影响: 通常,Video 帧数据通过 ISOC 传输,为了避免巨量的帧数据影响我们抓包,我们可以在 Settings 选项卡里把 ISOC 取...
在 C++20 中,我们有 Coroutine,在 Rust 中,我们有 Async。严格来说,二者之间没有完全等效的概念,但是我们可以找到一些相似之处,进而了解 C++ Coroutine 与 Rust Async 设计上的异同点。 由于我的上一篇文章介绍了 C++ 的 Coroutine,因此我们本文主要以 C++ Coroutine 的视角来看 Rust 的 Async。 为了更好...
前言 近段时间研究了一下 C++20 的协程(Coroutine),大概了解了其中的工作原理,做一下记录。 初次接触 Coroutine 时,给我的感觉是一脸懵逼的。和其他语言简单的 async、await 不同,想要使用 C++20 的 Coroutine,它要求你定义一个包含 promise_type 的类型,其中 promise_type 又需要至少包含 get_return_ob...
我们都知道,C++ 是不允许 lambda 函数递归调用自己的,如果想要递归,最好的办法就是使用 std::function: #include <functional> #include <iostream> int main() { std::function<unsigned(unsigned)> fact = [&fact](uns...
前言 本文并不是移动语义的教程,并且本文假设你已经看过 the Book,已经了解了 Rust 中所有权的概念。 本文包含汇编和 MIR,但是并非需要了解汇编和 MIR 才能看懂。只要跟随本文的思路,即使以前不懂汇编和 MIR,也可以理解本文所表达的意图。 从汇编看移动 先简简单单 wrapper 一个 i32: use std::fmt::Debug; #[derive(Deb...
什么是中文编程 中文编程(或者称为中文编程语言)是指使用中文来书写的程序设计语言,其目的是为了减少对英语的学习,将精力集中在程序设计上,并且便于程序交流和代码维护。 摘自百度百科。 我认为中文编程可以从浅入深地划分为三种类型: 使用中文标识符 使用中文关键字 使用中文语法 使用中文标识符 这种中文编程是入门门槛最低的:绝大部分现代语言的编译器都支持 Uni...
前段时间,我想要通过提供选项框的形式来允许用户自定义界面 UI 的字体和大小,就像这样: 然后生成形如 * { ... } 的 QSS 字符串,通过 qApp->setStyleSheet(qss) 应用给所有窗口组件。 然而奇怪的事情出现了,我在主界面有两个 QTextBrowser 组件,一个是通过 new QTextBrowser 出来然后 addWidget 到布局上的...