澳门新葡萄京娱乐网站-澳门新葡萄京888官网-所有平台

热门关键词: 澳门新葡萄京娱乐网站,澳门新葡萄京888官网

成语大挑衅,6款程序猿必备的开源中文管理工科

作者: 编程知识  发布:2019-12-13

1.选用途景

  • 将汉字转变为拼音(eg:"作者爱你"———>"WOAINI"卡塔尔国
  • 取各种汉字的首字母(eg:"小编是神州人"———>"WSZGPAJERO"卡塔尔

本篇将重要教学游戏分界面包车型地铁营造和兼顾,会使用到egret.eui的自定义组件,能够很直观的创设三个游乐全体,这里我们照样只必要采用EgretWing就足以达到规定的标准指标,本篇恐怕是篇幅起码的叁个,然则关乎自定义组件和类世袭,希望可以读者能够看精通,那对将来的嬉戏开垦的思辨扶持非常大。

码云项目推荐介绍

1、项目名称: 普通话转拼音库 pinyin4j

图片 1

连串简要介绍:Pinyin4j 是多个风靡的 Java 库,辅助汉语字符和拼音之间的退换。拼音输出格式能够定制。

连串地址:

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

花色简要介绍:Pinyin4Net 是贰个 .net 下的方块字/拼音调换工具库。现扶助.net2.0, .net4.0, .netcore1.1 ( standaedlib1.6 卡塔尔,针对四个 .net 版本分别有3个支行。

接口:

  • 汉字单字转拼音
  • 汉字字符串转拼音
  • 汉字转拼音格式选项,可用大小写,声调以至对拼音中(v ü卡塔尔(英语:State of Qatar)的管理
  • 赢得汉字多音字的享有读音
  • 基于拼音查询全部相配的汉字
  • 姓名拼音单独数据库和独立的询问接口

花色地址:

3、项目名称:php 拼音扩张 pinyin-php

项目简要介绍:pinyin-php 是一个 C 语言编写的 php 扩张,用于将汉字翻译为中文拼音。通过逆序中文分词的艺术达成增加多音字识别。将字词库置于程序之外通过 php.ini 配置文件内定路径加载。

类型地址:

4、项目名称:敏感词检查评定组件

图片 2

花色简要介绍:大器晚成款高质量非法词(敏感词卡塔尔(英语:State of Qatar)检查测验组件,附带繁体简体调换,补助全角半角交换,获取拼音首字母,获取拼音字母,拼音模糊搜索等效果。

类型地址:

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

品类简要介绍:ccsw 是依照 opencc4 php 开拓,能很智能的成就简繁体调换。功用如下所示:

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

地方词汇转变职能: 小编鼠标哪里去了 => 作者滑鼠哪兒去了

连串地址:

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

图片 3

品种简单介绍:本项目是透过拼音去相称汉字,简来说之,正是拼音搜索。

项目地址:

2.事关到的零件

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

自定义控件结构

码云十二日更新表明

  • 代码片段编辑器帮助高亮;
  • 代码片段找出扶植内容的研究;
  • 增加产能 CSDN 第三方登入;
  • 修复项目转移后文件404的缓慰藉题;
  • 村办升官为集体以致公司保留代码片段;
  • PGL450 归拢扶植 Squash Merge(将在须要 merge 的几个提交归总成三个交到)。
  • 码云 Markdown 拆解深入分析器改造为 CommonMark深入分析器

事情发生前码云的深入解析器基于客商的举报做了无尽定制化的改过,可是随着使用码云的顾客更加多,以至愈发多的Github客商往码云上迁移,大家选取了过多客商反映,在Github符合规律剖判渲染的Readme在码云上渲染出来的结果却有着出入,研讨反复,大家决定将码云的 Markdown 解析器改换为 Common马克。

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));
            }

        }
    }
}

率先先成立叁个名叫SceneGameSkin的exml四肢,直接在这里当中拖拖拽拽拼出开端的分界面:
图片 4

4.根本代码截图

图片 5

地方是标题区,上边是回应区,这时候,找了了一下能源,发掘字的正方未有放进财富文件,没提到,大家得以直接采纳eui.Rect那个基本空间创建三个字块出来,exml描述如下:

5.如若有其他好的机件推荐,应接各位大佬补充

图片 6

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

图片 7

拜候是不是和图表上的很像,在编辑器里的基本面板属性中是平昔不ellipseWidth、ellipseHeight等等那么些属性的,须要点属性栏右上角的有所属性标签才干突显,然后微调就可以。

但是,唯有那几个字块背景是没用的,还须要充实Label来展现文字,但风姿罗曼蒂克旦叁个二个的卓越就很辛劳了,能或不能够使用skin来和谐做三个自定组件自身处理并管理逻辑吗?那么些很简短,先布局三个skin然后配上二个自定义组件的代码就足以兑现了。

新建叁个基于eui.Component的肌肤,大小设置为80x80:

图片 8

<?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>

新建多少个typescript类,这里的名字就叫Word,继承自eui.Component,管理代码如下:

//普通的一个字,用来做问题的字块使用
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设计器的机件里就能够观察叁个Word自定义组件,然后将它拖进SceneGameSkin里,奇异,怎么怎么着都并未有啊,因为还尚无点名四肢:

图片 9 图片 10

点名好身躯后,就能够呈现正确了,上面初阶实行构造操作,拖放摆好Group到SceneGameSkin的分界面中,这里就能够用上Group的布局个性,比方下边包车型客车答应字里豆蔻梢头共是十多个汉字,能够应用Tile的主意排列成叁个静止的阵列:

图片 11

长期以来上边包车型地铁主题素材栏中,能够动用Group的横向排列,调治你的分界面直到知足。

图片 12

三番伍次的办法扩张自定义组件

那么好了,今后基本末春经产生,平日的话,前边就足以完全靠代码调控来贯彻字块的显示和拍卖了,但那还远远不够,因为上边的字和下边包车型客车字即使样子近似,但拍卖的逻辑不生机勃勃致,比方说,上面包车型客车字是少数就和睦未有,同一时候将文件放置到地点的答案中,而地点的字点击就能够移除本身的文本展现,同不时间将下边的呼应字块显示出来,假如用相比笨的办法,正是在代码中加一个字典对应起来,然后扩张一大堆,看起来很绕圈的代码,其实这里的游玩逻辑很简短,三个答案字只会相应三个应答字,假诺在组件上带上回答字块的对象,不就好管理了呢?要是各样Word控件都加多一个变量保存选定太显得暴力,这里能够选拔持续扩充叁个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代码如下:

图片 13图片 14

<?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财富方面请到第二篇的末尾下载) 

本文由澳门新葡萄京娱乐网站发布于编程知识,转载请注明出处:成语大挑衅,6款程序猿必备的开源中文管理工科

关键词:

上一篇:没有了
下一篇:没有了