游戏后端开发
zhizhizhi志
只会CV大法
展开
-
Go 实现 AOI 区域视野管理
golang aoi原创 2023-03-02 12:00:14 · 583 阅读 · 0 评论 -
Go 版 的Bresenham算法
Bresenham算法原创 2023-02-28 20:38:30 · 144 阅读 · 0 评论 -
游戏X,Y坐标轴中,判断两节点之间是否存在障碍物。
arpg游戏中我们一般都用 1 代表可行走点 0 不可行走点。组成一个二维数组。byte[][] mapConfig。这样就可以使用 坐标系来求解一些问题。比如 这里所说的 如何知道两点之间是否存在障碍物。我的思路从起点开始 x轴 或 Y轴 循环加 0.5。判断当前点是否是阻挡点。checkNoBlockPosition(int map)...原创 2020-04-12 14:25:50 · 2233 阅读 · 2 评论 -
Java 多线程下如何使用Random生成随机数。
做游戏后台的,就避免不了生成随机数,随机物品给玩家,就会存在大量的调用随机方法的可能。我们探讨下哪种写法比较合适。java.util.Randomjava.util.Random 从Java 1.0开始就存在了。它是一个线程安全类,理论上可以通过它同时在多个线程中获得互不相同的随机数。这样的线程安全是通过AtomicLong实现的。Random 使用 AtomicLong CAS (c...原创 2019-01-09 16:56:16 · 6083 阅读 · 0 评论 -
分段锁的实现
public class Demo4_SegmentLock { private static Integer segments = 16; private final static Map<Integer, ReentrantLock> lockMaps = new HashMap<>(); public Demo4_SegmentLock(...原创 2018-11-19 10:33:46 · 1601 阅读 · 1 评论 -
Mac下设置Btrace的环境变量
1.下载Btrace包 btrace-bin-1.3.92.mac的环境变量设置:打开 .bash_profile vi ~/.bash_profileBTRACE_HOME=/Users/zz/zzh/btrace-bin-1.3.9export BTRACE_HOMEexport PATH=${PATH}:${BTRACE_HOME}/bin注意:前提是你已配置了ja...原创 2018-11-20 17:35:40 · 599 阅读 · 0 评论 -
随机产生不重复的[min,max] 范围的count大小的数组
public class Demo6_ArrayRandom { private static final Random random = new Random(System.currentTimeMillis()); /** * 随机产生不重复的[min,max] 范围的count大小的数组 * * @param count * @p...原创 2018-11-20 15:15:07 · 147 阅读 · 0 评论 -
如何使线程池加入任务一直达到MaximunPoolSize的值,再加入队列
public class Demo5_ThreadPool extends ThreadPoolExecutor { private final AtomicInteger submittedCount = new AtomicInteger(0); public Demo5_ThreadPool(int corePoolSize, int maximumPoolSize, ...原创 2018-11-20 15:11:24 · 579 阅读 · 0 评论 -
使用线程池newFixedThreadPool时注意队列过大造成阻塞而引起锁不释放的问题
自定义的线程或者newFixedThreadPool()使用LinkedBlockingQueue作为任务队列的需要注意案列1:有两处业务 共用了一把锁lock.writeLock().lock();try{while(true){//clean data}}finally{lock.writeLock().lock();}从这里看出,因为长时间持有lock,那么其...原创 2018-11-14 11:26:02 · 21829 阅读 · 0 评论 -
多线程下SimpleDataFormat的使用
static ThreadLocal<DateFormat> safeSaf = new ThreadLocal<DateFormat>{ @Override protected SimpleDateFormat initialValue(){ return new SimpleDateFormat("yyyy-MM-dd HH:...原创 2018-11-13 20:53:05 · 249 阅读 · 0 评论 -
Mysql blob字段转16进制再转成java对象
第一步假如有个表core_player字段 itemssql:select hex(items)from core_player where id = 1得到 一串 二进制,复制保存。第二步...原创 2018-11-13 20:46:32 · 1285 阅读 · 0 评论