xin's blog

技术笔记
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年7月1日

摘要: 在游戏中会有很多的实例对象,比如装饰品,装备等,一个同类型的装备会有很多件,这时候如果每次在显示数据或者使用该装备时都要从服务端发回这个装备的所有数据就给服务端增加太大压力了,常见的做法就是把基础属性全部做配置,然后在游戏启动时载入并在内存中实例化这些实例,在需要使用的时候后端只需要发送某武将装备instance001武器,客户端就可以直接读取内存中实例化好的数据来做显示。 配置的数据结构,一般这类数据都是单一对象,所以每个配置里的每一条数据都要有单独的instanceId,每个数据类型都接受构造参数传入(要保证顺序),还有属性的设置。上代码(未整理,有点粗糙。。。): 生成实例静态类(最多接 阅读全文

posted @ 2012-07-01 19:18 dcx 阅读(372) 评论(0) 推荐(0)

摘要: 使用TextField的Event.CHANGE事件传递的时候, fdt内置的external player会侦听到两次CHANGE事件. 下面这个例子运行时, 我只输入了一个字符"s": package test {import flash.display.Sprite;import flash.events.Event;import flash.text.TextField;import flash.text.TextFieldType;/** * @author daichangxin */public class Test extends Sprite{ priva 阅读全文

posted @ 2012-07-01 19:15 dcx 阅读(168) 评论(0) 推荐(0)

摘要: 最近C的学习又给耽搁了, 写的代码远远跟不上看的速度... 今天写的是Pascal三角形, 也就是从小到大循环打印排列组合:/* Function Prototypes */int Combinations(int n, int k);int Factorial(int n);void PrintSpace(int spaceNumber);/* Main Program */int main (int argc, const char * argv[]){ int n = GetInteger(); int k = 0; while (n - k) { ... 阅读全文

posted @ 2012-07-01 19:13 dcx 阅读(178) 评论(0) 推荐(0)

摘要: 假设两个数x y, 计算int r = x %y; 如果r是0, 则最大公约数就是y. 如果r!=0, 那么将x设为原来y的值, y换成r的值, 继续刚才的步骤, 因为欧几里德认为, r和y的最大公约数 与 x和y的最大公约数是一样的. 代码: #include <stdio.h>#include "genlib.h"#include "simpio.h"int GCD(int x, int y);int main(){ int x, y; printf("请输入数字x: \n"); x = GetInteger(); p 阅读全文

posted @ 2012-07-01 19:11 dcx 阅读(114) 评论(0) 推荐(0)

摘要: 求n的平方根, 则先拿n与n/n的值的中间量double g = (n + n/n)/2作为平方根测试, 发现不合适, 再缩小范围g = (x/g + g)/2, 测试直到一个接近可以接受的值.#include <stdio.h>#include "genlib.h"#include "simpio.h"bool Equal(double x, double y);double Sqrt(double x);int main(){ printf("输入数字n :\n"); int n = GetInteger(); pri 阅读全文

posted @ 2012-07-01 19:10 dcx 阅读(222) 评论(0) 推荐(0)

摘要: 人从房间的一端走到另一端, 过程其实是每次都走剩下路程的一半, 这样无限循环下去, 按理来说是无解的. 但是看公式: s = 1/2 + 1/4 + 1/8 + ... 两边同时乘以2: 2s = 1 + 1/2 + 1/4 + 1/8 + ... 第二个公式里有一项就是公式一, 拿公式一来替换得到: 2s = 1 + s 得出 s = 1; 神奇吧. 在程序里这样写的话会死循环, 因为没有终止的条件. 但是每个语言都是有精度的, 如果将当前计算相加的结果精度已经达到再加上更小粒度的数据都没有意义的时候, 那么也是一个判断跳出的条件: s == s + term; 这里的term即使被循环了n 阅读全文

posted @ 2012-07-01 19:10 dcx 阅读(612) 评论(0) 推荐(0)

摘要: 希腊人特修斯走迷宫的方法: 永远沿着右手边的墙壁, 只要不是回路, 就一定能走出迷宫. 在这里需要定义几个方法: 左转:turnLeft() 右转:turnRight() 是否面向墙壁:ifFaceWall() 是否走出迷宫:ifOutSize() 往前走一格:moveForward() 具体思路, 以是否走出为跳出条件循环进行以下步骤: 右转如果现在面壁, 则循环turnLeft一直到不面壁向前走一步while (!this.ifOutSide()){ this.turnRight(); while (this.ifFaceWall()) { this.tur... 阅读全文

posted @ 2012-07-01 19:06 dcx 阅读(289) 评论(0) 推荐(0)

摘要: Command+Return 直接跳入下一行 Command + Shift + Return 在当前行尾加入冒号跳入下一行 这两个快捷键真是给力. 写Python太方便了! Command + R直接编译运行, 并能显示打印结果. Command + Shift + R, 在终端中编译. 如果想传参就cd到文件目录手动输入编译吧. 阅读全文

posted @ 2012-07-01 19:04 dcx 阅读(223) 评论(0) 推荐(0)

摘要: 为了让物体有些立体感, 游戏中往往使用斜45度角来显示图像, 包括寻路等等, 相对应的格子都使用菱形绘图, 因为这样方便摆放和深度层级摆放排序. 1 如何摆放菱形格子? 菱形格子的通用尺寸是高为size, 宽为2 * size, 这样美术方便作图, 程序也方便计算. 这样计算下来其实(0, 0)的上方顶点(即舞台的<size, 0>点)与横坐标的角度实际是 atan(1/2 * size / size), 大约等于26.56度. 这里坐标系是向右为x正方向, 向下为y正方向, 与Flash的坐标系一致, 相对应的索引位置(3, 1)则表示x为4个单位, y为2个单位的坐标点: 从图 阅读全文

posted @ 2012-07-01 19:03 dcx 阅读(1687) 评论(0) 推荐(0)

摘要: 在pc下安装参考文章 http://ciniao.me/article.php?id=9 在mac下安装 twisted: 下载twisted的安装包, 然后在终端中cd到安装包的目录下, 输入python setup.py install执行完就完成了twisted的安装. 对应的zope-interface, 到 http://old.zope.org/Products/ZopeInterface页面下载最新版文件, cd到目录下执行:python setup.py buildpython setup.py install 阅读全文

posted @ 2012-07-01 18:59 dcx 阅读(782) 评论(0) 推荐(0)