分类 编程 中的文章

Unity3D | Transform类

Transform类

在unity中,把transform类理解为,transform类是在每个对象生成时自动附加的一个类。在Unity的视图中,点击Hierarchy中的对象,就可以在Inspector中可以看到存在Transform的组件。

……

阅读全文

Unity3D | UGUI

Text

Text的属性

UnityHierarchy 面板上右键–>UI–>Text, 在 Inspector 面板上查看属性 属性 功能

  • Text 需要显示的文本
  • Font 显示文本的字体 如:微软雅黑,宋体等
  • Font Style 显示文本的样式,有普通,粗体,斜体,粗体和斜体四种选项
  • Font Size 显示字体的大小
  • Line Spacing 行与行之间的垂直距离
  • Alignment 文本的水平和垂直方向的对齐方式
  • Align by Geometry 使用字形几何范围执行水平对齐,而不是字形度量
  • Horizontal Overflow 用于处理文本宽度超出文本框的情况的方法,有 Wrap (隐藏)和Overflow (溢出)两个选项
  • Vertical Overflow 用于处理文本高度超出文本框的情况的方法,有 Truncate (截断)和Overflow (溢出)两个选项
  • Best Fit 忽略 Size 属性,将文本合适的显示在文本框内
  • Color 文本的颜色
  • Material 用来渲染文本的材质

其中水平溢出和垂直溢出的两个选项效果:

……

阅读全文

Golang | redis实现分布式锁

概述

网上有很多Golang操作redis的例子,我使用github.com/gomodule/redigo/redis包写一个关于redis分布式锁的问题。

redis分布式锁

锁需要的几个组件

  • 获取锁- 删除锁 分布式锁还需要
  • 给锁加上唯一id (只能获取和删除自己的锁)- 给锁加上过期时间 (防止死锁)

golang代码

推荐使用redis的连接池

……

阅读全文

Golang | redis

概述

网上有很多golang操作redis的例子,我使用github.com/gomodule/redigo/redis包写一个关于redis分布式锁的问题。

redis分布式锁

锁需要的几个组件

  • 获取锁
  • 删除锁

分布式锁还需要

  • 给锁加上唯一id (只能获取和删除自己的锁)
  • 给锁加上过期时间 (防止死锁)

golang代码

推荐使用redis的连接池

……

阅读全文

Lua | next的使用

lua_next

lua_next(L,index):先把 表(lua栈 index所指的表), 的当前索引弹出,再把table 当前索引的值弹出,也就是先弹出 table的索引,再弹出table索引的值 举例:

local t = {
    ["a"] = 1,
    ["b"] = 2,
    ["c"] = 3
}

使用lua_next遍历table t

……

阅读全文

Lua | API

lua_pop和lua_settop

lua_settop

我们直接来看lua_settop,文档解释

/*
设置栈的高度,如果之前的栈顶比新设置的更高,那么高出来的元素会被丢弃,反之压入nil来补足大小
假设栈里有2个元素。
如果index=0,那么移除栈上所有元素
如果index=1,移除栈顶一个元素
如果index=4,那么压入2个nil元素
*/
void lua_settop (lua_State *L, int index);

使用代码测试

int lua_test(lua_State *L)
{
    int pop_num = lua_tointeger(L,1);
    printf("pop_num= %d\n", pop_num);
    lua_settop(L,0);
    printf("1-top %d\r\n",lua_gettop(L));
    lua_pushinteger(L,31);
    lua_pushinteger(L,32);
    lua_pushinteger(L,33);
    lua_pushinteger(L,34);
    printf("2-top %d\r\n",lua_gettop(L));
 
    lua_pop(L,pop_num);
    lua_settop(L, -2); //清除一个栈顶
 
    printf("3-top %d\r\n",lua_gettop(L));
    printf("栈底 %d\r\n",lua_tointeger(L,1));
    printf("栈顶 %d\r\n",lua_tointeger(L,-1));
    return 0;
}

输出

pop_num= 0
1-top 0
2-top 4
3-top 3
栈底 31
栈顶 33

总结lua_settop(L, idx)函数

……

阅读全文

Golang | gomod拉取私有仓库

概述

在使用go mod的过程中,依赖的包往往是第三方库,当我们自定义一个包并且放在github.com私有仓库时候,按照原来的方法则会有如下问题。

get "gitlab.com/xxx/zz": found meta tag get.metaImport{Prefix:"gitlab.com/xxx/zz", VCS:"git", RepoRoot:"https://gitlab.com/xxx/zz.git"} at //gitlab.com/xxx/zz?go-get=1
  verifying gitlab.com/xxx/zz@v0.0.1: gitlab.com/xxx/zz@v0.0.1: reading https://sum.golang.org/lookup/gitlab.com/xxx/zz@v0.0.1: 410 Gone

这个错误是因为新版本go mod会对依赖包进行checksum校验,但是私有仓库对sum.golang.org是不可见的,它当然没有办法成功执行checksum

……

阅读全文

八个基础排序

sort排序

std::sort( )函数是库函数提供的排序函数,必须包括头文件#include <algorithm>,它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n)

Sort函数有三个参数:(第三个参数可不写)

……

阅读全文

《仙剑奇侠传》编译运行

概述

今天在github上找到了《仙剑奇侠传》的rpg单机游戏sdlpalsdlpal 是一个开源项目,基于sdl把仙剑奇侠传重写了一遍。 下面是我的编译过程总结。

环境

  • win10- sdl1.2- sdlpal- vs2017- DirectX SDK10 下载sdlpal
$ git clone https://github.com.cnpmjs.org/sdlpal/sdlpal.git

下载sdl1.2

……

阅读全文

实现atoi和itoa函数

题目1: 把字符串转化为整数

有整数字符串,"13579", 和 "246810". 请写一个函数把这两个字符串转化为整数
步骤:

  • 先判断正负
  • 遍历字符串,转换字符为整数
//atoi.cc
#include  <stdio.h>
int my_atoi(char *str)
{
    bool bmin = false;
    int result = 0;
    //先判断正负
    if ((*str > '9' || *str < '0') && (*str == '+' || *str == '-'))
    {
        if (*str == '-') bmin = true;
        str++;
    }
    
    while (*str != '\0')
    {
        if (*str > '9' || *str < '0') break;

        //printf("befter str: %s\n", str);
        result = result * 10 + (*str++ - '0');
        //printf("after str: %s\n", str);
    }
    if (*str != '\0')    return 0;

    return bmin ? -result : result;
    
}


int main()
{
    char a[] = "13579";
    char b[] = "246810";

    printf("a: %d\n", my_atoi(a));
    printf("b: %d\n", my_atoi(b));
}

编译&运行

……

阅读全文