[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 ...
随机推荐
- el-input为数字时验证问题
el-input为数字时,初始有值,怎么还会验证不能为空? html: <el-form-item label="审核数量:" prop="checkNum&quo ...
- SQL Server 部署CLR程序集错误`6218`
Visual Studio 2015中开发的SQL Server项目,添加了用户自定义函数,需要部署到SQL Server 2005上, 在部署时报错: (70,1): SQL72014: .Net ...
- kali linux下的常用bash命令
虚拟机版本默认用户root 密码toor ls:显示当前目录包含的文件及文件夹 ls -l:以常规格式显示当前目录包含的文件及文件夹(开头字母解释:d:目录 -:文件 c:设备文件 l:链接 b:块设 ...
- flask-sqlalchemy 用法总结
Flask-SQLAlchemy是一个Flask扩展,能够支持多种数据库后台,我们可以不需要关心SQL的处理细节,操作数据库,一个基本关系对应一个类,而一个实体对应类的实例对象.Flask是一个轻量级 ...
- ns统计使用资源的SNMP OID
ns统计使用资源的SNMP OID > add snmp manager 192.168.195.1 > add snmp community public ALL > add sn ...
- [APIO2018] New Home
题面在这里 description 在一个数轴上: 给定\(n\)个商店,每个商店有一个开业时间,关门时间,坐标和销售物品的种类 同时有\(m\)个询问,每个询问给你一个时间\(t[i]\)和地点\( ...
- [洛谷P3865]【模板】ST表
题目大意:区间静态最大值 题解:ST表,zkw线段树 ST表: st[i][j]存[i,i+$j^{2}$-1]的最大值,查询时把区间分成两个长度相同的小区间(可重复) #include<cst ...
- 周记【距gdoi:96天】
倒计时从三位数变成了两位数. 然后这周还是很不知道怎么说,经常写一道题写两天.但是总算把后缀数组写完了,也整理完了. 然后周末都不知道干了什么周末就过去了.无聊看了两道省选题发现都是不会做系列,看了以 ...
- BZOJ1927 [Sdoi2010]星际竞速 【费用流】
1927: [Sdoi2010]星际竞速 Time Limit: 20 Sec Memory Limit: 259 MB Submit: 2582 Solved: 1601 [Submit][St ...
- MSSQL事务在C#程序端的使用
拼接成一条SQL执行 优点:简单,容易看懂: 缺点:某些场合,涉及的业务较多,在同一SQL处理显得太冗长,复杂,不利于解耦. 使用细节 在方法之间传递参数,确保多个方法中的SQL都是使用同一个事务的( ...