01 2015 档案
摘要:### 项目结构```├── bin│ ├── login│ └── main├── pkg│ └── darwin_amd64│ └── login│ └── auth1.a├── src│ ├── cfg│ │ └── testcfg.go│ ├── db│ │ ├── ...
阅读全文
摘要:Pass { Stencil { Ref 1 Comp Always Pass REPLACE } AlphaTest Gr...
阅读全文
摘要:#!/usr/bin/wishproc icanspeak {} { set name [.ent get] if {[string length $name] != 0} { exec s $name }}label .lab -text "Enter word:"...
阅读全文
摘要:####简单说,就是某个系统作为一个服务,对全局系统可见.Service Locator (服务定位)```//简单粗暴的代码, 使用声音系统// Use a static class?AudioSystem::playSound(VERY_LOUD_BANG);// Or maybe a sing...
阅读全文
摘要:#### 两个例子1.GUI event loop```while (running){ // 从事件队列里获取一个事件 Event event = getNextEvent(); // Handle event...}```2.Central event bus 不同系统公用的通信中心...
阅读全文
摘要:# component不同作用的程序需要保持互相隔离我们不想ai 物理 渲染 声音 等等功能 耦合在一起,像下面这样```//bad if (collidingWithFloor() && (getRenderState() != INVISIBLE)){ playSound(HIT_FLOOR)...
阅读全文
摘要:### Behavioral Pattern#### interpreter pattern string -> code instruction set: 提供基本操作virtual machine: 执行指令front-end: 生成效率更高的字节码```void setHe...
阅读全文
摘要:awake 只调用一次, awake在所有obj都初始化之后被调用. 用途: 初始化游戏状态 设置脚本间的引用 ### ExecuteInEditMode 编辑模式下```这个模式下,脚本编译,会自动reload[ExecuteInEdit...
阅读全文
摘要:```while (true){ Event* event = waitForEvent(); dispatchEvent(event);}while (true){ processInput(); update(); render();}```游戏循环在游戏运行期间一直执行,每次循环,会...
阅读全文
摘要:### 对象销毁规则1 未被使用的函数返回值2 被let绑定的值, 在函数末尾销毁,除非被moved```let v = obj::new("a");other_fun(v); // v被move了, v在other_fun里面销毁,而不是当前函数的结尾```3 被替换的值将销毁```let mut...
阅读全文
摘要:### double buffer 双缓存简单说: 当一个缓存被读取的时候,往另一个缓存里写入, 如此交替#### the pattern有两个缓存实例,一个是 current buffer, 一个是next buffer从current buffer读取信息, 往next buffer里写入信息....
阅读全文
摘要:image 操作系统 应用registeries image 的远程仓库containers 类似一个目录,一个容器包含了 应用运行所需要的一切东西, 容器之间互相独立 image包换一系列的层,使用Union file systems把这些层组合在一起,对im...
阅读全文
摘要:### State不好的代码```//处理玩家输入的代码void Heroine::handleInput(Input input){ if (input == PRESS_B) { if (!isJumping_ && !isDucking_) { // Jump... ...
阅读全文
摘要:1 强制类只有一个实例2 提供全局的访问###为什么使用:```1 如果没有地方访问这个类,则不会创建实例2 静态类在main之前实例化, 可以尝试Lazy initialization3 派生单例类, 获得单例能力```###缺点:```1 代码变得难懂, 上下文切换等等2 增加了耦合度3 并行不...
阅读全文
摘要:#Prototype```// 不好的做法 monster ghost demon sorcerer class Spawner{public: virtual ~Spawner() {} virtual Monster* spawn...
阅读全文
摘要:#Observer成就系统achievements system玩家完成某种成就后,通知监督者,监督者做出相应出来```//简单来说就是事件触发的时候, 通知监督者class Observer{public: virtual ~Observer() {} virtual void onNotif...
阅读全文
摘要:### instanced rendering.send shared data to gpu just once mesh, texture, leavespush every instance’s unique data position, color, scaleWith a si...
阅读全文
摘要:A dead simple implementation looks like:```// simple void InputHandler::handleInput(){ if (isPressed(BUTTON_X)) jump(); else if (isPressed(BUTTON_Y)...
阅读全文
摘要:透墙显示,遮挡显示,使用ztestTags { "Queue"="Overlay+1" "RenderType"="Transparent"} Pass { // 透视效果,关闭cull Cull Off // 不记录深度值 ...
阅读全文
摘要:frame move buffer: save move positionrecive server sync:All moves earlier than the ClientAdjustPosition() call's TimeStamp are discarded. All moves th...
阅读全文
摘要:extern crate core;#[deriving(Show)]struct Foo { f : Box}fn main(){ let mut a = Foo {f: box 0}; let y : &Foo; // out(&a); { l...
阅读全文
摘要:maps 适用于需要在运行时改变数据结构(record则不行)的场景,可以动态增加key 数据量不宜过大,具体多大没有实际数据, maps from_list 如果list表很长,则相应的耗时时间会很长,此时最好用lists模块。 由于map是动态结构,速度上必然无法匹敌record。...
阅读全文
摘要:using UnityEngine;using System.Collections;public interface IState { void BeforEnter(); void BeforLeave();}public interface ISceneState: IState ...
阅读全文
摘要:TargetingA target is a structure of information that describes the state, and change of state, of an object that exists in a remote person's instance ...
阅读全文
摘要:client-serverthe server takes snapshots of the current world state at a constant rate and broadcasts these snapshots to the clients.server -> snapshot...
阅读全文