[原]关于股子系统的优化

2008-6-25 0:18:58 原创 抢沙发(0)

参考:
DiceClass
原作者:
hexagonstar : http://www.hexagonstar.com/
详情:
http://bbs.actionscript3.cn/thread-2044-1-1.html
程序结构:
Dice+ArrayUtil+NumberUtil,全静态类
个人评论:
NumberUtil内数值方面的是最值得借鉴的部分。

由于目前本人Dice 需要应用于DND System中,所以改变了下结构和随机算法(目的在于工厂化生产Dice,以及Dice随机分布算法抽出方便以后采用不同的随机分布算法。)
 

  1. //系统结构伪码  
  2. Dice implements IDice;  
  3. RandomSystem implements IRandomSystem  
  4. Random48 extends RandomSystem;  
  5.  
  6. interface IRandomSystem {  
  7.     function random(min:Number, max:Number):Number;  
  8.     function randomByRound(min:Number, max:Number,round:int):Array;  
  9. }  
  10.  
  11. interface IDice  {  
  12.     function get sided():int;  
  13.     function roll(round:int, randomSystem:IRandomSystem):DiceArrayList;  
  14.     function toString():String   
  15. }  
  16.  
  17. class DiceArrayList extends com.xintend.as3.dnd.core.ArrayCollection {         
  18.     public function DiceArrayList(data:Array ) {              
  19.     }  
  20.           
  21.     public function get average():int {     }  
  22.     public function get max():int {     }  
  23.     public function get min():int {     }  
  24.     public function get sum():int {     }  
  25.           
  26.     protected function verifyInt():void {}  
  27. }  
  28.          

(测试类):
 

  1. package {  
  2.       
  3.     import com.xintend.as3.dnd.base.dice.Dice;  
  4.     import com.xintend.as3.dnd.util.Random48;  
  5.     import com.xintend.as3.dnd.util.RandomSystem;  
  6.     import flash.display.Sprite;  
  7.       
  8.     public class Main extends Sprite    {  
  9.         public function Main(){           
  10.             var d1:Dice = new Dice(4);  
  11.             trace(d1.roll(100,new Random48()))  
  12.             trace(d1.roll(100,new RandomSystem()))  
  13.         }  
  14.     }  

测试图(结构在output窗口):


再次感谢hexagonstar.com开源的DiceClass中的48位线性同余算法

最近正在进行AS3 DND-core System

2008-6-22 14:28:34 开发者 抢沙发(0)

3.5版本的玩家手册

玩DND(Dungeons & Dragons)类型虽然很早开始玩了,博得之门,无冬之夜,前年 DDO,以及现在在玩的无冬之夜2,但坚持时间的时间不多。

虽然手上握有N多DND的手册,但系统的都没怎么看过,就玩家手册倒是翻腾了N次了。

4月曾经在工作之余回到艾伯伦碎片论坛,没想到那边竟然成为了DDO的专属论坛了........

由于自己一直有想做一个DND的游戏,但都和玩游戏的时间一样,每天都只有半小时玩游戏,哈哈,和大学奢靡的生活已经完全不一样了。

以前写的棋牌类游戏,射击类游戏,格斗游戏,都是休闲性质的小游戏,但是由于那时候是在学生时代,活动和无奈的期段太的多了,所以部分游戏没有很好的完成,少数完成的游戏都是从简从速的完成的,一点都没有给自己带来什么成就感。

最郁闷的是当时创作电脑竟然三大件一个一个的都离奇死亡,现代M+升技MB+WD就这样一个一个的离我而去,好在自己备份的老硬盘没有放弃我...........

哎,数据,21世纪除人才外,最重要的是数据啊............没了也就无从谈资了.......仅此篇以怀悼(怀念哀悼)离我而去的那三大件..............

 

ok,说了那么多废话,该说说AS3 DND-core System吧。

写它的目的在于联系设计模式,将自己的代码和思考能力提高下,但最大的目的在于自己想真的做出个像样的游戏来。

计划:

3个月内完成和测试DND三大件之一:玩家

目前AS3 DND-core System 按照已有的玩家手册3.0内容建立系统,预计花费1个月的时间建立基本玩家数据核心。设计的中心思想和PureMVC中心思想类似,即,尽量让代码和内部机制不依靠当前环境机制,只有当需要环境支持的部分才采用当前环境机制。目的是为了以后更好的平台转移,毕竟AS3只是我最熟悉的语言(当初为了快速实现游戏的目的而接触的),所以就用该语言勾画自己的游戏核心。

当前目标是实现一个基本玩家在DND规则系统下能够完善的建立一个玩家的在已设游戏环境中的机制和机制链。

顺便值得提一下的是,DND3.5版本内容有部分也已经在阅读中,虽然和3.0相对改进不大。目前玩的无冬之夜2就是基于该版本的。

置于DND的3大件,中其余2件:城主和图鉴,将可能依次在玩家核心测试通过后建立。相对来说图鉴倒是可以建立在玩家基础核心上的。。。。。

概括:
DND目前我应该还是入门级的玩家,面对如此数十年的游戏规则巨作,能献上自己一份薄礼,也算是无虚度此生了。所以此后的一些时间将更广泛的接触DND社区,让自己更熟悉这片浩瀚的天空~

 

[原]horidream的水纹效果心得确实很不错

2008-6-13 21:28:53 算法 抢沙发(0)

效果请点击本文章察看内部

原作者:http://www.horidream.com/blog/?p=35#respond

实现代码:

  1. package {  
  2.     import flash.display.Bitmap;  
  3.     import flash.display.BitmapData;  
  4.     import flash.display.BitmapDataChannel;  
  5.     import flash.display.Sprite;  
  6.     import flash.events.TimerEvent;  
  7.     import flash.filters.DisplacementMapFilter;  
  8.     import flash.geom.Point;  
  9.     import flash.utils.Timer;  
  10.       
  11.     /**  
  12.     * ...  
  13.     * @author telds[kingfo]  
  14.     */ 
  15.     public class BitmapWater extends Sprite {  
  16.           
  17.           
  18.         public function BitmapWater() {  
  19.              var renderTimer:Timer;  
  20.                
  21.              var img:Bitmap = new IMG() as Bitmap;  
  22.              var imgH:Number = img.height;  
  23.              var imgW:Number = img.width;  
  24.              var bmd:BitmapData = new BitmapData(imgW, imgW, false, 0);  
  25.                            
  26.               
  27.                
  28.              var baseX:Number = 50;  
  29.              var baseY:Number = 50;  
  30.              var numOctaves:uint = 3;  
  31.              var randomSeed:int = Math.floor(Math.random() * 100000);  
  32.              var stitch:Boolean = true;  
  33.              var fractalNoise:Boolean = true;   
  34.              var channelOptions:uint = BitmapDataChannel.RED;  
  35.              var grayScale:Boolean = false;
  36. //Each of numOctaves 
  37.              var offsets:Array = [new Point()/*one of numOctaves*/];  
  38.               
  39.              addChild(img);  
  40.               
  41.             renderTimer = new Timer(20,0);  
  42.             renderTimer.addEventListener(TimerEvent.TIMER, function Todo(event:TimerEvent):void {  
  43.                 bmd.perlinNoise(baseX, baseY, numOctaves, randomSeed, stitch, fractalNoise, channelOptions, grayScale, offsets);  
  44.                   
  45.                 offsets[0].x = offsets[0].x + 20;  
  46.                 offsets[0].y = offsets[0].y - 20;  
  47.                 img.filters = [new DisplacementMapFilter(bmd, new Point(0, 0), channelOptions, channelOptions, 10, 10)];  
  48.             })  
  49.             renderTimer.start();  
  50.         }  
  51.           
  52.           
  53.           
  54.         [Embed(source = '../bin/123.jpg')]private var IMG:Class;  
  55.           
  56.     }  
  57.       

 

[原]视觉模型心得

2008-6-6 13:59:05 开发者 抢沙发(0)

几次开发后一个很简单,但用处很广泛的视觉模型总结为一张图,如下:

[原]网络试衣间幻想曲---纸上谈兵

2008-5-14 22:08:09 软件 抢沙发(1)

由于KingFo曾经初出茅庐第一家公司就有打算做此方面的尝试,但由于本人知识浅薄加上对衣服的理解程度薄弱,所以也就做了半年后离开了,但随着时间的流逝,在脑中呈献的想法堆积的越来越多,故特别为此想法公布于众,在接下来的日子里,我会逐渐尝试任何可能的问题,不过由于目前工作的关系,故仅能浅尝辄止。

Ok,本着本域名取名来自X 加上Intend,本意是超级打算,X就是超级的意思,而Intend是指有此意图,但不一定要做,但是可以让想法共享的网络平台,目前一直希望更多的人能够加入这个队伍中来,但由于本人和本博客系统都有所缺陷,故还望各位一起来加入这个队伍。

本人对外邮箱是 oicuicu@gmail.com,希望收到路过此地,同时希望一起分享自己超级想法的伙伴和我取得联系。

 

嗯,切入正题。

 

首先,目标运行程序是Actionscript3/mxml下搭建的页面级程序,由于目前环境的种种限制,最好的方式是采用2D建制。目前7face,taobao,等多家企业/公司都已经在尝试这方面的内容了。

而2D建制最大的问题就是衣服的和人体对象的贴合程度,以及受众的接受程度。

首先关于贴合程度,如果有CAD数据那自然再好不过,可是由于CAD数据来自衣服制造商,以及目前国内大多数小规模的衣服生产厂商受环境限制基本手工绘制于布料上活着纸张上,所以是非常难以活的的数据。

另外,多数衣服的来自网络商家,故为了适用性达到最广和表现力达到最优本人所想到的方法是如下:

模型制定:
         制作和真人1:1的橡胶充气娃娃
数据采集:
         制作背景比例尺
                类似大多数电影中能看到的囚犯拍照后面的那个标度尺
               拥有标准光圈范围(含各种相机和通用相机)
         制作真人标准云台,(正\两侧\背)
基础库建设:
         标准人体3D数据(1)
                默认以上述娃娃为准
         标准UV展开图网格(2)
                方便人们将数据
         标准人体4面或6面状态图(3)
工具建设:
         绘制和上传系统
              一般用高效的C/C++编写,用来让客户将自行采集的数据编辑和上传 
             使用以上(1)和(2) ,并导存为2D以上(3)
         展示系统
              由swf文件网络中展示
              或专业版下载,让用户条件期望体型,并以3D拟真效果展示

主要构建思想:
        尽量让目前还不能高效3D运算的AS程序尽可能的去分析数据和展示2D的东西
        如果用户真想编辑,务必让用户使用绘制和上传工具
        其他虚拟真实的内容尽量采用小软件的形式

分支思想:
       如果非要让as程序在线进行操作,则需要在损失一定的真实度,让用户针对已拍摄好的对象进行类似PS的操作。

其他智能化研究:
      如研究胖矮高瘦等因素与标准体型间的关系,并建立模型
      研究身体动作与衣服间的连带关系等等
      这些。。。。囧。。。。。好高深,不过不是不可能吧~~~反正尽量让这些方放到非swf中编辑。毕竟如果作为商家不会嫌弃花费5-10分钟整理一个模型的,再说,如果协议统一,就连模型数据都可以成为商品,或者简易的外包项目咯~~(1件2块钱?)
  
OK~ 纸上谈兵就到这吧,部分数据待进行中,如果路过的您有此类相通的想法,或者更好的建议,请及时联系我哦,哈哈

困了,音乐。。。。。。。

Adobe® Kuler® API

2008-5-12 10:05:21 开发者 抢沙发(0)

This is a Action Script 3 API for accessing the Adobe® Kuler® API. klib-as3's goal is to be the simplest way to get color swatches from the Adobe® Kuler® website.

klib-as3 is still in development but you can use the svn until release version 1.

Any use of klib-as3 must abide by the Adobe® Kuler® terms of use and download the Adobe® Kuler® API logo. This logo must be included on your website/application

you can find more info on the Adobe® Kuler® API here  

example use

Dopplr-as3

2008-5-12 9:59:06 开发者 抢沙发(0)

This project is intended to get you up and running with accessing Dopplr data from Flash 9 applications.

It is also a playground for me to experiment with finding the most elegant and aesthetically pleasing way to code such applications. Your input is welcome if you have opinions on how the code might be improved, or if you want to implement some of the Dopplr API methods I didn't get to yet.

Initial Documentation is online, there is example code in the source tree and running examples will follow soon

 

 

License: New BSD License
Labels: actionscript3, dopplr, flash, flex, api, as3

Show all Featured Wiki Pages:
Documentation
Join project
Project owners:
  tom.carden