libGDX学习记录(三)像素鸟

生成libGDX项目

1.在这里插入图片描述
镜像地址:https://maven.aliyun.com/nexus/content/groups/public/
在这里插入图片描述
2.点击Generate,两次确认是。
在这里插入图片描述

3.用IDEA打开项目,在android目录下的assest下存放像素鸟的图片音频资源

在这里插入图片描述
4.修改桌面端配置
在这里插入图片描述

5.在core下创建如下包
在这里插入图片描述
6.添加Res类
在这里插入图片描述

package com.mygdx.game.res;

public class Res {

    public static final float FIX_WORLD_WIDTH = 480;

    public static final String FPS_BITMAP_FONT_PATH = "fps/fps24.fnt";

    /**
     * 相关的物理参数(不同参数决定不同难度)
     */
    public static interface Physics{
        //水管和地板的移动速度
        public static final float MOVE_VELOCITY = -150.0F;

        //点击屏幕时小鸟竖直向上的速度
        public static final float JUMP_VELOCITY = 320.0F;

        //重力加速度
        public static final float GRAVITY = -420.0F;

        //撞入深度,小鸟撞入水管或地板该深度后才算碰撞
        public static final float DEPTH = 0.0F;

        //生成水管时间间隔
        public static final float GENERATE_BAR_TIME_INTERVAL = -2.2F;

        //上下水管间的间隔
        public static final float BAR_INTERVAL = -180.0F;
    }

    /**
     * 纹理图集
     */
    public static interface Atlas{
        /**纹理图集 文件路径 */
        public static final String ATLAS_PATH = "atlas/images.atlas";

        /**纹理图集中的小图名称 */
        public static final String IMAGE_GAME_BG = "game_bg";
        public static final String IMAGE_GAME_FlOOR = "game_floor";
        public static final String IMAGE_GAME_RESULT_BG = "game_result_bg";
        public static final String IMAGE_BAR_DOWN = "bar_down";
        public static final String IMAGE_BAR_UP = "bar_up";
        public static final String IMAGE_GAME_TAP_TIP = "game_tap_tip";
        public static final String IMAGE_GAME_READY = "game_ready";
        public static final String IMAGE_GAME_OVER = "game_over";

        public static final String IMAGE_GAME_START_01_TO_02 = "game_start";
        public static final String IMAGE_GAME_MEDAL_01_TO_04 = "game_medal";

        public static final String IMAGE_NUM_BIG_00_TO_09 = "num_big";
        public static final String IMAGE_NUM_SCORE_00_TO_09 = "num_score";
        public static final String IMAGE_BIRD_YELLOW_01_TO_03 = "bird_yellow";


        /**
         * 音效
         */
        public static interface Audio{
            /**音效文件路径 */
            public static final String AUDIO_BASE_DIR = "audio/";

            public static final String AUDIO_DIE = AUDIO_BASE_DIR+"die.ogg";
            public static final String AUDIO_HIT = AUDIO_BASE_DIR+"hit.ogg";
            public static final String AUDIO_TOUCH = AUDIO_BASE_DIR+"touch.ogg";
            public static final String AUDIO_RESTART = AUDIO_BASE_DIR+"restart.ogg";
            public static final String AUDIO_SCORE = AUDIO_BASE_DIR+"score.ogg";
        }

        /**
         * Preferences 本地存储相关
         */
        public static interface Prefs{
            public static final String PREFS_FILE_NAME = "prefs_flappy_bird";
            public static final String KEY_BEST_SCORE = "best_score";
        }




    }


}

7.创建如图包及类
在这里插入图片描述

8.项目源码

9.打开图中位置,点击运行
在这里插入图片描述

10.使用 gradlew desktop:dist 指令 打包成jar包
在这里插入图片描述
在这里插入图片描述

11.在桌面端build目录下找到libs下生成的desktop-1.0.jar,打开即可在有java环境的电脑运行游戏
在这里插入图片描述
12.效果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下载后可以在webstrom中打开运行。 1. underscore中random产生随机数、without从数组中移除数据 2. 在游戏开发的时候,应该始终用面向对象的思想来做。有一个游戏管控大类(Game)。 3. 用一个json文件,保存我们需要的图片数据,方便在内存中创建每一张图片对象。 4. canvas的宽度和高度不能固定,根据电脑动态设置。 5. 使用ES6语法创建类。 6. FPS (每秒传输帧数(Frames Per Second)) 刷新率FNO 记录当前走过总帧数 7. 在每一次canvas绘制之前,都要进行清屏操作。ctx.clearRect(0, 0, canvas.width, canvas.height); 8. 资源加载。通过AJAX加载资源。静态资源类StaticResourceUtil.js用来加载本地图片。 9. 图片绘制,背景类BackGround.js,用来绘制背景。 通过图片的移动实现游戏的移动。 图片的移动即不断改变图片的X坐标,不断绘制。 图片的无缝移动:绘制图片的两倍,当全部图片宽度走完的时候,将图片X重新改为0. 背景图的速度设置,事物离得越近速度越快,越远速度越慢。 10. 取整、字符串转数字:parseInt(txt); 11. 管道绘制,管道类Pipe.js,用来绘制管道。 管道的高度、位置要随机生成。 但要有最小高度与最大高度。 需要一个管道数组来保存所有的管道。 当管道移出画布,需要将管道从管道数组中移除。 12. 用gameEnd来标志游戏是否结束。 13. 的绘制,类bird.js,用来绘制。 根据帧率不断煽动翅膀。 14. 模拟重力加速度,利用dY,不断更新的y值。导致的下落越来越快。 15. 的旋转。利用save和restore保存和恢复画布的状态。 利用translate旋转画布的x、y轴,旋转恢复。 16. 鼠标点击事件,在的上升过程中,固定值模拟阻力。 17. 边界检测。上边界ycanvas.height - 地板高度 - 高度 18. 碰撞检测。利用管道进行检测。首先判断有没有进到管道竖着的区域,再判断是在空白天空区域还是管道区域,从而进行检测。 19. 小死亡,在死亡的地方绘制鲜血。鲜血撒完游戏结束。 20. 分数类。根据几位判断分数显示基准线。判断小是否飞到管道竖着的部分,如果飞过,则分数加一。 21. 求一个数字有几位。num.toString().length 22. 游戏初始化。设置背景及图片,点击开始后div隐藏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值