WEB网络游戏
Jul 19
网页游戏应当如何引人入胜?如何达到超强的用户粘度。
点击在新窗口中浏览此图片
画面吗?
C/S模式的网络游戏可以做那个,但是网页版的游戏如果注重画面,那牺牲的太多太多了。
我却认为,应该在游戏中注入“咖啡因”。上瘾才是王道。
少量付出,大量回报。争抢。PK。偷。
但是目前的网页游戏的副本以及可玩度太小,主线不明确。公司们都在研究着怎样使游戏存活周期加长。
但是,产品周期的长短,在于玩家的认知度。
不然,梦幻西游不可能火爆那么多年了……
May 25
今天看到了一个塔防类的flash网页游戏
点击在新窗口中浏览此图片
什么叫只能模仿不被超越,WAR里面的塔防一直影响至今
点击在新窗口中浏览此图片

我觉得我应该也来做个
其实这个东西的技术门槛现在已经不高了
但是需要大量的时间和精力

最近在研究网上商店与娱乐应用的结合
Aug 15
点击在新窗口中浏览此图片
留影纪念下
Jul 13
Flash在这个时代可以说是最佳的WEB富媒体解决方案
1,表现力极强(当然,那些说flash能做到的js也能做到的人除外,因为这个说法太无知了)
2,跨平台性(没有什么操作平台不支持的,微软的“淫 光”还是需要做出对.net的割舍才行,目前在谷歌浏览器的版本还在公测中,期待)
3,B/S结构下的C/S(好处也有坏处也有,目前天朝的网络环境太落后了,区域性差别过大,在上海随便找个KFC打开笔记本上网的速度都比,白帝城的8M电信都要快,3G就算了,那玩意掉线很令人恼火,而且我还是坐在家里。服务器更新客户端,即可完成更新。一次� 载,以后快速运行。而JS还需要重新对脚本解释。)
4,OOP(flash中的脚本升级到as3.0后带来了OOP,想到什么就能做到什么。起初我已经把大话2逐步搬到了flash。个人的BearBox还在完善中,这是一种游戏编辑器,目前还只有一个地图编辑器)
5,和各种编程语言的紧密结合(dotnet、java、php……几乎主流的都有相应的方法)
6,强大的流媒体服务管理器(FMS、RED5、SFS除FMS等 所不能外其它都还需要自己编写点东西)

用flash编写web网游的好处已经举了些,其实上述内容都是废话

我们将选用flash的框架flex来完成整个游戏的架子,虽然有很多的第三方控件可用,但是目前来说,我不觉得他们好在哪里。
本次就来介绍登录部分的结构

/*-----------------------------------登录界面----------------------------------*/
Login.mxml
/*-----------------------------------代码部分----------------------------------*/

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="600" height="400" frameRate="100" creationComplete="creationComplete()" enterFrame="enterFrame(event)" currentState="MainMenu">
    <mx:states>
        <mx:State
            name="Game"
            enterState="enterGame(event)"
            exitState="exitGame(event)">
        </mx:State>
        <mx:State name="MainMenu">
            <mx:AddChild relativeTo="{myCanvas}" position="lastChild">
                <mx:Button x="525" y="368" label="Start" id="btn Start" click="startGameClicked(event)"/>
            </mx:AddChild>
        </mx:State>
    </mx:states>
    <mx:Canvas x="0" y="0" width="100%" height="100%" id="myCanvas"/>
    <mx:Script>
    <![CDATA[
        protected var inGame:Boolean = false;
        public function creationComplete():void
        {
        }
        public function enterFrame(event:Event):void
        {
            if(inGame)
            {
                GameObjectManager.Instance.enterFrame();
                myCanvas.graphics.clear();
                myCanvas.graphics.beginBitmapFill(GameObjectManager.Instance.backBuffer,null,false,false);
                myCanvas.graphics.drawRect(0,0,this.width,this.height);
                myCanvas.graphics.endFill();
            }
        }
        protected function startGameClicked(event.Event):void
        {
            currentState="Game"
        }
        protected function enterGame(event:Event):void
        {
            GameObjectManager.Instance.startup();
            inGame=true;
        }
        protected function exitGame(event:Event):void
        {
            inGame=false;
        }
    ]]>
    </mx:Script>
</mx:Application>



enterState(进入状态)
exitState(退出状态)
EnterGame(进入游戏)
ExitGame(退出游戏)


GameObjectManager.as
/*-----------------------------------代码部分----------------------------------*/

Package
{
    import mx.core.*;
    import mx.collections.*;
    import flash.display.*;
    public class GameObjectManager
    {
        public var backBuffer:BitmapData;
        public var clearColor:uint=0xFF0043AB;
        protected statci var instance:GameObjectManager = null;
        protected var lastFrame:Date;
        static public function get Instance():GameObjectManager
        {
            if(instacne == null)
                instance = new GameObjectManager();
                return instance;
        }
        public function GameObjectManager()
        {
            if(instance != null)
                throw new Error("Only one Singleton instance should be  instantiated");
                backBuffer = new BitmapData(Application.application.width,Application.application.height,false);
        }
        public function startup():void
        {
                lastFrame = new Data();
        }
        public function shutdown():void
        {
        }
        public function enterFrame():void
        {
            var thisFrame:Date=new Date();
            var seconds:Number=(thisFrame.getTime()-lastFrame.getTime())/1000.0;
            lastFrame = thisFrame;
            drawObjects();
        }
        protected function drawObjects():void
        {
            backBuffer.fillRect(backBuffer.rect,clearColor);
        }
    }
}
Tags: , , , , , , ,
Feb 6


设游戏地图坐 为(x,y),屏幕坐 为(x’, y’),换算方法如下:
x’= (x+y)
y’= (x-y)
x = (x’+y’)/2
y = (x’-y’)/2
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]