声明:《使用Libgdx进行游戏开发》是一个系列,文章的原文是《Learning Libgdx Game Development》,大家请周知。后续的文章连接在这里


使用Libgdx进行游戏开发(12)-动画


这是一场旅程的开始。

我们将要使用Libgdx来开发一款功能俱全的游戏--CanyonBunny峡谷兔子,一个控制兔子跑酷吃金币的平台游戏

对于程序员来讲,实践是最快的学习方法。所以建议大家从头到尾的实践一遍先,当然,要注意一些基本的提示。

在开始之前,我们要构思一下我们准备开发的游戏,最好能编写一份游戏设计文档

(游戏设计文档是一个游戏成功的基本前提。如果你没有事先做好游戏设计文档,那么你的游戏可能永远没有完成的那一天,哪怕它再简单。)

构思之后,开始动手,首先使用Libgdx Project setup创建游戏工程。

•Name: CanyonBunny
•Package: com.packtpub.libgdx.canyonbunny
•Game class: CanyonBunnyMain
•Destination: D:\gamedev\CanyonBunny
•Generate the desktop project: 勾上
像这样:

游戏名称:CanyonBunny,加载工程之后记得把Android里的名称改掉,默认的值是<string name="app_name">My LibGDX Game</string>

首先构思游戏基本框架(OOP):不懂类图也不要担心,可以边做边看,以后看得多了就懂了。

在这个类图里面,包含了该游戏所有的类。(包括重要的类的描述和它们之间的关联)

首先, 不要被类图的这些线啊箭头啊方框啊吓到. 可能你并不熟悉类图或者UML (Unified Modeling Language),不要担心,直接看我解释吧.

【每个类用一个方框代表,上面有«abstract»的表示抽象类,«interface»的表示接口。】

【线用来表示类之间的关系:不带箭头的线表示两者之间相互依赖。带实心箭头的表示该类需要指向的类才能正常工作。空心箭头通常都是指向基类/接口的实现类】

【数字0..*是指对应的类的实例的个数关系,是1个对1个实例还是有很多个实例】

下面我解释一下:

• 玩家角色
°° BunnyHead: 它表示玩家控制的角色.
• 关卡对象
°° Rock: 它表示一个有边的从左到右的平台 , 中间长度任意.就是关卡的地面.
• 关卡道具
°° GoldCoin: 它表示一个金币,玩家碰到了增加玩家的分数.
°° Feather: 它表示一个羽毛,玩家碰到了可以飞.
• 关卡装饰
°° WaterOverlay: 它表示水面,它跟摄像机是横向绑定的,所以一直看得见.
°° Mountains: 它表示两座用不同的速度移动的山,模拟一个视差效果.(Parallax视差效果是游戏中惯用的手段)
°° Cloud: 它代表了一个在天空慢慢从右移动到左边的云.

提示:对于游戏程序员来讲,先将自己的游戏设计类图画出来然后进行编码是一个好习惯。

试试根据上面的类图实现WorldRender,WorldController,CanyonBunnyMain的代码结构。


PS:欢迎各路游戏爱好者入群426950359,所有源码文件和资源文件都在群共享中


[libGDX游戏开发教程]使用libGDX进行游戏开发(1)-游戏设计的更多相关文章

  1. [libGDX游戏开发教程]使用libGDX进行游戏开发(12)-Action动画

    前文章节列表:  使用libGDX进行游戏开发(11)-高级编程技巧   使用libGDX进行游戏开发(10)-音乐音效不求人,程序员也可以DIY   使用libGDX进行游戏开发(9)-场景过渡   ...

  2. 微信小程序开发教程 #043 - 在小程序开发中使用 npm

    本文介绍了如何在微信小程序开发中使用 npm 中包的功能,大大提高微信小程序的开发效率,同时也是微信小程序系列教程的视频版更新. 微信小程序在发布之初没有对 npm 的支持功能,这也是目前很多前端开发 ...

  3. PythonWeb开发教程(一),开发之前需要准备什么

    什么是web开发呢,其实就是开发一个网站了.那开发网站需要用到哪些知识呢 1.python基础,因为用python开发的,所以python指定要会,最起码你也得会条件判断,循环,函数,类这些知识: 2 ...

  4. [libgdx游戏开发教程]使用Libgdx进行游戏开发(11)-高级编程技巧 Box2d和Shader

    高级编程技巧只是相对的,其实主要是讲物理模拟和着色器程序的使用. 本章主要讲解利用Box2D并用它来实现萝卜雨,然后是使用单色着色器shader让画面呈现单色状态:http://files.cnblo ...

  5. [libgdx游戏开发教程]使用Libgdx进行游戏开发(10)-音乐和音效

    本章音效文件都来自于公共许可: http://files.cnblogs.com/mignet/sounds.zip 在游戏中,播放背景音乐和音效是基本的功能. Libgdx提供了跨平台的声音播放功能 ...

  6. [libgdx游戏开发教程]使用Libgdx进行游戏开发(2)-游戏框架搭建

    让我们抛开理论开始code吧. 入口类CanyonBunnyMain的代码: package com.packtpub.libgdx.canyonbunny; import com.badlogic. ...

  7. [libgdx游戏开发教程]使用Libgdx进行游戏开发(9)-场景过渡

    本章主要讲解场景过渡效果的使用.这里将用到Render to Texture(RTT)技术. Libgdx提供了一个类,实现了各种常见的插值算法,不仅适合过渡效果,也适合任意特定行为. 在本游戏里面, ...

  8. [libgdx游戏开发教程]使用Libgdx进行游戏开发(7)-屏幕布局的最佳实践

    管理多个屏幕 我们的菜单屏有2个按钮,一个play一个option.option里就是一些开关的设置,比如音乐音效等.这些设置将会保存到Preferences中. 多屏幕切换是游戏的基本机制,Libg ...

  9. [libgdx游戏开发教程]使用Libgdx进行游戏开发(6)-添加主角和道具

    如前所述,我们的主角是兔子头.接下来我们实现它. 首先对AbstractGameObject添加变量并初始化: public Vector2 velocity; public Vector2 term ...

随机推荐

  1. vue2.0介绍

    1.vue.js 是什么 vue(view)是一套构建用户界面的渐进式框架 Vue (pronounced /vjuː/, like view) is a progressive framework  ...

  2. vue.js的特点-1

    1. Vue.js是数据驱动的,无需手动操作DOM. 它通过一些特殊的HTML语法,将DOM和数据绑定起来.一旦你创建了绑定,DOM将和数据保持同步,每当变更了数据,DOM也会相应的更新. 2. MV ...

  3. Linux中安装apache

    一.前言 安装的背景就是公司项目要用,自己在linux安装软件不多,过程比较曲折,需要记录一下(最近几篇博客好像都会有这种高大上的背景)~先说下笔者安装环境以及相关软件版本: 操作系统:RedHat ...

  4. RegExp & bug

    RegExp & bug translated bug // OK && tranlate `/` let new_obj_reg = new RegExp(`^(([^< ...

  5. 解决Git无法同步空文件夹的问题

    思路:在每个空文件夹下创建空文件,同步后再删除 package org.zln.module1.demo1; import org.apache.log4j.Logger; import java.i ...

  6. JavaScript 操作选中当前的li元素并给他添加select类

    JavaScript 操作选中当前的li元素并给他添加select类.之前都是使用jquery写的,今天使用JavaScript写一个. <!DOCTYPE html> <html ...

  7. [洛谷P2147][SDOI2008]洞穴勘测

    题目大意:有$n$个洞穴,$m$条指令,指令有三种 $Connect\;u\;v$:在$u,v$之间连一条边 $Destroy\;u\;v$:切断$u,v$之间的边 $Query\;u\;v$:询问$ ...

  8. MFC中ON_UPDATE_COMMAND_UI和ON_COMMAND消息区别

    原文链接地址:http://www.cnblogs.com/orez88/articles/2217823.html 第一个是你打开这个菜单时,处理这个菜单的状态,比如选中.变灰等等.  第二个是响应 ...

  9. apache代理服务器配置

    1. 扩展开启,httpd.conf开启一下选项 LoadModule proxy modules/proxy.so LoadModule proxy_connect modules/proxy_co ...

  10. [COGS 2421] [HZOI 2016] 简单的Treap 笛卡尔树

    笛卡尔树就是你给两维限制,一维堆R,一维二叉搜索树K,平地拔起一棵Treap,最广范的应用:用LCA求区间最值,建Treap,还有个什么范围top k我表示并不会查都查不到.它最妙最高的地方在于用栈来 ...