[libGDX游戏开发教程]使用libGDX进行游戏开发(1)-游戏设计
声明:《使用Libgdx进行游戏开发》是一个系列,文章的原文是《Learning Libgdx Game Development》,大家请周知。后续的文章连接在这里
这是一场旅程的开始。
我们将要使用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)-游戏设计的更多相关文章
- [libGDX游戏开发教程]使用libGDX进行游戏开发(12)-Action动画
前文章节列表: 使用libGDX进行游戏开发(11)-高级编程技巧 使用libGDX进行游戏开发(10)-音乐音效不求人,程序员也可以DIY 使用libGDX进行游戏开发(9)-场景过渡 ...
- 微信小程序开发教程 #043 - 在小程序开发中使用 npm
本文介绍了如何在微信小程序开发中使用 npm 中包的功能,大大提高微信小程序的开发效率,同时也是微信小程序系列教程的视频版更新. 微信小程序在发布之初没有对 npm 的支持功能,这也是目前很多前端开发 ...
- PythonWeb开发教程(一),开发之前需要准备什么
什么是web开发呢,其实就是开发一个网站了.那开发网站需要用到哪些知识呢 1.python基础,因为用python开发的,所以python指定要会,最起码你也得会条件判断,循环,函数,类这些知识: 2 ...
- [libgdx游戏开发教程]使用Libgdx进行游戏开发(11)-高级编程技巧 Box2d和Shader
高级编程技巧只是相对的,其实主要是讲物理模拟和着色器程序的使用. 本章主要讲解利用Box2D并用它来实现萝卜雨,然后是使用单色着色器shader让画面呈现单色状态:http://files.cnblo ...
- [libgdx游戏开发教程]使用Libgdx进行游戏开发(10)-音乐和音效
本章音效文件都来自于公共许可: http://files.cnblogs.com/mignet/sounds.zip 在游戏中,播放背景音乐和音效是基本的功能. Libgdx提供了跨平台的声音播放功能 ...
- [libgdx游戏开发教程]使用Libgdx进行游戏开发(2)-游戏框架搭建
让我们抛开理论开始code吧. 入口类CanyonBunnyMain的代码: package com.packtpub.libgdx.canyonbunny; import com.badlogic. ...
- [libgdx游戏开发教程]使用Libgdx进行游戏开发(9)-场景过渡
本章主要讲解场景过渡效果的使用.这里将用到Render to Texture(RTT)技术. Libgdx提供了一个类,实现了各种常见的插值算法,不仅适合过渡效果,也适合任意特定行为. 在本游戏里面, ...
- [libgdx游戏开发教程]使用Libgdx进行游戏开发(7)-屏幕布局的最佳实践
管理多个屏幕 我们的菜单屏有2个按钮,一个play一个option.option里就是一些开关的设置,比如音乐音效等.这些设置将会保存到Preferences中. 多屏幕切换是游戏的基本机制,Libg ...
- [libgdx游戏开发教程]使用Libgdx进行游戏开发(6)-添加主角和道具
如前所述,我们的主角是兔子头.接下来我们实现它. 首先对AbstractGameObject添加变量并初始化: public Vector2 velocity; public Vector2 term ...
随机推荐
- vue2.0介绍
1.vue.js 是什么 vue(view)是一套构建用户界面的渐进式框架 Vue (pronounced /vjuː/, like view) is a progressive framework ...
- vue.js的特点-1
1. Vue.js是数据驱动的,无需手动操作DOM. 它通过一些特殊的HTML语法,将DOM和数据绑定起来.一旦你创建了绑定,DOM将和数据保持同步,每当变更了数据,DOM也会相应的更新. 2. MV ...
- Linux中安装apache
一.前言 安装的背景就是公司项目要用,自己在linux安装软件不多,过程比较曲折,需要记录一下(最近几篇博客好像都会有这种高大上的背景)~先说下笔者安装环境以及相关软件版本: 操作系统:RedHat ...
- RegExp & bug
RegExp & bug translated bug // OK && tranlate `/` let new_obj_reg = new RegExp(`^(([^< ...
- 解决Git无法同步空文件夹的问题
思路:在每个空文件夹下创建空文件,同步后再删除 package org.zln.module1.demo1; import org.apache.log4j.Logger; import java.i ...
- JavaScript 操作选中当前的li元素并给他添加select类
JavaScript 操作选中当前的li元素并给他添加select类.之前都是使用jquery写的,今天使用JavaScript写一个. <!DOCTYPE html> <html ...
- [洛谷P2147][SDOI2008]洞穴勘测
题目大意:有$n$个洞穴,$m$条指令,指令有三种 $Connect\;u\;v$:在$u,v$之间连一条边 $Destroy\;u\;v$:切断$u,v$之间的边 $Query\;u\;v$:询问$ ...
- MFC中ON_UPDATE_COMMAND_UI和ON_COMMAND消息区别
原文链接地址:http://www.cnblogs.com/orez88/articles/2217823.html 第一个是你打开这个菜单时,处理这个菜单的状态,比如选中.变灰等等. 第二个是响应 ...
- apache代理服务器配置
1. 扩展开启,httpd.conf开启一下选项 LoadModule proxy modules/proxy.so LoadModule proxy_connect modules/proxy_co ...
- [COGS 2421] [HZOI 2016] 简单的Treap 笛卡尔树
笛卡尔树就是你给两维限制,一维堆R,一维二叉搜索树K,平地拔起一棵Treap,最广范的应用:用LCA求区间最值,建Treap,还有个什么范围top k我表示并不会查都查不到.它最妙最高的地方在于用栈来 ...