游戏界面创设和设计,net中汉字转换到为拼音

1.接纳场景

  • 将汉字转换为拼音(eg:”作者爱您”———>”WOAINI”)
  • 取各类汉字的首字母(eg:”小编是礼仪之邦人”———>”WSZG索罗德”)

本篇将第③教学游戏界面包车型客车创设和安插性,会动用到egret.eui的自定义组件,能够很直观的营造二个玩耍全部,那里大家依旧只需求选取EgretWing就能够达到指标,本篇恐怕是篇幅最少的2个,然则关乎自定义组件和类继承,希望能够读者能够看通晓,那对西楚的八日游开发的思想扶助尤其大。

码云项目推荐介绍

壹 、项目名称: 中文转拼音库 pinyin4j

亚洲必赢官网 1

品类简介:Pinyin4j 是2个风行的 Java
库,扶助汉语字符和拼音之间的转移。拼音输出格式能够定制。

品类地址:

贰 、项目名称:汉字/拼音转换工具库 Pinyin4Net

花色简介:Pinyin4Net 是贰个 .net 下的方块字/拼音转换工具库。现帮忙.net2.0, .net4.0, .netcore1.1 ( standaedlib1.6 ),针对八个 .net
版本分别有三个支行。

接口:

  • 汉字单字转拼音
  • 汉字字符串转拼音
  • 汉字转拼音格式选项,可用大小写,声调以及对拼音中(v ü)的拍卖
  • 得到汉字多音字的有所读音
  • 基于拼音查询全数匹配的方块字
  • 姓名拼音单独数据库和独立的询问接口

项目地址:

三 、项目名称:php 拼音扩大 pinyin-php

类别简介:pinyin-php 是三个 C 语言编写的 php
增加,用于将汉字翻译为中文拼音。通过逆序普通话分词的方法达成增加多音字识别。将字词库置于程序之外通过
php.ini 配置文件内定路线加载。

品种地址:

四 、项目名称:敏感词检查和测试组件

亚洲必赢官网 2

品类简介:一款高质量违法词(敏感词)检测组件,附带繁体简体交换,帮忙全角半角沟通,获取拼音首字母,获取拼音字母,拼音模糊搜索等功效。

项目地址:

伍 、项目名称: 基于 PHP 的简繁体转换工具 ccsw

品类简介:ccsw 是遵照 opencc4 php
开发,能很智能的做到简繁体转换。效能如下所示:

改换职能: 你干什么不干本人事 => 你幹什麼不干本人事

所在词汇转换职能: 作者鼠标哪个地方去了 => 笔者滑鼠哪兒去了

项目地址:

陆 、项目名称: 拼音搜索汉字工具 UTPinYinHelper

亚洲必赢官网 3

品类简介:本项目是因而拼音去匹配汉字,简单的话,就是拼音搜索。

类别地址:

.net开发中常用的第二方组件  

2013-05-09 09:33:32|  分类:
dotnet
|举报 |字号 订阅

       

亚洲必赢官网 4

 

亚洲必赢官网 5

 

  下载LOFTER
游戏界面创设和设计,net中汉字转换到为拼音。本人的相片书  |

 

2.涉及到的机件

  • 零件1:ToolGood.Words【笔者实际的正是这种】
  1. 零件名称:ToolGood.Words
  2. nuget地址:
  3. github地址【提示:500多个star】

自定义控件布局

码云一周更新表达

  • 代码片段编辑器帮助高亮;
  • 代码片段搜索援助内容的寻找;
  • 新增 CSDN 第3方登录;
  • 修补项目转移后文件404的缓存难题;
  • 私家提拔为公司以及商店保留代码片段;
  • PSportage 合并扶助 Squash Merge(即将必要 merge
    的八个提交合并成一个交给)。
  • 码云 马克down 解析器更换为 CommonMark解析器

事先码云的解析器基于用户的申报做了好多定制化的改动,可是随着使用码云的用户更多,以及愈发多的Github用户往码云上迁移,大家接到了众多用户举报,在Github符合规律解析渲染的Readme在码云上渲染出来的结果却具有出入,研究再三,我们决定将码云的
马克down 解析器更换为 Common马克。

RSS.NET.dll

奥迪Q5SS.NET是一款操作XC60SS
feeds的开源.NET类库。它为分析和编辑奇骏SS
feeds提供了1个可选拔的指标模型。它完全包容库罗德SS 0.90, 0.91, 0.92, 和
2.0.1等版本。

3.要害代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ToolGood.Words;

namespace PinYinXiangGuan
{
    class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {

                var name = Console.ReadLine();
                if (string.IsNullOrEmpty(name))
                {
                    break;
                }
                //获取汉字的首字母
                Console.WriteLine(WordsHelper.GetFirstPinYin(name));
            }

        }
    }
}

首先先创设3个名为SceneGameSkin的exml皮肤,直接在那其间拖拖拽拽拼出初始的界面:
亚洲必赢官网 6

AspNetPager.dll

本身动用过的分页控件中,最棒用的2个。

法定地址:http://www.webdiyer.com/AspNetPager/default.aspx

4.首要代码截图

亚洲必赢官网 7

上边是标题区,下边是回答区,此时,找了了一下能源,发现字的方框没有放进财富文件,没涉及,大家得以一贯运用eui.Rect这些基本空间创制一个字块出来,exml描述如下:

Aspose.Words.dll

Aspose.Words
是1个无图形用户界面包车型地铁.NETWord文书档案的告知控件,它可使.NET的选用在未曾设置Microsoft
Words的情况下读写Word文书档案。Aspose.Words协助尤其多的性格,例如:2个新文书档案的始建、操作,强大的邮件合并效能,并可将文书档案输出为
三种格式(DOC、PDF、HTML)等等。Aspose.Words在商场上是四个真的的最有利于、快速、天性丰裕的Word控件。

5.倘诺有别的好的零件推荐,欢迎各位大佬补充

亚洲必赢官网 8

<e:Rect ellipseWidth="20" fillColor="0xFFFFFF" strokeColor="0x0276D0" strokeWeight="4" ellipseHeight="20" right="0" left="0" bottom="0" top="0"/>

SgmlReaderDll.dll

Microsoft 的XML大师Chris
Lovett在
甚至将它们转换到三个格式规范的构造。SgmlReader派生于XmlReader,那正是说,你能够像运用诸如XmlTextReader这样的类来
解析XML文件那样来解析HTML文件。

演示地址:http://www.xmlforasp.net/codeSection.aspx?csID=94

亚洲必赢官网 9

ICSharpCode.SharpZipLib.dll

ICSharpCode.SharpZipLib.dll
是七个依照GNU的免费压缩解压库文件,他的功效很强大。像DNN等项目中都有利用

下载地址:http://www.icsharpcode.net/OpenSource/SharpZipLib/Download.aspx

有关文章:《选取sharpziplib完成减弱/解压缩》

看看是否和图纸上的很像,在编辑器里的主干面板属性中是没有ellipseWidth、ellipseHeight等等这几个属性的,必要点属性栏右上角的有着属性标签才能显示,然后微调即可。

UrlRewriter.NET

速龙ligencia出品的开源组件UrlRewriter组件。

官网地址:http://urlrewriter.net/ 

可是,只有这么些字块背景是没用的,还亟需追加Label来突显文字,但万一五个2个的匹配就很费劲了,能或不能够接纳skin来协调做贰个自定组件本人管理并处理逻辑吗?这么些很不难,先构造二个skin然后配上二个自定义组件的代码就足以兑现了。

CookComputing.XmlRpc.dl

拓展xmlrpc的机件,例如:使用客户端软件metablogapi操作blog时会用到。

下载地址:http://www.xml-rpc.net/

连带小说:

《MetaWeblog
API》

《运用Cooke
Computing组件达成XmlEscortPC,让blog援救客户端工具》

新建3个基于eui.Component的皮肤,大小设置为80×80:

CodeHighlighter

CodeHighlighter is是.net环境下最有力的源代码语法高亮组件.代码语法高亮是很展示专业性的特征,增添了代码的易读性.只要求以内联或那编制程序设置文本属性的主意告诉CodeHighlighter,
在代码就会以语法高亮的方式出口展现.还协理自定义语言,行号,关键词连接等. 

官网地址:http://www.actiprosoftware.com

连带作品:

《ASP.NET代码高亮展现控件:Actipro
CodeHighlighter》

《利用CodeHighlighter给Cute艾德itor扩大高亮代码突显效果》

《 行使CodeHighlighter和SyntaxHighlighter为
fckeditor扩展语法高亮》

《 为论坛和Blog添加代码高亮突显的坚守》 

亚洲必赢官网 10

Castle.DynamicProxy

    
java中有动态代理的概念,DotNet中尚无,castle的DynamicProxy正是提供了类似于java动态代理的法力。动态代理是多多益善现代
软件技术的底蕴,例如AOP,今后有诸七类别中应用了castle的DynamicProxy,他们包蕴:NHibernate,Retina.Net,iBatis.Net,Aspect#,RhinoMocks

官网地址:http://www.castleproject.org/

相关:

《 Castle Dynamic Proxy
tutorial 》 

《Castle.DynamicProxy介绍 》

《动用Castle
DynamicProxy达成不难的AOP》

《 Castle.DynamicProxy在iBATIS.NET中的使用》

<?xml version='1.0' encoding='utf-8'?>
<e:Skin class="WordSkin" width="80" height="80" xmlns:e="http://ns.egret.com/eui" xmlns:w="http://ns.egret.com/wing">
    <e:Rect ellipseWidth="20" fillColor="0xFFFFFF" strokeColor="0x0276D0" strokeWeight="4" ellipseHeight="20" right="0" left="0" bottom="0" top="0"/>
    <e:Label id="lb_text" text="字" horizontalCenter="0" verticalCenter="0" textColor="0x000000" size="60"/>
</e:Skin>

aspNetMime.dll

aspNetMime.dll是贰个精锐的解析email文件的类库.

官网地址:http://www.aspnetmime.com

有关文章:

《aspNetMime.dll:email
内容解析库》

亚洲必赢官网,新建二个typescript类,那里的名字就叫Word,继承自eui.Component,处理代码如下:

LINQBridge.dll

借使你早就喜欢上LINQ,并且已经离不开它,一写代码就会用到增加方法,Lambda表明式和LINQ;可是恰恰,你不能够说服你的客户的机械上都装上.NET
3.5,那时候怎么做呢?那时候,LINQBridge能够让您的题材消除。

相关文章:

《LINQBridge.dll
让您的LINQ代码可在.NET
2.0下运作》

//普通的一个字,用来做问题的字块使用
class Word extends eui.Component {
    protected lb_text:eui.Label;
    public constructor() {
          super();
          this.addEventListener(egret.TouchEvent.TOUCH_TAP,this.onclick_tap,this);
    }
    protected onclick_tap(){
        console.log(this.lb_text.text);
    }
    //这里没有做成属性的原因是因为当应用到eui的时候,Skin还未指定,运行时候会出现报错,如果指定了SkinName,那么就会产生两次eui的构建浪费内存
    public setWordText(value:string){
        this.lb_text.text = value;
    }
    public getWordText():string{
        return this.lb_text.text;
    }
}

保留编写翻译一下,然后在UI设计器的零部件里就能来看2个Word自定义组件,然后将它拖进SceneGameSkin里,奇怪,怎么什么都并未啊,因为还不曾点名皮肤:

亚洲必赢官网 11 亚洲必赢官网 12

点名好肌肤后,就会议及展览示正确了,上边开头展开布局操作,拖放摆好Group到SceneGameSkin的界面中,那里就足以用上Group的布局个性,比如上边包车型客车作答字里累计是十几个汉字,能够选拔Tile的主意排列成叁个一如既往的阵列:

亚洲必赢官网 13

一如既往上边包车型大巴标题栏中,能够使用Group的横向排列,调整你的界面直到满意。

亚洲必赢官网 14

继承的法子壮大自定义组件

那么好了,自此基本末春经做到,一般的话,前边就能够完全靠代码控制来达成字块的显得和处理了,但那还不够,因为下边的字和地点的字尽管样子一样,但处理的逻辑不同,比如说,上边包车型大巴字是一些就协调没有,同时将文件放置到地点的答案中,而地点的字点击就会移除自身的文本显示,同时将上面包车型客车相应字块展现出来,假设用相比较笨的方法,正是在代码中加三个字典对应起来,然后增添一大堆,看起来很绕圈的代码,其实那里的娱乐逻辑很简短,一个答案字只会相应三个应答字,假诺在组件上带上回答字块的对象,不就好处理了呢?假如各个Word控件都增多2个变量保存选定太显得暴力,这里能够选拔持续增添3个SelectWord变量,而任何的逻辑可以通过重载方法来保持代码的简洁性,上面正是贯彻了二个一连自Word的AnswerWord类,这些类同样在保存编译后,也会出现在自定义组件中,

//继承自“问题字”,“答案字”是放在上面回答区域,
//由于当答案字点击的时候,答案字会消失并将对应的问题字还原显示
class AnswerWord extends Word{
    public SelectWord:Word = null;
    public constructor() {
        super();
    }
    protected onclick_tap() {
        if(this.SelectWord != null){
            this.SelectWord.visible = true;
            this.SelectWord = null;
            this.setWordText("");
        }
        console.log("AnswerWord");
    }
    //当一个问题字被选择添加到回答的时,设置不可见,并保存到本对象中以后使用
    public SetSelectWord(word:Word){
        word.visible = false;
        this.setWordText(word.getWordText());
        this.SelectWord = word;
    }
}

那么我们将地点的多少个汉字都给替换来AnswerWord,点击一下蓄势待发看看命令栏里的输出,不晓得的能够参考上边的诠释。

说到底的SceneGameSkin.exml代码如下:

亚洲必赢官网 15亚洲必赢官网 16

<?xml version='1.0' encoding='utf-8'?>
<e:Skin class="SceneGameSkin" width="720" height="1136" xmlns:e="http://ns.egret.com/eui" xmlns:w="http://ns.egret.com/wing" xmlns:ns1="*">
    <e:Image source="GameBG3_jpg" left="0" top="0" bottom="0" right="0"/>
    <e:Image source="WordFrame_png" x="39" y="120"/>
    <e:Group id="group_words" width="538" height="417" x="108" y="637">
        <ns1:Word x="80" y="106" skinName="WordSkin"/>
        <ns1:Word skinName="WordSkin" y="116" x="90"/>
        <ns1:Word skinName="WordSkin" y="126" x="100"/>
        <ns1:Word skinName="WordSkin" y="136" x="110"/>
        <ns1:Word skinName="WordSkin" y="146" x="120"/>
        <ns1:Word skinName="WordSkin" y="156" x="130"/>
        <ns1:Word skinName="WordSkin" y="166" x="140"/>
        <ns1:Word skinName="WordSkin" y="176" x="150"/>
        <ns1:Word skinName="WordSkin" y="186" x="160"/>
        <ns1:Word skinName="WordSkin" y="196" x="170"/>
        <ns1:Word skinName="WordSkin" y="206" x="180"/>
        <ns1:Word skinName="WordSkin" y="216" x="190"/>
        <ns1:Word skinName="WordSkin" y="226" x="200"/>
        <ns1:Word skinName="WordSkin" y="236" x="210"/>
        <ns1:Word skinName="WordSkin" y="246" x="220"/>
        <ns1:Word skinName="WordSkin" y="256" x="230"/>
        <ns1:Word skinName="WordSkin" y="266" x="240"/>
        <ns1:Word skinName="WordSkin" y="276" x="250"/>
        <ns1:Word skinName="WordSkin" y="286" x="260"/>
        <ns1:Word skinName="WordSkin" y="296" x="270"/>
        <e:layout>
            <e:TileLayout horizontalGap="30" verticalGap="30"/>
        </e:layout>
    </e:Group>
    <e:Button id="btn_back" x="11" y="8">
        <e:skinName>
            <e:Skin states="up,down,disabled">
                <e:Image width="100%" height="100%" source="BackBtn_png" source.down="BackBtn1_png"/>
                <e:Label id="labelDisplay" horizontalCenter="0" verticalCenter="0"/>
            </e:Skin>
        </e:skinName>
    </e:Button>
    <e:Image id="img_question" width="390" height="260" y="179" horizontalCenter="0"/>
    <e:Group id="group_answer" width="373" height="95" x="177" y="464">
        <ns1:AnswerWord skinName="WordSkin" y="478" x="185"/>
        <ns1:AnswerWord skinName="WordSkin" y="478" x="284"/>
        <ns1:AnswerWord skinName="WordSkin" y="478" x="378"/>
        <ns1:AnswerWord skinName="WordSkin" y="478" x="475"/>
        <e:layout>
            <e:HorizontalLayout gap="15"/>
        </e:layout>
    </e:Group>
</e:Skin>

SceneGameSkin.exml

本篇已经竣事,那里学习应用了自定义组件、类继承(或说组件继承),来搭建和规划游戏的主界面,将基础做好,后边的开发工作就简单很多了。

本篇项目源码:ChengyuTiaozhan3.zip(由于新浪的文件大小限制,resource财富方面请到第叁篇的背后下载) 

网站地图xml地图