Egret学习-坦克大战开发-总结

用了几天开发游戏,现在回头整理下知识

首先附上源码,下载地址

http://www.521100.net/forum.php?mod=viewthread&tid=26&extra=page%3D1

1.Egret 主循环,用于实现业务逻辑更新游戏进度

        egret.lifecycle.addLifecycleListener((context) => {
            context.onUpdate = () => {
                if(!this.init) {
                    return;
                }
                if(this.player1) {
                    this.player1.move();
                }
                this.doEnemyAI();
                this.handleBullet();
            }
        })

2.碰撞检测

this.player1.hitTestPoint(bullet.x, bullet.y)

3.随机数的生成

    public randomNum(minNum:number,maxNum:number){
        switch(arguments.length){
            case 1:
                return Math.random()*minNum+1;
            case 2:
                return Math.random()*(maxNum-minNum+1)+minNum;
            default:
                return 0;
        }
    }

4.点击事件处理

开启

bg.touchEnabled = true;
bg.addEventListener(egret.TouchEvent.TOUCH_TAP, this.onBgTouch, this);

处理方法

    /* 响应背景的点击事件 */
    private onBgTouch(e) {
        let x = e.stageX;
        let y = e.stageY;

        this.player1.targetX = parseInt(x);
        this.player1.targetY = parseInt(y) ;
    }

5.画一个图形,圆形

        var shp:egret.Shape = new egret.Shape();
        shp.graphics.beginFill( 0xffff00, 1);
        shp.graphics.drawCircle(0, 0, 5);
        shp.graphics.endFill();
        this.addChild(shp);    

6.加载一个图片

    private createBitmapByName(name: string) {
        let result = new egret.Bitmap();
        let texture: egret.Texture = RES.getRes(name);
        result.texture = texture;
        return result;
    }

原文地址:https://www.cnblogs.com/woaitech/p/12242448.html

时间: 2024-10-09 22:22:22

Egret学习-坦克大战开发-总结的相关文章

Egret学习-坦克大战开发

学习了几天Egret,基本的语法和用法了解的差不多了,现在开始写一个坦克大战练习下,实践是最好的学习方式 首先确定下开发内容,概要设计 1.加载一个TiledMap,作为游戏地图 2.坦克分为两个阵营,玩家和敌方 3.有砖块和石头作为障碍物,坦克不能穿过 4.通过鼠标控制玩家坦克移动,坦克移动到鼠标点击的位置,简单的寻路,先左右移,后上下移动,遇到障碍物则停止 5.鼠标点击坦克,坦克发射子弹, 1)子弹遇到敌方,敌方坦克消失,子弹消失, 2)子弹遇到砖块,砖块消失,子弹消失 3)子弹遇到石头,石

Egret学习-坦克大战开发(二)

现在开始写具体实现代码 1.加载TiledMap 1 /** 2 * 创建游戏场景 3 * Create a game scene 4 */ 5 private createGameScene() { 6 let sky = this.createBitmapByName("bg_jpg"); 7 this.addChild(sky); 8 9 /*加载地图*/ 10 /*初始化资源加载路径*/ 11 this.url = "resource/640bg.tmx";

Egret学习-坦克大战开发(三)

实现玩家坦克的移动 基本流程 1.鼠标点击目标位置 2.坦克移动到指定位置,不能斜向移动,只能水平或垂直移动 3.可以简单寻路,如果中途遇到障碍,自动转向, 鼠标点击目标位置,将位置记录在坦克,在循环中移动到目标位置,同时判断是否遇到障碍, 给背景添加鼠标点击事件 1 let bg = this.createBitmapByName("bg_jpg"); 2 this.addChild(bg); 3 bg.touchEnabled = true; 4 bg.addEventListen

Egret学习-坦克大战开发(五)

玩家的功能已经全部完成,开始完成敌方的AI 敌方坦克也可以随机做一下几个动作 1.移动,2.发射子弹,3.转向 为了看起来效果更好一点,移动应该最大比例,发射子弹和转向应该比较少 首先要有个随机方法 1 public randomNum(minNum:number,maxNum:number){ 2 switch(arguments.length){ 3 case 1: 4 return Math.random()*minNum+1; 5 case 2: 6 return Math.random

unity3D学习—坦克大战(一)

背景介绍 本人一名C#程序员,从事C#开发已经有四年有余了,目前在一家大型公司上班.鉴于公司的业务需要,现在需要学习unity3D游戏开发,好在unity支持C#脚本开发,无形中省下了许多重新学习新语言的时间.好了,闲话不多说,开始正式学习之路. 本篇文章主要介绍unity的相关背景和下载安装等,使用的unity开发软件为当前最新5.3.5版本. 第一步,使用各大搜索引擎搜索关键字:unity 此处以百度搜索为例,红线框起来的是unity的官方网站,其网址为http://unity3d.com/

Java坦克大战(一)

接下来的几篇博客,想记录一下通过学习坦克大战项目来循序渐进的学习Java基础.主要是为了巩固基础知识,当然学习编程重要的还是多敲,问题通常是在敲代码的过程中发现的,积累也是在敲代码中寻求的经验.这个坦克大战项目是利用Java图形界面来做的,比较简陋.但是,在不断的往里面加功能的时候,可以学到很多知识,最重要的还是体会Java的面向对象编程思想.下面介绍几个用的上的Demo,最后是坦克大战的1.0版本. Demo1:回顾事件处理机制 /* * 功能:事件处理机制(ActionListener的应用

HTML5移动开发之路(8)——坦克大战游戏2

本文为 兄弟连IT教育 机构官方 HTML5培训 教程,主要介绍:HTML5移动开发之路(8)--坦克大战游戏2 在上一篇文章中我们已经画出了自己的坦克,并且可以控制自己的坦克移动,我们继续接着上一篇来实现我们的坦克大战游戏吧. 一.将JS文件分离出来 使用OO的思想,我们已经对坦克进行了封装,对画坦克也进行了封装,下面我们将这两个对象提取到外部的js文件中,文件内容如下: [javascript] view plain copy print? //定义一个Hero类(后面还要改进) //x表示

小白学习Unity 3D做经典游戏坦克大战日常

老师 | Trigger 学习者 |小白 出品 | Siki 学院 Hello,小伙伴们.接下来小白跟Trigger老师做一款2D游戏坦克大战.从素材.代码到场景和UI的游戏开发.小白把日常遇到的问题做一个记录贴,让各位小伙伴充分了解Untiy 3D基本游戏开发和一些小白容易疏忽的问题.Unity 3D有着非常便利的管理和编码功能.现在非常热门的MOBA游戏王者荣耀,也是用Unity 3D 开发的呢!用其他编程语言例如: java / kotlin 和 Object-C / swift 原生游戏

HTML坦克大战学习02---坦克动起来

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body onkeydown="getCommand()"> <canvas id="tankMap" width="400px" height="