Laya 3d combat _013 de calidad comercial, persistencia de datos y fuentes de mapa de bits

desarrollo de juegos 3d comerciales laya

Objetivo de esta sección: realizar el sistema de puntuación

Puntos de conocimiento:
persistencia de valor, fuente de mapa de bits

Crea una nueva escena de juego y coloca la interfaz de usuario

Inserte la descripción de la imagen aquí

La partitura usa una fuente de mapa de bits
ruta de recursos
imagen de pez UISpritesheet \ FishboneIcone.png
imagen de fuente de mapa de bits Textrue \ num whileOutLine.png

fontClip var está configurado en fishfont

Inserte la descripción de la imagen aquí

Producción de fuentes de mapa de bits:
producción de Btmfont
https://ldc2.layabox.com/doc/?nav=zh-ts-1-2-5

En la práctica, nuestro equipo a menudo cambia la imagen para que el arte pueda estar en una buena posición.

Explicación de pit bit: ¿por qué usar fuentes de mapa de bits?
¡Los beneficios de las fuentes de mapa de bits pueden evitar ERRORES!
Un pequeño número de modelos y canales
que no cooperan con Laya tendrán las siguientes situaciones al usar texto o etiqueta
Inserte la descripción de la imagen aquí
.
Inserte la descripción de la imagen aquí
La aparición de errores de retroalimentación de la plataforma es muy desfavorable para la revisión y el lanzamiento, así que trate de evitar

vistas Crea un nuevo GameView.ts y cuelga para
exportar en tiempo de ejecución la clase predeterminada GameView extiende BaseView { constructor () { super (); }


public static instance: GameView;
fishfont: Laya.FontClip;
onAwake() {
    super.onAwake()
    GameView.instance = this;
}

}

Para facilitar el control del proceso, se crea una nueva clase de control de interfaz de usuario para facilitar la gestión

Ui Manager
Nuevo administrador / ViewMgr.ts
exporta la clase predeterminada ViewMgr {posición estática privada: ViewMgr

    public static get instance() {

        if (ViewMgr.minstance == null) ViewMgr.minstance = new ViewMgr();
        return ViewMgr.minstance;
    }

    public OpenGame(callder, callbackFunc: Function) {
        Laya.Scene.open(SceneType.Game, false, Laya.Handler.create(callder, view => {
            let viewtype = view as GameView;
            //加载完成回调
            if (callbackFunc != null)
                callbackFunc.apply(callder);
        }));
    }

}

Cree un nuevo directorio en el directorio Script. Cree un
nuevo SceneType.ts

/ ** Tipo de escena * /
const enum SceneType {

/**首页 */
Home = "views/home.scene",
/**游戏页 */
Game = "views/game.scene",
/**复活页 */
Over = "views/over.scene",
//读取页
loading = "views/loadind.scene",
tipsFloat = "views/tipsFloat.scene",
//模拟广告
devad = "views/devad.scene"

}

Gamesample.ts

public static StartGame() {

    ViewMgr.instance.OpenGame(this, (view) => {

        SceneManager.LoadSceneByName('Game', this, this.OnGameSceneLoadOk);
    })
    
}

Game.ts
onAwake () {

//
分数系统this.fishCount = PlayerPrefs.GetInt ('pez', 0);
GameView.instance.fishfont.value = this.fishCount.toString ();
}

// + 1 cuando el gato come pescado y actualiza la interfaz de usuario
playerEatFish () { this.fishCount + = 1; GameView.instance.fishfont.value = this.fishCount.toString (); }


onDestroy() {
    //游戏结束后才保存数据,频繁写入数据很消耗性能
    PlayerPrefs.SetInt('fish', this.fishCount);
}

¿Qué encapsula el módulo de acceso a datos de PlayerPrefs?

Atendiendo a los hábitos de los desarrolladores de U3D, suavizando la diferenciación de los resultados de ejecución de API en las principales plataformas
private static GetValueNum (value_name: string, defaul: number): number { // método prototipo var jsonData = Laya.LocalStorage.getItem (value_name); // oppo null key == null // vivo null key == '' if (jsonData == null || jsonData == '') return defaul; var d = Number (jsonData); return d; }








Player.ts
OnCollisionEnter (fuente: AABBShape, destino: AABBShape) {

console.log('OnCollisionEnter', target.mask);

if (target.mask == CollisionMask.Fish) {
  target.gameObject.active = false;
 //猫吃到鱼时+1且更新UI
  Game.instance.playerEatFish();

Game.scene 添加 runitme
Inserte la descripción de la imagen aquí

F8 -> ctrl + 12 -> f5

Inserte la descripción de la imagen aquí

Resumen:
use PlayerPrefs para leer y escribir datos, y
use fuentes de mapa de bits para mostrar la puntuación para mejorar la compatibilidad de la plataforma
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/koljy111/article/details/108020300
Recomendado
Clasificación