PIXI Text Multi Motions Styles Core V1.0

● ARCHIVED · READ-ONLY
Started by Jonforum 17 posts View original ↗
  1. cR3irySY_o.gif
    PIXI TEXT MULTI MOTIONS STYLES CORE
    Thousands of possible combination for make a great game
    under M.I.T licence
    Required:

    * pixi.js v4.5.6 or upper
    * PIXI SpriteSheetsAnimations Core
    * Easing Library from @Iavra
    the Debuger will be an advanced and super functional version of my old plugin RMMV PICTURES DEBUG TOOL
    TUTORIAL AND EXAMPLE
    [embedded media]
    OTHER EXAMPLE debugger + pixi icons textures

    [embedded media]
    debug pictures rmmv


    example: GigglesStyles
    Ytqdy1MK_o.gif

    example: GigglesWords + custom tag + debugger
    s1iSEfwq_o.gif

    example: GigglesLetters
    x9f4IQ7T_o.gif


    Presentation

    pixi text plugin with multi style and motions animations managements.
    will support, multi language localization, multi styles, motions animations, filters and icons textures.
    Also detection of text info with mouse hover for show animated box.
    The plugin work with a registar Closures that allow to registe a custom setup for eatch styles, word, letter or icons.
    Alow text scroll with a alpha Mask and Filter (no need photoshop)

    FEATURES AVAIBLE :
    showMe
    • * pre build cache text in memory for permanent text
    • * multi styles with easy tag in string (custom tag in plugin manager)
    • * allow auto mask text with height || width detection for (page slider box)↓↑←→
    • * Mask allow all new pixi filter ! with performance preRendering.
    • * allow text fade in && out , and also rmmv command text
    • * allow letter Giggles animations
    • * ultra performance preCache localization language
    • * mouse detection hover word with desciption box
    • * word motion animation with filter and easing library
    • * easy multi language dataBase
    • * easy create, delete and manage text in game progress.
    • * allow custom icons library from pixi sprite and texture packer.
    • * work with layer from PIXI SPRITESHEETS ANIMATIONS CORE
    STRING TEXT TAGS LISTS:
    Surround the wish text with the {id tag}, to use a customize styles.
    Use the hooks to add parameters to the text.
    the settings can also inherit styles or properties.
    add special tag to your custom string text.

    Styles: {s+id} text {/s+id}
    This is for set the custome style id of a specifique text
    Icons: {i+id}
    This its a proprety that allow to insert a true pixi texture icons id
    NewLine: {n+factor}
    This its a proprety thats allow to jump line, by default {n0} will use the heigth of last line, and the number are the factor of the jump line by pixel ~negative number allowed.
    pause: {p+time}
    this is a proprety thats make wait text for X time if you use motions show. Only for text message by motions sequences.
    wait: {w+valur}
    this its a wait command, text will wait command input.
    valur:0 = wait any command
    valur:1 = wait Mouse Command
    valur:2 = wait keyboard input
    valur:z,d,t,y = wait a specifique key list input command
    function callBack: {f+callBackID}
    Pass a callBack ID defined in the plugin list, it allow to make custom Interaction.
    For example, make talk animation or face animations of other obj.
    the text id passed as parameter.
    note: usefull for pause and wait command combinaison for text sequences motions animations.
    mouse interaction: {m+text}
    This allow to embed specifique text and allow to call specific callBack mouse method.
    Its will detect the click, over mouse, and mouse out.
    The text embed will passed at parameter for the custom function proprety.

    STYLES TEXT PROPRETY LISTS: <s>
    you can use the generator here
    This list its basic for now, i need to edit it, but here all feature for styles..
    PHP:
        align: 'center',   // 'left'||'center'||'right' //primary
        breakWords: false, //Break words between any two letters on wordWrap //primary
        dropShadow: false,
        dropShadowAngle: Math.PI / 6,
        dropShadowBlur: 0,
        dropShadowColor: '#000000',
        dropShadowDistance: 5,
        fill: 'black',
        fillGradientType: TEXT_GRADIENT.LINEAR_VERTICAL,
        fontFamily: 'Arial',
        fontSize: 26,
        fontStyle: 'normal', //normal|italic|oblique|initial|inherit
        fontVariant: 'normal', //normal|small-caps|initial|inherit
        fontWeight: 'lighter', //normal|bold|bolder|lighter|number|initial|inherit|900|600|400
        letterSpacing: 0,
        lineHeight: 0,
        lineJoin: 'miter', //"bevel|round|miter"
        miterLimit: 10,
        padding: 0,
        stroke: 'black',
        strokeThickness: 0,
        textBaseline: 'alphabetic', //"alphabetic|top|hanging|middle|ideographic|bottom"
        wordWrap: false, //primary
        wordWrapWidth: 100, //primary
        lineStyle:'middle', //'top'||'middle'||'bottom' //primary

    SCRIPTCALL LISTS && METHODS

    pixiMS
    allow to global access to the plugin, also for initialise and create animated txt obj game.
    VSCkzWMV_o.jpg


    legend: green:finish yellow:available partially red:todo
    .newMS(id, layer, txt, styles, x, y)
    method Info+
    initialise and create a new multi Style pixi object ID to a specific layers.
    id(number): id asign to the pixi multiStyle object stored in the register
    layer(number): layer id where show the pixi multiStyle Object,
    txt"string": text string
    styles{obj}||"string": pass a pure pixi styles obj or styles name id in plugin dataBase
    x(number)optional: x pos of container, default 0;
    y(number)optional: y pos of container, default 0;
    return: motionTextContainers
    PHP:
    var styles = 'myMenuStyle1';
    var txt = "hi, am a awsome {s0}PIXI text{/s0};
    var myVar = pixiMS.newMS(1, 6, txt, styles, 200, 10)

    __________________________________________________________________________________________
    motionTextContainers METHOD AND SETUP

    .add_splitBy(type)
    method Info+
    Registe a split method to this text setup. Its the regex algoript to use when text will building.
    The split algorypte will also afect performance and how motions will work and rendering. You can also set the default split algorithme for all game in the plugin Manager
    2:"letters" , use a regex for split string by letters
    1:"words", use a regex for split string by words
    or default 0:"tag" use a regex and split text by styles tag.
    type(number)||"string"optional: set a number or string type, for registe the regex algorithme.
    return: motionTextContainers
    PHP:
    var styles = 'myMenuStyle1';
    var txt = "hi, am a awsome {s0}PIXI text{/s0};
    var myVar = pixiMS.newMS(1, 6, txt, styles, 100, 10).add_splitBy(2)

    .add_Giggles( xLimit, yLimit, rotLimit, frame, tag)
    method Info+
    Regist a motions Giggles setup on the regex splited string. You also can afect only some words , letters or tag, you can crush or push multiple motions setup. Giggle have random x,y move regex with easing effect.
    xLimit(number): the X power for the Giggles (pixel)
    yLimit(number): the Y power for the Giggles (pixel)
    rotLimit(number)optional: the Radius power for rotation (its divid/100), default 0
    frame(number)optional: speed of the motions effect (time frame) default 100
    tag[array]optional: list , tag or words or letters, will apply this motions setup on this list if exist. default false..
    return: motionTextContainers
    PHP:
    var styles = 'myMenuStyle1';
    var txt = "hi, am a awsome {s0}PIXI text{/s0};
    var myVar = pixiMS.newMS(1, 6, txt, styles, 100, 10).add_splitBy(2)
    .add_Giggles( 1, 2, 0, 120)

    .add_Scaler( wLimit, hLimit, rotLimit, frame, tag, crush )
    method Info+
    Regist a motions Scaler setup on the regex splited string. You also can afect only some words , letters or tag, you can crush or push multiple motions setup. Scaler have random scaleX,ScaleY transformation regex with easing effect.
    wLimit(number): the X power for the Scaler sX(pixel) 1:100%
    hLimit(number): the Y power for the Scaler sY(pixel) 1:100%
    rotLimit(number)optional: the Radius power for rotation (its divid/100), default 0
    frame(number)optional: speed of the motions effect (time frame) default 100
    tag[array]optional: list , tag or words or letters, will apply this motions setup on this list if exist. default false.
    crush(boolean)optional: crush the current setup list, prevent multi motions registar on a list.
    return: motionTextContainers
    PHP:
    var styles = 'myMenuStyle1';
    var txt = "hi, am a awsome {s0}PIXI text{/s0};
    var myVar = pixiMS.newMS(1, 6, txt, styles, 100, 10).add_splitBy(2)
    .add_Giggles( 1, 2, 0, 120)
    .add_Scaler( 1, 2, 0, 120,'next page',true)

    .add_Shaking( xLimit, yLimit, rotLimit, frame, tag, crush )
    method Info+
    Regist a motions shacking effect on regext string text. similar to giggle but less easing
    xLimit(number): the X power for the Shaking (pixel)
    yLimit(number): the Y power for the Shakings (pixel)
    rotLimit(number)optional: the Radius power for rotation (its divid/100), default 0
    frame(number)optional: speed of the motions effect (time frame) default 100
    tag[array]optional: list , tag or words or letters, will apply this motions setup on this list if exist. default false.
    crush(boolean)optional: crush the current setup list, prevent multi motions registar on a list.
    return: motionTextContainers
    PHP:
    var styles = 'myMenuStyle1';
    var txt = "hi, am a awsome {s0}PIXI text{/s0};
    var myVar = pixiMS.newMS(1, 6, txt, styles, 100, 10).add_splitBy(2)
    .add_Shaking( 0,5,0,20)

    .add_Blinks( bLimit, teint, frame, tag, crush )
    method Info+
    add a blink effect on the regex string text, blink afect alpha, also color teint.
    bLimit(number): blink alpha power,
    teint(number)optional: allow to set and conbine a target teint color effect with this motions
    frame(number)optional: speed of the motions effect (time frame) default 100
    tag[array]optional: list , tag or words or letters, will apply this motions setup on this list if exist. default false.
    crush(boolean)optional: crush the current setup list, prevent multi motions registar on a list.
    return: motionTextContainers
    PHP:
    var styles = 'myMenuStyle1';
    var txt = "hi, am a awsome {s0}PIXI text{/s0};
    var myVar = pixiMS.newMS(1, 6, txt, styles, 100, 10).add_splitBy(2)
    .add_Blinks( 1 )

    .set_startEffect( mode, startProps, easingType, duration, waitTime)
    method Info+
    registering a starMotionEffect when element will rendering.
    mode'string': the mode for starting effect todo: (will allow multiple mode) default: linear
    startProps{obj}: add starting props for the starting props, see pixi obj props
    easingType[array]: add easing libray, from ivra, [type,inout]
    duration(number): duration in frames (ms) for easing library
    waitTime(number): time waiting at eatch element showing
    return: motionTextContainers
    PHP:
    var styles = 'myMenuStyle1';
    var txt = "hi, am a awsome {s0}PIXI text{/s0};
    var myVar = pixiMS.newMS(1, 6, txt, styles, 100, 10).add_splitBy(2)
    .add_Giggles( 1, 2, 0, 120)
    __________________________________________________________________________________________
    AFTER SETUP , COMPILER SETUP REGISTAR

    .end()
    method Info+
    start build text with all setup registered . its allow build text in a loading phase befor start the rendering. this method will not rendering text, it only start the regex, build register and variable closure for performance motions
    return: motionTextContainers
    PHP:
    var styles = 'myMenuStyle1';
    var txt = "hi, am a awsome {s0}PIXI text{/s0};
    var myVar = pixiMS.newMS(1, 6, txt, styles, 100, 10).add_splitBy(2)
    .add_Giggles( 1, 2, 0, 120)
    .add_Scaler( 1, 2, 0, 120,'next page',true)
    .end()// build text regex and closures with all setup registered befor

    __________________________________________________________________________________________
    motionTextContainers CONTROLER (AFTER COMPILER)

    .start()
    method Info+
    Start Rendering text and style , also start the motions animation engine if you add it in the register.
    you need use compiler from .end() befor for registering all setup
    return: motionTextContainers
    PHP:
    var styles = 'myMenuStyle1';
    var txt = "hi, am a awsome {s0}PIXI text{/s0};
    var myVar = pixiMS.newMS(1, 6, txt, styles, 100, 10).add_splitBy(2)
    .end() // compile
    .start() // start compiled motions text

    .pause()
    method Info+
    Pause freeze, all motions text animations registered
    PHP:
    var styles = 'myMenuStyle1';
    var txt = "hi, am a awsome {s0}PIXI text{/s0} with {s0}Multi Styles Motions.{/s0} I support {s1}line Break{/s1} and also {s1}wordWrap{/s1} .I have a {s2}optimised performance core{/s2} with motions core animations.I also support icons {i8} and animated icons {i6} preCache.";
    var myVar  = pixiMS.newMS(1, 6).add_GigglesStyles(1,1).txt(txt,styles).start(); // rendering the motion text
    myVar.pause(); // pause the motion text animation only

    .stop()
    method Info+
    Stop all motion register and clear text render.
    the ID remains cached, which allows you to quickly start and redering again the text already built.
    PHP:
    var styles = 'myMenuStyle1';
    var txt = "hi, am a awsome {s0}PIXI text{/s0} with {s0}Multi Styles Motions.{/s0} I support {s1}line Break{/s1} and also {s1}wordWrap{/s1} .I have a {s2}optimised performance core{/s2} with motions core animations.I also support icons {i8} and animated icons {i6} preCache.";
    var myVar  = pixiMS.newMS(1, 6).add_GigglesStyles(1,1).txt(txt,styles).start(); // rendering the motion text
    myVar.stop(); // stop rendering and remove text children

    .destroy()
    method Info+
    No need use this text ID again, destroy the text from cache and all render registar.
    PHP:
    var styles = 'myMenuStyle1';
    var txt = "hi, am a awsome {s0}PIXI text{/s0} with {s0}Multi Styles Motions.{/s0} I support {s1}line Break{/s1} and also {s1}wordWrap{/s1} .I have a {s2}optimised performance core{/s2} with motions core animations.I also support icons {i8} and animated icons {i6} preCache.";
    var myVar  = pixiMS.newMS(1, 6).add_GigglesStyles(1,1).txt(txt,styles).start(); // rendering the motion text
    myVar.destroy(); // destroy text ID and Cache rendering and remove text children

    .debug()
    method Info+
    Active live Debugger to check text engine and understand how its work. Userfull for setup text, motions and styles.
    PHP:
    var styles = 'myMenuStyle1';
    var txt = "hi, am a awsome {s0}PIXI text{/s0} with {s0}Multi Styles Motions.{/s0} I support {s1}line Break{/s1} and also {s1}wordWrap{/s1} .I have a {s2}optimised performance core{/s2} with motions core animations.I also support icons {i8} and animated icons {i6} preCache.";
    var myVar  = pixiMS.newMS(1, 6).add_GigglesStyles(1,1).txt(txt,styles).start().debug(); // rendering the motion text

    DOWNLOAD: v1.0 stable
    download v1.0
    note: the plugin is stable but will evolve according to the evolution of my project.

    target project befor motion!
    youtube

    After target motion txt and pixi animation texture packer!
    youtube2
  2. @Jonforum Amazing work!
    I'm looking forward for updates, looks fantastic :kaojoy:
  3. Gamefall Team said:
    @Jonforum Amazing work!
    I'm looking forward for updates, looks fantastic :kaojoy:
    hey, thanks friendl, its a update of our work .
    he must answer all the needs..
    I need a quick plugin that allows me to do everything with the text.
    hard work but fun
  4. i can make a menu from scratch with no programming with it?
  5. plz avoid sending me pv on the original tune in psychadelic mode.
    I give the link in original tread, thank you
    enough to laugh for hours, and plunge your brain into an imaginary world
    the original iinspiration are this one.
  6. but is possible to make menus with it? and battles HUD too?
  7. Black Mamba said:
    but is possible to make menus with it? and battles HUD too?
    yes its my first priority why i need it and in developpement.
    Example :
    interactive menu title

    quest gui

    maps menu + reverse MASK


    for battle gui menus, nop , i dont touch or use rmmv battle system in my project.
    you have to see someone specialize in the battle codes from rmmv.
    i never study how work the battle in rmmv engine, i dont like it :).

    another example here for my target, not use PIXI thecnologie here, only rmmv canva thecnologie with some great plugin dev here, @triacontane and @Galv coding (very lagging), but my target is made this in full intro in PIXI thecnologie + motion text, its will be awsome.
    But it easy to dev with heavy js code, am a lightweight code dev.
    this intro made with obsolete and very heavy rmmv code, at end see those codes canvas f.u.c.k.e.d up to 5 fps!

  8. omg thats awesome, touch screen works too?
  9. Black Mamba said:
    omg thats awesome, touch screen works too?
    Android technology is another reality.
    It has some adjustment to make, but it is minor, as a developer it is easier to target an environment than many.
    example in my code here frome PIXI SpriteSheetsAnimations Core:
    at line 213 i buil a checkJSON_Integrity code.
    but this one are build under and use a Node.js thecnologie.
    So work very good for PC, mac, and linux, but f.u.c.k.e.d. up when use under android thecnologie if i try to emulate under XDK
    Am alway try made a code fully compatible all interfacE (pure js but some time it very hard)
    so yes touch screen work , but for now the plugin not work with android because i use Node.js code that not compatible with endroid enviroment.
    Example here.
    PHP:
        // Validate integrity directory: json formats (texturePacker: multipack on single ), also auto detection
        _pixiSSA_aniObj.prototype.checkJSON_Integrity = function() {
            if(Utils.isNwjs()){ // if pc or mac linux TODO: ANDROID + loader
            var path = require('path'),
                gameDir = path.dirname(process.mainModule.filename),
                fs = require('fs');
            var valid_JSON = {};
            for (objName in this) {
                if (typeof this[objName] !== "object") { continue; }; // jumper valide name 'object'
                valid_JSON[objName] = [];
                for (var i = 0, len = this[objName].json.length; i < len; i++) {
                    var dirFile = this[objName].json[i];
                    if (fs.existsSync(gameDir + '/' + dirFile + '.json')) {
                        valid_JSON[objName].push(dirFile + '.json');
                        continue;
                    };
                    for (var num = 0;; num++) {
                        if (fs.existsSync(gameDir + '/' + dirFile + '-' + num + '.json')) {
                            valid_JSON[objName].push(dirFile + '-' + num + '.json');
                        } else { break; };
                    };
                };
            };
            for (objName in valid_JSON) {
                Object.defineProperty(this[objName], 'valid_JSON', { enumerable: false, configurable: false, value: valid_JSON[objName] });
            };
        };
    };

    i need here to change require that f.u.c.k.e.d up in android envirnoment.
    for now i dont know how target directory with android environment, but its maybe
    very easy, i just neef do testing debug from emulator xdk and try to find a code to target directory environement.
    For now , i dont test a lot android thecnologie. but dont worry ,
    am interested
  10. Doesn't just using OpenGL make most android phones not want to work anymore? Or is this using Canvas? Sorry for my ignorance, just trying to get it straight in my head.
  11. bhindi1224 said:
    Doesn't just using OpenGL make most android phones not want to work anymore? Or is this using Canvas? Sorry for my ignorance, just trying to get it straight in my head.
    for mobile, it's not openGL but webGl, a diferent technology.
    And again, I do not think ideally RPG game developer seeks to reach mobile phone users, but rather tablet or rasbery users.
    I do some test, I'm able to RUN my projects on android, but ideally it takes (need) the latest technologies what the most of mobiles user do not have.
    But am not a mobile gamer , so am not very understand and testing mobile thecnologie.
    Am maybe a old young man lol.
    When a play a game, i use only my pc or my china tablet.
    but i know some people use here phone!.
    but its not my priority to target phone for my project, but android yes its in my target.
  12. Jonforum said:
    yes its my first priority why i need it and in developpement.
    Example :
    interactive menu title

    quest gui

    maps menu + reverse MASK


    for battle gui menus, nop , i dont touch or use rmmv battle system in my project.
    you have to see someone specialize in the battle codes from rmmv.
    i never study how work the battle in rmmv engine, i dont like it :).

    another example here for my target, not use PIXI thecnologie here, only rmmv canva thecnologie with some great plugin dev here, @triacontane and @Galv coding (very lagging), but my target is made this in full intro in PIXI thecnologie + motion text, its will be awsome.
    But it easy to dev with heavy js code, am a lightweight code dev.
  13. addition of a small roadmap and preliminary codes.
    add link to alpha code
  14. release v1.0 + basic tutorial
  15. All that work, This is so nice o_O are everything supported on android/ios deploy? I plan to do some update to my project now... (The chibo garden, it is in my signature! So far it look like a rpg maker game, but thanks to your plugin, i may can do a proper mobile game! Do you have any master demo? Also what are the conditions for commercial use?)
  16. ashyramoonwolf said:
    All that work, This is so nice o_O are everything supported on android/ios deploy? I plan to do some update to my project now... (The chibo garden, it is in my signature! So far it look like a rpg maker game, but thanks to your plugin, i may can do a proper mobile game! Do you have any master demo? Also what are the conditions for commercial use?)
    hi
    *no master Demo for this plugin, but a lot of video and tutorial.
    * commercial use license m.i.t
    *as I explained a little higher, for the moment I do not aim for general support on android.
    Android do not support some Node.js thecnologie.
    i need to find other way to write prototype.checkJSON_Integrity
    and find files in a directory.
    window and android no have same directory and need other way.

    the only way it maybe use the XMLHttpRequest, but i not study how it working, but maybe soon.
    PHP:
     DataManager.loadDataFile = function(name, src) { //  tested and compatible android
        var xhr = new XMLHttpRequest();
        var url = 'data/' + src;
        xhr.open('GET', url);
        xhr.overrideMimeType('application/json');
        xhr.onload = function() {
            if (xhr.status < 400) {
                window[name] = JSON.parse(xhr.responseText);
                DataManager.onLoad(window[name]);
            }
        };
        xhr.onerror = this._mapLoader || function() {
            DataManager._errorUrl = DataManager._errorUrl || url;
        };
        window[name] = null;
        xhr.send();

    a version 2.0 will comming soon, with maybe compatibility on OS android.