admin 的blog

silverlight 3D 游戏开发

意外发现一个silverlight的实时3D渲染引擎。性能比开源那些强很多。

而且支持直接加载maya,3Dmax等主流3D模型文件。

附件附上它的几个源工程文件给有兴趣的朋友研究。

_WM1]FB{40VMC)JEA6G$BFR

visual studio也可以开发flex

swf转为xaml工具

一个swf转为xaml的工具。请在附件中下载.

silverlight OOB应用捕捉本机网络状态

在Silverlight 3中您可以检查是否存在互联网连接且还可以检测网络的变化。

网络可用性检查:

if (System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()) 

this.InitTasks(); 

}

网络变化检测:

NetworkChange.NetworkAddressChanged += new

NetworkAddressChangedEventHandler(NetworkChangedCallback);

综合应用:

private void NetworkChangedCallback(object sender, EventArgs e) 

if (System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()) 

    { 

silverlight字符串加密之二

    public static class Cryptography
    {

Silverlight 4 COM+ 操作支持示例集

Silverlight 4 Beta 1 offers the ability to initialize and use COM+ classes from Silverlight.
It should be noted that these features are only available in elevated privileges Out-Of-Browser mode and are not available in-browser.  
In Silverlight 4 Beta1 Com+ Automation only works on Windows machines (but more on that later).
The majority of work around Silverlight 4 COM+ support is centered around the ComAutomationFactory and ComAutomationEvent classes.
Nooo! COM+ killed my inner child back in the 90s!

Get over it.

silverlight 4 数据验证

当用户提交数据时,我们必须对用户所填写的数据合法性进行验证。而silverlight4的数据验证功能有了比较简单的实现方法,以下是我实现一个示例:一个输入用户年龄的textbox,当用户输入为负数时会提示有错误,并不允许提交。

1.新建一个silverlight 4 项目。

2.mainpage.xaml里输入以下xaml:

添加了一个textbox和一个button控件,button控件为提交测试功能,textbox为数据验证测试功能

silverlight 虚线框

一些游戏地图编辑器鉴于美观都会用一些虚线来作为表示层。以下讲述如何用一个简单的属性即可实现silverlight中的虚线框。

使用了一个简单的例子来说明:

image

以上这个四方框的xaml是:

<Rectangle Width="128" Height="128" StrokeThickness="1" Stroke="Red"/> 

我们可以通过StrokeDashArray和StrokeDashCap这两个属性实现虚线框;

建立纯代码的silverlight项目

当我们设计silverlight游戏引擎的时候,往往有一种想法,就是让引擎不参杂xaml相关元素,因为xaml解释器的确有点慢,更多的是因为纯代码的游戏引擎更有扩展性和重用性。因此本文讲述一个silverlight游戏引擎的设计基础,希望可以帮到有须要学习的朋友。

1. 新建一个silverlight项目,包不包括asp.net均可。

2. 删除 App.xaml 和 Page.xaml (CS一同删除).

3. 新建一个类命名为:gamebase.cs

4. 修改让gamebase类继承自Application

public class gamebase:Application
{
    public gamebase()
    {
    }

}

5. 进入项目属性,设计Startup Object选项为gamebase类

360度全境功能

老外写的一个360度全境应用示例。原理非常简单,和横版游戏的卷轴差不多。希望对大家学习相关应用有所帮助。

image

登陆后可在文章附件下载源工程文件。

欢迎您参与更多关于此话题的讨论http://funsl.com

silverlight 自定义 鼠标 双击事件

    public partial class MainPage : UserControl
    {
        public DateTime _lastClick = DateTime.Now;
        private bool _firstClickDone = false;

childWindows Theme

一套ChildWindows的新样式。

如果要移植到你自己的silverlight项目中,请把App.xaml里边的<Application.Resources />中的xaml复制到你项目的App.xaml文件中,然后指定ChildWindow的样式为:

格斗游戏基础Demo[开心银光出品]

21点扑克游戏[开心银光出品]

黑夜枪手游戏[开心银光出品]

砸箱子游戏[开心银光出品]

多人在线飞行射击游戏[开心银光出品]

本站游戏新作。服务器开启到2010-6-5日。

地址:http://funslcom83402.2172.vh.cnolnic.com/kz.html

image

silverlight 常用特效

在一些游戏和商业软件开发的应用中,为了让我们的用户体验更好的使用体验,我们常常会在鼠标事件中做一些特效让用户觉得更贴心,也让程序更美观。开心银光在这里介绍一个非常常用的silverlight 特效。

System.Windows.Media.Effects.DropShadowEffect

它有几个属性。大家可以自行试试,相当简单。所以开心银光在这里不作祥解,接下来是演示代码:

以下是实现一个很简单的功能,只要鼠标移到button上就启动特效。鼠标离开时我们清除特效:

a)xaml部分:

wcf实现IP访问限制

wcf开发应用程序的时候常常会遇到一个问题,就是如何只让指定的客户端访问服务,其他客户端禁止访问服务。因为很多时候我们这样做可以防止一系列的黑客攻击、及非法调用等。

今天开心银光将介绍一种在wcf中取得访问端电脑的IP地址而进行过滤的方法,达到一定效果。这种方法对结合asp.net等web应用有很好的效果。

因为asp.net的机制是一个特定的服务器访问wcf,而像silverlight等ria或普通的win程式就比较难达到效果,因为这样的客户端我们无法确定他的ip,目前大多数中国用户使用的都是adsl动态ip。

所以此方案建议构建于asp.net结合的解决方案中。

1.只需在wcf简单的几句代码即可取得访问端的IP地址:

silverlight 加载zip资源

silverlight自身是用标准的zip缩压xap文件的,所以我们可以通过silverlight自身提供的zip解压类帮我们加载资源,例如:图片,xml等。这功能对游戏开发中的资源加载有一定帮助。因为游戏的资源一般情况下并不小,所以通过这个功能成达到动态加载并可以选择保存在独立存储空间中。这样更可以通过判断资源文件名达到不重复下载资源。开心银光觉得这样的游戏资源解决方案相对来说是比效完美的。

当然,这只是一些举例,只要你对它了解后,你可以加载任何东西,因为这功能是直接操作二进制的。除非你加载的流本身存在问题,否则它是工作的很好的。

a)它位于System.Windows.Resources.StreamResourceInfo.它作为一个流形式保存你的资源。帮你准备好让silverlight原生的zip解决类还原资源文件。

b)解决是通过System.Windows.Application.GetResourceStream方法进来解压并还原资源。

以下是我完整的通过webclient下载zip加压的资源文件,然后还原资源并使用的代码:

音乐播放器

网页音乐播放器。想听就想。功能不断完善中。作者:King

wpf的VisualStateManager

wpf4正式测试成功完成了VisualStateManager的功能。在此之前我没有确认wpf3.5是否已经支持此功能。以下是我使用vs2010 rc写的demo程式:

1.xaml部份一般都是用blend来设计的state。这里为了文章篇写的方便,我直接把xaml放出来.在blend中只能用鼠标拖拖放放即可弄出很多state。这功能对很多应用都很有好处。不用每次都自己写动画。还支持动画延时效果。

xaml部分:

让Window Mobile 和 Symbian 运行silverlight 3应用程式

一直到mix10大会,相当期待ms出一个silverlight for wm6,可惜又一次失望了,不过还是有方法让我们的silverlight 3应用运行于手机。

原因是我找到一个手机浏览器,它提供了Symbian和window mobile两种系统的程序,更cool的是它支持silverlight应用直接运行于它。是有部份功能无法正常使用,不过作为一个过度应用也是一个算是比较完美的解决方法。

这个浏览器只有英文版本。这也是一个问题。呵呵 。不是每用手机用户都会英文的。那怕是简单的。

浏览器下载地址:http://get.skyfire.com/

欢迎您参与更多关于此话题的讨论,本文原创地址为:http://funsl.com

让VS2010 RC 支持silverlight 4 beta开发

1.确认你已经下载silverlight 4 tools for vs2010 beta2 (Silverlight4_Tools_ENU.exe).

2.运行Silverlight4_Tools_ENU.exe.下图

image

至上图后不要按"Close"按扭.

在程序代码中集成跨域服务文件

由于silverlight跨域文件在很多分布式应用开发中非常常用,其中一些简单的应用中并不须要在程序发布后让用户来动态配置跨域的xml文件,这样程序目录中又要多出一个xml的跨域文件这样显得没什么必要而且增加了发布的复杂性,所以我通过如下方法实现了在程序中直接让跨域文件集成在代码中。本文原创地址http://funsl.com

我在启动跨域服务的同时,把跨域文件的定义也集成到代码中了。你也可以通过一些自定义的程序功能去动态地成生跨域文件的动态性。这样一样可以达到让用户去配置跨域规则的功能。而且不用再带着那个clientaccesspolicy.xml文件。呵呵。。本文来源于http://funsl.com

以下是我在启动跨域服务时的代码:

Window Mobile 桌面WCF与Compact WCF的差别表

.net compact FW 3.5开始了对 wcf的支持。但还不能完全支持所有功能,下表可作这对比之用。

要想开发wm手机上的wcf应用还必须安装.NET Compact Framework Power Toys 3.5这个kit包括了wcf要用到一些工具。可以操作“远成生成代理”等。

使用这些工具前提你必须对wcf有一定了解。

Silverlight 4 动态换Theme

关于在s4中只用代码来实现肤皮的切换使用的变化和sl3相比是比较大的,

因为sl4没有了ImplictStyleManager这个theme管理类。

那么我们要实现通过代码动态地更换样式就很难吗?并非如此。

首先我们要确保你要使用的theme文件引入你的工程中,

本文中使用的是ExpressionDark.xaml,这是silverlight toolkit中自带的一套theme。

然后把它所使用到的命名空间都引用到工程中。

Silverlight 视频聊天室

1.支持字体选择操作。

2.支持字号,粗体,斜体等操作。

3.支持复制,粘贴操作。

4.支持快捷键(回车)发送。

5.声音提示。

6.阅读功能.安装离线版后可使用系统的阅读功能。vista以上的系统支持普通话阅读.

7.图片表情.

8.视频支持,目前不开放止功能。

ZLib压缩算法

这段时间一直需要对silverlight网络应用的数据进行压缩,经过一轮的查找,包括之前一篇文章里介绍的7z压缩算法。原因是因为7z加解压速度太慢,就算压得小也没什么用作,对于网络应用来说,因为实事性要求很高,而且7z相当占cpu基本这些原因,再次找到了zlib算法。经过测试无论从性能还是压缩比。都不算太弱。所以再次上传供大家日后使用.

开源的silverlight-zlib库:

http://cellbi.com/Content/UI/Views/BlogItem.aspx?page=722&AspxAutoDetectCookieSupport=1

使用方法:以下加解压函数中的参数和返回值都为byte[]类型.

压缩:

同步内容