执子之手

与子偕老


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

  • 搜索
close

如何在Mac上编译vcmi

时间: 2020-05-09   |   分类: 游戏     |   评论:  0    |   访问: 0

vcmi是英雄无敌三的开源引擎。与fheroes2类似,它依托于英雄无敌3的游戏数据,使用完全重写、开源的引擎,实现了原版游戏的绝大多数功能。相比于原版游戏,对高清分辨率的支持也更好,譬如增加了宽屏分辨率的支持。vcmi使用c++语言编写,依赖库主要包括:boost,ffmpeg;图形库使用的是SDL2。另外,图形启动工具依赖于QT5。vcmi支持平台包括Windows,MacOS,Android和Linux,算是全平台支持了。

不过官方的发布系统好像有点问题,MacOS版本最新到2019年9月,后面的版本没有构建成功。

VCMI介绍图片

英雄无敌3,全称《魔法门之英雄无敌Ⅲ》,是1999年由New World Computing在Windows平台上开发的回合制策略魔幻游戏,其出版商是3DO。在PC版发布之后,3DO和Loki Software分别推出了可在苹果机和Linux系统上运行的版本。

该作是魔法门之英雄无敌系列的第三代。游戏情节参照第一次贯穿了《魔法门VI:天堂之令》,并且部分作为了《魔法门VII:血统与荣耀》的前传。玩家可以选择六个战役之中的一个来进行情节模式,也可以选择场景来进行与电脑或其他玩家的对抗。之后,又陆续发布了《末日之刃》、《死亡阴影》两个资料片,后来又发布了《英雄无敌历代记》共计8个战役。

英雄无敌3历来被称为英雄无敌系列的经典之作,可以说是这个系列游戏的巅峰之作。

vcmi的官网有编译方法的说明,但是有些小的地方有些小问题。特此记录一下,以备后查。本次编译使用cmake在命令行下面完成。需要确保已经安装了xcode及brew。

阅读全文 »

如何在Mac上编译fheroes2

时间: 2020-05-08   |   分类: 游戏     |   评论:  0    |   访问: 0

fheroes2是英雄无敌2的开源引擎,它基于英雄无敌2的游戏数据,采用完全重写的引擎实现了绝大多数原版游戏的功能。使用的图形引擎是SDL。

Free implementation of Heroes of the Might and Magic II engine. SDL is used.

fheroes2最初是在SourceForge上面开源的,不过最近两年基本停止更新了。最近在Github上偶然发现了有人在继续开发了,并且对图形引擎进行了更新,同时支持SDL2。

英雄无敌2

阅读全文 »

使用HttpServletRequestWrapper解决无法多次获取request Body的问题

时间: 2020-04-30   |   分类: 开发     |   评论:  0    |   访问: 0

在使用AOP编程的时候,经常碰到需要多次获取整个请求的body的情况。例如:典型场景下我们要在AOP切面中做日志记录或权限校验,此时需要调用request.getInputStream获取输入流,从而读取整个请求的消息体。但是这通常会触发一个异常:java.lang.IllegalStateException: getInputStream() can't be called after getReader()。

出现这个问题的原因是默认的HttpServletRequest对象中的getInputStream,getReader函数式只允许调用一次。在一次请求中,除了我们在切面中调用getInputStream之外,Spring MVC框架在进行参数转换的时候还需要调用getInputStream方法读取整个请求的消息体,然后转回为请求参数,这违背了只调用一次的原则,从而触发了以异常,

为了解决这个问题,我们可以引入HttpServletRequestWrapper这个对象。这个类封装了HttpServletRequest的行为,我们可以继承这个类,从而使用一个新类模拟原始HttpServletRequest的行为。然后使用过滤器(filter)将原始的HttpServletRequest对象替换为HttpServletRequestWrapper对象。

最近在项目中有需求为API请求增加参数签名校验,使用了AOP切面功能,因此碰到了上面的问题:参数校验切面中需要在读取整个请求报文,然后对报文进行hmac算法从而计算签名值。下面说一下具体的解决办法,以代码为主。

阅读全文 »

Linux常用命令介绍 04 - journalctl

时间: 2020-04-20   |   分类: 运维     |   评论:  0    |   访问: 0

journalctl命令是Systemd日志系统的一个命令,主要用途是用来查看通过Systemd日志系统记录的日志。在Systemd出现之前,Linux系统及各应用的日志都是分别管理的,Systemd开始统一管理了所有Unit的启动日志,这样带来的好处就是可以只用一个 journalctl命令,查看所有内核和应用的日志。

1. 基础用法

1.1 查看所有日志

不用添加任何任何参数运行可以查看本次启动以来的所有日志。

1# 显示本次启动以来的全部日志
2journalctl 

1.2 查看内核日志

使用-k参数可以查看内核日志。

1# 显示内核日志
2journalctl -k
阅读全文 »

Linux常用命令介绍 03 - tree

时间: 2020-04-07   |   分类: 运维     |   评论:  0    |   访问: 0

tree命令的作用是以树状图的形式列出目录的内容。通常在写文档时需要列一下文件目录结构,这个时候tree命令就非常有用了

1. 安装&使用

我用的Ubuntu上默认没有安装tree命令。可以通过:sudo apt install tree命令安装。其他的发行版参考对应的命令。

直接使用tree命令或者tree [directory]命令即可列出目录中的内容。

2. 只列出目录

默认情况下,tree命令会同时列出目录中的文件。例如:

1# 列出全部内容
2tree .
3.
4├── Cargo.lock
5├── Cargo.toml
6└── src
7    └── main.rs
8
91 directory, 3 files

如果不想显示文件,则可以使用-d参数,只列出文件夹:

1# 只列出目录
2tree -d .
3.
4└── src
5
61 directory
阅读全文 »

Linux常用命令介绍 02 - ssh

时间: 2020-03-29   |   分类: 运维     |   评论:  0    |   访问: 0

SSH在Linux中占有重要的地位。通常我们远程登录服务器都是通过ssh协议,但是ssh命令(或者SSH协议)能够实现的功能还有很多。我日常用到一些,但是肯定还有各种各样的用法,有兴趣的朋友可以自行搜索更多资料。

1. 防止掉线

使用SSH连接服务器时候,通常第一个要修改的选项就是防止掉线。总体上来说有两类方法来防止服务器掉线:

  • 客户端/客户端工具发送心跳包;
  • 服务器端发送心跳包。 如果有服务器的控制权,可以修改ssh的配置选项,推荐使用第二种方案,通常更有保障一些。如果没有服务器的控制权,那就只能用第一种了。
阅读全文 »

Mac上面的文件比较功能

时间: 2020-03-20   |   分类: 技巧     |   评论:  0    |   访问: 0

以前在Windows上一直使用TotalCmd,它的比较功能非常棒。不论是目录还是文件,只要按下F10,就能够比较,还能够同步,非常方便。切换到Mac也有好几年了,一直没有找到完全匹配上的替代品。现在用的是ForkLift,常用功能还可以,但是比较功能差距很大。目前正在想办法自己写一些脚本增强一下功能。

目前实现了一个脚本,通过ForkLift调用,可以满足基本的比较功能:

  • 使用file判断文件类型,对文本类型调用FileMerge进行源码比较;
  • 如果不是,则只用cmp功能比较内容是否相等;
  • 后期考虑增加对目录类型的支持,引入目录比较工具。
阅读全文 »

Linux常用命令介绍 01 - curl

时间: 2020-03-13   |   分类: 运维     |   评论:  0    |   访问: 0

很久没有更新博客了。之前一直用hexo,配置起来稍显复杂,单个的时间一长有些忘了,搞不起来了,于是荒废了很长时间。最近下定决心迁移到了Hugo上。总体感觉Hugo速度确实快,这一点非常喜欢。以后有时间可以介绍一下这次迁移的过程。

这几年一直不间断的与Linux打交道,但是Linux的命令一直没有深入研究过,所以碰到问题的时候还是要各种搜索,挺麻烦的。这次想整理一个常用命令的介绍系列,把平常用到的命令简单介绍一下。不会是详尽的帮助类介绍,更多的是基于场景的介绍:譬如要实现什么功能用什么参数之类的。作为以后的备查吧,就不用再到处搜索了。:)

第一个命令介绍curl。

阅读全文 »

iOS证书及推送相关概念

时间: 2018-09-04   |   分类: 开发     |   评论:  0    |   访问: 0

1.i OS开发中碰到的概念

1.1 开发者账号

苹果对开发者账号分为如下几类:

  • 个人 Individual ($99/year,可以上架Apple Store,最大UUID数目100)
  • 组织 Organizations。又可以写分为两类:
    • 组织 Organization (普通账号,$99/year,能够上传Apple Store,最大UUID数目100)
    • 企业账号 Enterprise Program (企业账号,$299/year,能够进行企业发布,不能够发布到Apple Store,不限制UUID数目)
  • 教育机构(Educational Institutions)

阅读全文 »

迁移到SpringBoot 08 - 日志

时间: 2018-07-13   |   分类: 开发     |   评论:  0    |   访问: 0

SpringBoot默认的日志配置通常来说足够满足要求:日志记录到控制台,也能够配置日志的级别,样式等等。但是其也有些不足:没有了之前logback提供的热更新日志配置的功能。

logback有个非常好用的配置是“scan”,当“scan=true”的时候默认一分钟刷新一次配置。这样可以自动更新系统的日志级别。对于在线系统可以方便修改日志级别获取更加详细的日志,方便定位错误。这样可以保证服务不中断的情况下调整日志级别获取更多日志信息。但是默认的SpringBoot配置中不支持这种选项。

阅读全文 »
1 2 3 4 5 6 7 8
Orchidflower

Orchidflower

Do one thing at a time, and do well.

76 日志
6 分类
83 标签
RSS 订阅
GitHub 知乎 OSC 豆瓣
© 2009 - 2022 执子之手
Powered by - Hugo v0.104.3
Theme by - NexT
ICP - 鲁ICP备17006463号-1
0%