`
文章列表
在此把这个算法称作B* 寻路算法(Branch Star 分支寻路算法,且与A*对应),本算法适用于游戏中怪物的自动寻路,其效率远远超过A*算法,经过测试,效率是普通A*算法的几十上百倍。 通过引入该算法,一定程度上解决了游戏服务 ...
在FP10中新加了Vector 网上一度的盛传效率大大的提高,在写3D引擎前,对他们作了效率对比,测试环境是Thinkpad+Vista(64)+Flash CS4 1.先对数字进行测试 var tt:Vector.<int>=new Vector.<int>();var ss:Array=new Array();var i:uint;var time:uint=getTimer();for(i=0;i<1000000;i++)    tt.push(i);trace(getTimer()-time);time=getTimer();for(i=0;i<1 ...
这是《Flex第一步》里面一个朋友问我的问题,特此拿出分享一下。或许问题比较简单,还是将其记录一下比较好。 需求如下: 当AIR启动后,监听全局键盘事件,即this.addEventListener( KeyboardEvent.KEY_DOWN, keydownHandler ); 运行后效果: 当AIR运行后,虽然正确监听了KeyboardEvent.KEY_DOWN event,但是必须要鼠标点击一下AIR才可以获取keydownHandler。 原因: 1、keydownHandler的获取需要监听的对象获得焦点,当mouse click AIR后,则相当于获取焦点。 2、只有当监听的对 ...
概述 虽然掌握了 A* 算法的人认为它容易,但是对于初学者来说, A* 算法还是很复杂的。 搜索区域(The Search Area) 我们假设某人要从 A 点移动到 B 点,但是这两点之间被一堵墙隔开。如图 1 ,绿色是 A ,红色是 B ,中间蓝色 ...
  设计原理:    服务器端接受客户端的连接请求,同时启动一个线程处理这个连接,线程不停的读取客户端输入,然后把输入加入队列中,等候处理。在线程启动的同时将线程加入队列中,以便在需要的时候定位和取出。    {源码} import java.io.*; import java.net.*; import java.util.*; import java.lang.*; public class Server extends ServerSocket { private static ArrayList User_List = new ArrayList(); private s ...
  设计原理:    服务器端接受客户端的连接请求,同时启动一个线程处理这个连接,线程不停的读取客户端输入,然后把输入加入队列中,等候处理。在线程启动的同时将线程加入队列中,以便在需要的时候定位和取出。    {源码} import java.io.*; import java.net.*; import java.util.*; import java.lang.*; public class Server extends ServerSocket { private static ArrayList User_List = new ArrayList(); private s ...
{建立客户端} import java.io.*; import java.net.*; public class Client { Socket socket; BufferedReader in; PrintWriter out; public Client() { try { socket = new Socket("xxx.xxx.xxx.xxx", 10000); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); out = new PrintWriter(s ...
 第一步 充分理解Socket    1.什么是socket    所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。    以J2SDK-1.3为 ...
SugarSync 获取地址:SugarSync SugarSync 介绍文章      关于网络文件同步的软件在异次元已经介绍过 DropBox 和 SyncPlicity 两款免费工具了。今天再接再厉给大家介绍另外一款同样非常优秀的同步软件——SugarSync。它除了不支持Linux之 ...
网络编程一直都是最吸引人、最有挑战的编程领域。从这篇文章开始,达达将同大家一起向这个领域出发,并接受各种难题的挑战,你准备好了吗? 写在开始之前 在开始之前,达达有一些题外话想先跟大家说说。 在阅读这一系列的文章时,我希望大家始终记住以下几点: 1. 软件开发没有银弹,人们总是试图找到问题的唯一解和最优解,但事实是每个问题都有N种解,并且在不同情况下最优解是不一样的,如果非要说软件开发有银弹,那么这颗银弹就是人的心,是否找能到最优解,在于你是否能把握住了所有事情的平衡点。所以,请不要说某某机制最好、某某算法最优、某某架构万能、不需要再了解其他了。也请不要自以为目空一切技术,商业和盈利至上 ...
上一章,我向大家演示了一个最基本的socket服务器结构,它一次只能响应一个连接请求,而“能同时响应多个连接和请求”无疑是现实生活中对socket服务器的最基本要求。要如何让socket服务器可以同时响应多个连接和请求呢?多 ...
这几天用C#做了一个抓图软件,其中用到了系统钩子技术。 在这里发表下自己用C#实现系统钩子的心得,希望对我的朋友们有所帮助。 看了很多资料,都提到系统钩子(Hook)必须是一个dll,这样Windows才能在所有进程中共享钩子代 ...
晚上做了下实验,Erlang端用{packet,2}格式,Flash端使用writeUTF和readUTF函数,正好格式一致,不需要自己解析两个字节长度信息。 Erlang端的代码:-module(server).-export([start/1, server_proc/1]). start (Port) ->    {ok, Sock} = gen_tcp:listen(Port, [binary, {packet, 2}, {active, false}]),     server_loop(Sock). server_loop (LSock) ->    {ok, S ...
前一次实验,我使用的是本地swf文件,所以没有遇到安全沙箱问题,但在实际环境中我们的Flash文件是通过URL引用的,这时候Flash的Socket通讯会受到安全沙箱机制的限制。具体原理是:Flash在尝试向服务器A发起Socket连接前,会先尝试连接服务器A的843端口,求情一个xml格式的安全策略文件,该文件告诉Flash是否有权限向服务器A发起Socket连接。所以,我们需要在Erlang端增设一个守候在843端口的安全策略文件服务器。 此次实验的Erlang代码:-module(server).-export([start/1]).-export([policy_file_server ...
今天和阿灿为项目做一个多人在线行走的Demo,在Flash端遇到数据“粘包”的问题,下面记录一下原理和处理办法。 什么是“粘包”呢?粘包是指数据发送端希望接受端收到的数据包因为网络的“流”特性,使得连续的数据包的字节连贯在一起,导致接收端无法以数据包为单位处理数据的情况。 打个比方吧,A和B两个人通过一根水管互相传递水,他们通过每次接到的水的重量来判断对方表达的意思。如果A连续乘了不同重量的几杯水倒入水管中传递给B,B那一头打开水龙头接到的只能是连贯的水流,而不是一杯杯的水,数据在网络上传递也是同样道理,数据是以流的方式传递的,通讯双方需要通过一定的协议来分割数据流。 防止粘包的典型处理方 ...
Global site tag (gtag.js) - Google Analytics