搜档网
当前位置:搜档网 › Unity4.x 2D游戏开发基础教程第一章

Unity4.x 2D游戏开发基础教程第一章

Unity4.x 2D游戏开发基础教程第一章
Unity4.x 2D游戏开发基础教程第一章

Unity4.x 2D 游戏开发基础教程(内部资料)——https://www.sodocs.net/doc/052469284.html, 版权所有

大学霸——https://www.sodocs.net/doc/052469284.html, Unity 4.x 2D

游戏开发基础教程

(内部资料)

大学霸

https://www.sodocs.net/doc/052469284.html,

·2·

Unity 4.x 2D游戏开发基础教程(内部资料)——https://www.sodocs.net/doc/052469284.html,版权所有

前言

Unity是一款综合性的游戏开发工具,也是一款全面整合的专业游戏引擎。它可以运行在Windows 和Mac OS X下,并提供交互的图形化开发环境为首要操作方式。使用Unity开发的游戏,可以部署到所有的主流游戏平台,而无需任何修改。这些平台包括Windows、Linux、Mac OS X、iOS、Android、Xbox 360、PS3、WiiU和Wed等。开发者无需过多考虑平台之间的差异,只需把精力集中到制作高质量的游戏即可,真正做到“一次开发,到处部署”。

据权威机构统计,国内53.1%的人使用Unity进行游戏开发;有80%的手机游戏是使用Unity开发的;苹果应用商店中,有超过1500款游戏使用Unity开发。

网上有为数众多的2D和3D游戏。稍微关注一下,就会发现2D游戏才是主流,如植物大战僵尸、愤怒的小鸟、打飞机、2048等。而且,问问身边的人让他们印象深刻的游戏是什么,你会惊讶的发现,大部分游戏同样是2D的。

基于以上不可忽略的事实,本书决定着眼于讲解使用Unity开发2D游戏的基础知识,且书中包含了两个生动的2D游戏示例,相信读者会喜欢它们的。

1.学习所需的系统和软件

? 安装Windows 7操作系统

? 安装Unity 4.5.1

Unity 4.x 2D游戏开发基础教程(内部资料)——https://www.sodocs.net/doc/052469284.html,版权所有·3·

目录

第1章 Unity及其组成的介绍................................................................................... 错误!未定义书签。

1.1 Unity概述 (8)

1.2 项目、资源和场景 (11)

1.2.1 项目 (11)

1.2.2 资源 (13)

1.2.3 场景 (15)

1.3 场景视图的操作 (15)

1.3.1 使用快捷键操作场景视图 (16)

1.3.2 使用Gizmo操作场景视图 (18)

1.4 游戏对象和组件 (19)

1.5 脚本与脚本编辑器 (20)

1.5.1 创建脚本 (20)

1.5.2 脚本编辑器 (21)

1.6 脚本的调试 (23)

1.6.1 调试方法一 (24)

1.6.2 调试方法二 (26)

第2章材质和纹理.................................................................................................... 错误!未定义书签。

2.1 材质和纹理的使用....................................................................................... 错误!未定义书签。

2.1.1 使用材质............................................................................................ 错误!未定义书签。

2.1.2 不同的材料类型——着色器............................................................ 错误!未定义书签。

2.1.3 使用纹理............................................................................................ 错误!未定义书签。

2.2 应用于2D游戏的材质................................................................................. 错误!未定义书签。

2.2.1 缘由.................................................................................................... 错误!未定义书签。

2.2.2 技巧一:使用白色的环境光............................................................ 错误!未定义书签。

2.2.3 技巧二:使用光不敏感着色器........................................................ 错误!未定义书签。

2.3 纹理使用规则............................................................................................... 错误!未定义书签。

2.3.1 规则1:分辨率是2的次方............................................................. 错误!未定义书签。

2.3.2 规则2:保证“质量”..................................................................... 错误!未定义书签。

2.3.3 规则3:增加阿尔法通道(Alpha Channel)................................. 错误!未定义书签。

2.4 导入纹理....................................................................................................... 错误!未定义书签。

2.4.1 导入纹理时默认设置介绍................................................................ 错误!未定义书签。

2.4.2 含有透明信息的纹理........................................................................ 错误!未定义书签。第3章着手开发一个简单的2D游戏...................................................................... 错误!未定义书签。

3.1 开始开发2D游戏......................................................................................... 错误!未定义书签。

3.1.1 导入纹理资源.................................................................................... 错误!未定义书签。

3.1.2 新建材质资源.................................................................................... 错误!未定义书签。

3.1.3 修改场景的环境光以及游戏时的屏幕尺寸.................................... 错误!未定义书签。

3.2 为场景添加游戏对象................................................................................... 错误!未定义书签。

·4·

Unity 4.x 2D游戏开发基础教程(内部资料)——https://www.sodocs.net/doc/052469284.html,版权所有

3.2.1 调整游戏对象的角度........................................................................ 错误!未定义书签。

3.2.2 改变游戏对象的位置........................................................................ 错误!未定义书签。

3.2.3 游戏对象的“碰撞”组件................................................................ 错误!未定义书签。

3.3 让飞船动起来............................................................................................... 错误!未定义书签。

3.4 让飞船发射子弹........................................................................................... 错误!未定义书签。

3.4.1 在场景中添加子弹............................................................................ 错误!未定义书签。

3.4.2 游戏时,让子弹在场景中移动........................................................ 错误!未定义书签。

3.4.3 生成子弹的预设................................................................................ 错误!未定义书签。

3.4.4 设置子弹的发射位置........................................................................ 错误!未定义书签。

3.4.5 在恰当的时机发射子弹.................................................................... 错误!未定义书签。

3.5 让外星飞船动起来....................................................................................... 错误!未定义书签。

3.5.1 编写脚本............................................................................................ 错误!未定义书签。

3.5.2 设置外星飞船的触发器.................................................................... 错误!未定义书签。

3.5.3 为子弹预设添加刚体组件................................................................ 错误!未定义书签。

3.6 为游戏添加背景........................................................................................... 错误!未定义书签。

第4章使用编辑器类自定义编辑器........................................................................ 错误!未定义书签。

4.1 编辑器类....................................................................................................... 错误!未定义书签。

4.2 开始使用编辑器类编写工具....................................................................... 错误!未定义书签。

4.2.1 为项目添加脚本................................................................................ 错误!未定义书签。

4.2.2 创建指定名称的文件夹.................................................................... 错误!未定义书签。

4.3 把工具添加到菜单....................................................................................... 错误!未定义书签。

4.3.1 CreateWizard函数.............................................................................. 错误!未定义书签。

4.3.2 测试脚本的实现效果........................................................................ 错误!未定义书签。

4.4 读取场景中选择的对象............................................................................... 错误!未定义书签。

4.4.1 在脚本中使用Selection类................................................................. 错误!未定义书签。

4.4.2 测试脚本的实现效果........................................................................ 错误!未定义书签。

4.5 为工具窗口添加用户输入框....................................................................... 错误!未定义书签。

4.6 完成工具的所有功能................................................................................... 错误!未定义书签。

第5章图片与几何图形对象.................................................................................... 错误!未定义书签。

5.1 2D游戏常用的图片...................................................................................... 错误!未定义书签。

5.1.1 精灵.................................................................................................... 错误!未定义书签。

5.1.2 图块集................................................................................................ 错误!未定义书签。

5.1.3 图形绘制中的问题............................................................................ 错误!未定义书签。

5.1.4 设想.................................................................................................... 错误!未定义书签。

5.2 开始编写编辑器工具................................................................................... 错误!未定义书签。

5.3 设置四边形的轴点....................................................................................... 错误!未定义书签。

5.4 指定四边形资源的存放路径....................................................................... 错误!未定义书签。

5.5 生成四边形................................................................................................... 错误!未定义书签。

5.5.1 阶段一:创建构成四边形的顶点、UV和三角形 .......................... 错误!未定义书签。

5.5.2 阶段二:在资源面板中生成四边形................................................ 错误!未定义书签。

5.5.3 阶段三:在场景中实例化一个四边形............................................ 错误!未定义书签。

5.6 使用四边形生成工具................................................................................... 错误!未定义书签。

第6章生成纹理图集................................................................................................ 错误!未定义书签。

6.1 为什么要使用纹理图集............................................................................... 错误!未定义书签。

Unity 4.x 2D游戏开发基础教程(内部资料)——https://www.sodocs.net/doc/052469284.html,版权所有·5·

6.1.1 降低绘制调用的次数........................................................................ 错误!未定义书签。

6.1.2 便于灵活的使用纹理........................................................................ 错误!未定义书签。

6.1.3 便于管理纹理.................................................................................... 错误!未定义书签。

6.2 开始编写生成纹理图集的工具................................................................... 错误!未定义书签。

6.3 添加组成纹理图集的纹理........................................................................... 错误!未定义书签。

6.4 UV对纹理图集的重要性............................................................................. 错误!未定义书签。

6.5 生成纹理图集............................................................................................... 错误!未定义书签。

6.5.1 步骤一:优化输入的纹理................................................................ 错误!未定义书签。

6.5.2 步骤二:构建纹理图集.................................................................... 错误!未定义书签。

6.5.3 步骤三:保存图集的预置................................................................ 错误!未定义书签。

6.6 脚本文件TexturePacker代码汇总................................................................ 错误!未定义书签。

6.7 测试工具的使用效果................................................................................... 错误!未定义书签。第7章 UV和动画...................................................................................................... 错误!未定义书签。

7.1 生成一个可停靠的编辑器........................................................................... 错误!未定义书签。

7.2 编辑工具窗口的界面................................................................................... 错误!未定义书签。

7.2.1 添加预置资源选择区域.................................................................... 错误!未定义书签。

7.2.2 添加纹理选择区域............................................................................ 错误!未定义书签。

7.2.3 添加纹理选择的两种方式................................................................ 错误!未定义书签。

7.2.4 编写用于修改网格对象UV坐标的函数 .......................................... 错误!未定义书签。

7.2.5 添加应用所有设置的按钮................................................................ 错误!未定义书签。

7.3 工具脚本代码的汇总与使用....................................................................... 错误!未定义书签。

7.4 一个播放动画的平面对象........................................................................... 错误!未定义书签。第8章益于2D游戏的摄像机与场景设置.............................................................. 错误!未定义书签。

8.1 摄像机类型:透视与正交........................................................................... 错误!未定义书签。

8.2 世界单元与像素........................................................................................... 错误!未定义书签。

8.3 世界单元与像素的转换............................................................................... 错误!未定义书签。

8.3.1 添加纹理和四边形对象.................................................................... 错误!未定义书签。

8.3.2 调整四边形与摄像机的位置............................................................ 错误!未定义书签。

8.3.3 世界单元:像素= 1:1 ................................................................... 错误!未定义书签。

8.3.4 对齐屏幕和场景坐标的原点............................................................ 错误!未定义书签。

8.4 纹理图片的完美显示................................................................................... 错误!未定义书签。

8.5 其它有用的设置技巧................................................................................... 错误!未定义书签。

8.5.1 调节深度............................................................................................ 错误!未定义书签。

8.5.2 合成视图............................................................................................ 错误!未定义书签。第9章获取玩家对2D游戏的输入.......................................................................... 错误!未定义书签。

9.1 自动检测鼠标单击事件............................................................................... 错误!未定义书签。

9.2 手动检测鼠标单击事件............................................................................... 错误!未定义书签。

9.2.1 鼠标按下的键及其位置.................................................................... 错误!未定义书签。

9.2.2 鼠标点击的第一个对象.................................................................... 错误!未定义书签。

9.2.3 鼠标点击的所有对象........................................................................ 错误!未定义书签。

9.3 修改游戏中的鼠标图标............................................................................... 错误!未定义书签。

9.3.1 准备所需的资源,并做适当设置.................................................... 错误!未定义书签。

9.3.2 编写脚本............................................................................................ 错误!未定义书签。

9.3.3 两个坐标系导致的问题.................................................................... 错误!未定义书签。

·6·

Unity 4.x 2D游戏开发基础教程(内部资料)——https://www.sodocs.net/doc/052469284.html,版权所有

9.3.4 查看游戏视图中的效果.................................................................... 错误!未定义书签。

9.4 使用键盘控制鼠标移动............................................................................... 错误!未定义书签。

9.5 对输入的抽象——输入轴........................................................................... 错误!未定义书签。

9.5.1 了解输入轴........................................................................................ 错误!未定义书签。

9.5.2 输入轴在输入过程中的应用............................................................ 错误!未定义书签。

9.6 来自移动设备的输入................................................................................... 错误!未定义书签。

9.6.1 检测移动设备上的触摸操作............................................................ 错误!未定义书签。

9.6.2 把触摸操作当作鼠标操作................................................................ 错误!未定义书签。

9.6.3 有选择的编译代码............................................................................ 错误!未定义书签。

第10章 2D卡片游戏——记忆大作战..................................................................... 错误!未定义书签。

10.1 游戏设计文档............................................................................................. 错误!未定义书签。

10.2 开始着手创建游戏..................................................................................... 错误!未定义书签。

10.2.1 在资源面板创建文件夹.................................................................. 错误!未定义书签。

10.2.2 创建一个纹理图集.......................................................................... 错误!未定义书签。

10.2.3 创建四边形对象.............................................................................. 错误!未定义书签。

10.2.4 修改四边形的材质和UV ................................................................ 错误!未定义书签。

10.2.5 设置摄像机和游戏视图的分辨率.................................................. 错误!未定义书签。

10.3 设置场景中的卡片..................................................................................... 错误!未定义书签。

10.3.1 设置卡片的属性.............................................................................. 错误!未定义书签。

10.3.2 定位卡片的位置.............................................................................. 错误!未定义书签。

10.3.3 编写控制卡片行为的脚本.............................................................. 错误!未定义书签。

10.3.4 补全场景中其余的卡片.................................................................. 错误!未定义书签。

10.4 游戏管理类................................................................................................. 错误!未定义书签。

10.4.1 重置卡片.......................................................................................... 错误!未定义书签。

10.4.2 处理玩家输入.................................................................................. 错误!未定义书签。

10.4.3 响应玩家输入.................................................................................. 错误!未定义书签。

10.4.4 游戏管理类代码汇总...................................................................... 错误!未定义书签。

10.5 完善并运行游戏......................................................................................... 错误!未定义书签。

10.5.1 替换系统鼠标图标.......................................................................... 错误!未定义书签。

10.5.2 游戏运行效果展示.......................................................................... 错误!未定义书签。

第11章可联机玩的游戏——记忆大作战.............................................................. 错误!未定义书签。

11.1 网络连接..................................................................................................... 错误!未定义书签。

11.2 建立服务器端............................................................................................. 错误!未定义书签。

11.3 建立客户端................................................................................................. 错误!未定义书签。

11.4 测试网络连接的功能................................................................................. 错误!未定义书签。

11.5 网络视图组件............................................................................................. 错误!未定义书签。

11.6 构建授权服务器......................................................................................... 错误!未定义书签。

11.7 建立游戏输入操作的秩序......................................................................... 错误!未定义书签。

11.7.1 游戏启动时,禁止输入操作.......................................................... 错误!未定义书签。

11.7.2 连接建立后,允许服务器端的输入操作...................................... 错误!未定义书签。

11.7.3 服务器端远程调用客户端上的函数.............................................. 错误!未定义书签。

11.7.4 客户端远程调用服务器端上的函数.............................................. 错误!未定义书签。

11.8 修改游戏管理类脚本................................................................................. 错误!未定义书签。

11.9 游戏运行效果展示..................................................................................... 错误!未定义书签。

Unity 4.x 2D游戏开发基础教程(内部资料)——https://www.sodocs.net/doc/052469284.html,版权所有·7·

11.10 为游戏添加分数记录............................................................................... 错误!未定义书签。第12章优化游戏的方法.......................................................................................... 错误!未定义书签。

12.1 最优化,如你所想吗?............................................................................. 错误!未定义书签。

12.2 减少顶点的数目......................................................................................... 错误!未定义书签。

12.3 减少材质..................................................................................................... 错误!未定义书签。

12.4 减少UV接缝............................................................................................... 错误!未定义书签。

12.5 不同平台下,纹理的不同设置................................................................. 错误!未定义书签。

12.6 对象缓存组件............................................................................................. 错误!未定义书签。

12.7 避免频繁使用Update()函数....................................................................... 错误!未定义书签。

12.8 合理使用Collider组件................................................................................ 错误!未定义书签。

12.9 避免使用OnGUI()和GUI类 ....................................................................... 错误!未定义书签。

12.10 使用静态批处理....................................................................................... 错误!未定义书签。

12.11 使用天空盒子........................................................................................... 错误!未定义书签。

·8·

Unity 4.x 2D游戏开发基础教程(内部资料)——https://www.sodocs.net/doc/052469284.html,版权所有

第1章 Unity及其组成的介绍

本书主要讲解的是,如何使用Unity开发2D游戏。但在开始讲解之前,最好先熟悉一下Unity这个工具。本章会首先介绍Unity的下载和安装,然后会介绍Unity界面的各组成部分,这些知识会在本书后面的章节频繁使用,所以不要掉以轻心。

1.1 Unity概述

Unity现如今已是非常的流行,因此在开始学习2D游戏开发之前,本节就来简要说明下Unity,及其下载和安装方法。

1.Unity简介

Unity是一款跨平台的专业游戏引擎,可以使用它轻松的开发各种2D和3D游戏,然后部署到各种游戏平台上。当然也包括这些主流游戏平台:Windows、iOS、Android、Xbox 360、PS3。

2.Unity的下载

Unity的安装包可以从它的官方网站下载到,如图1-1所示。

图1-1 从官网上下载Unity

链接是:https://www.sodocs.net/doc/052469284.html,/unity/download。写作本书时,可以下载到的最新版是Unity 4.5.1,大小是1.09G,下载到的安装包如图1-2所示。

图1-2 下载到的Unity安装包

Unity 4.x 2D 游戏开发基础教程(内部资料)——https://www.sodocs.net/doc/052469284.html, 版权所有

·9·

3.Unity 的安装

双击此安装包,即可开始Unity 的安装过程。如图1-3、图1-4和图1-5所示。

图1-3 Unity 安装过程1

图1-4 Unity 安装过程2

Unity 4.x 2D 游戏开发基础教程(内部资料)——https://www.sodocs.net/doc/052469284.html, 版权所有 ·10·

图1-5 Unity 安装过程3

整个安装过程十分的简单,除了指定一个软件的安装位置外,其它保留默认设置即可,大约用15分钟即可完成。双击安装好的Unity 软件应用程序图标,选择免费的版本,对于初学者而言,这个版本的功能足够使用,等到以后有需求了再安装收费但是功能更强大的版本也不迟,如图1-6所示。

图1-6 双击软件应用图标,选择免费版本

接下来,读者可以用不到1分钟的时间,使用邮箱注册一个帐号,并且在登录这个帐号以后,就可开始使用Unity 这个软件了,如图1-7所示。

Unity 4.x 2D游戏开发基础教程(内部资料)——https://www.sodocs.net/doc/052469284.html,版权所有·11·

图1-7 注册并登录帐号,然后就可以开始使用Unity了

提示:帐号的用途还是很多的,例如,在登录了帐号以后,可以在官网上下载一些游戏示例来研究。

1.2 项目、资源和场景

如果使用Unity制作游戏,就一定会接触到项目(Project、资源(Asset)和场景(Scene)。本节将依次介绍它们。

1.2.1 项目

Unity是一个基于项目的应用。这就意味着每开发一个新游戏,都要创建一个新项目。一个项目就代表一个游戏,不管游戏是2D还是3D的。开发人员可以把项目当做容器,它包含了开发游戏时,自动生成还有引入的所有文件。

要在Unity里创建一个新项目,可以单击File|New Project命令,如图1-8所示,这就像是在和Unity说“我想要制作一个新游戏”,于是Unity就会给你创建一个项目。

·12·

Unity 4.x 2D游戏开发基础教程(内部资料)——https://www.sodocs.net/doc/052469284.html,版权所有

图1-8 单击命令,创建项目图1-9 Project Wizard对话框

单击命令后弹出的Project Wizard(项目向导)对话框如图1-9所示。这个对话框允许你指定项目的存放位置,以及导入Unity预置的一些资源到项目。默认情况下,只指定存放位置就可以了,预置的资源可以在以后导入。如果设置好了,可以单击Create按钮,然后就生成了一个新的项目。一旦项目生成,Unity就会显示默认的界面,如图1-10所示。

图1-10 Unity界面的默认布局:○1是应用程序菜单○2是层次面板○3是资源面板○4是查看器○5是场景视图同时,在指定的项目存放位置下,生成了4个子文件夹:Library、Assets、ProjectSettings 和Temp,如图1-11所示。

Unity 4.x 2D游戏开发基础教程(内部资料)——https://www.sodocs.net/doc/052469284.html,版权所有·13·

图1-11 Unity在项目文件夹里生成的4个子文件夹

1.2.2 资源

开发游戏一定会使用很多东西,如网格、纹理、电影、动画、声音、音乐、文本等等。这些文件都被Unity称为资源(Asset)。只有导入到Unity中的资源,才可以在游戏开发的过程中使用,所以在使用资源之前,需要把资源导入到项目中。导入资源到项目的方法有两种:

?单击Asset|Import New Asset命令,在弹出的Import New Asset对话框中,找到存放资源的位置,选中后单击Import按钮即可,如图1-12所示。

图1-12 导入资源到项目的方法一

?直接拖拽文件到资源面板,如图1-13所示。

图1-13 导入资源到项目的方法二

两种方法都可以将资源导入到项目中,而导入的资源会显示在Unity编辑器的资源面板中,如图1-14所示。

·14·

Unity 4.x 2D游戏开发基础教程(内部资料)——https://www.sodocs.net/doc/052469284.html,版权所有

图1-14 导入到项目中的各类资源

第一种方法,一次只能导入一个资源到项目;第二种方法,一次可以导入多个资源,只要用鼠标选中多个资源,然后拖动就可以了。

补充:Unity可以识别的资源类型如表1.1所示。

表1.1 可被Unity的文件格式

网格(meshes)纹理(Texture)音频(Audio)视频(Movie)

.FBX .PSD .MP3 .MOV

.MA .TIFF .OGG .AVI

.MB .PNG .MOD .OGG

.MAX .BMP .IT .ASF

.BLEND .JPG .XM .MPG

.3DS .TGA .S3M

.DXF .DDS/PVR .WAV

.C4D

开发游戏,一定会用到很多资源。如果全部直接放置在资源面板下,一定会非常的混乱,如果能将资源按照类别和功能放到不同的地方就好了。要做到这点,可以在资源面板中创建文件夹,然后放置资源到资源面板里对应的文件夹里即可。

要在资源面板里创建文件夹,可以在资源面板里单击鼠标右键,从弹出的快捷菜单中单击Create|Folder命令。如图1-15所示,在资源面板中创建了一个名为Texture的文件夹。

图1-15 在资源面板中创建文件夹

然后选中对应的资源,拖动到文件夹中,就完成了资源的整理。

Unity 4.x 2D游戏开发基础教程(内部资料)——https://www.sodocs.net/doc/052469284.html,版权所有·15·1.2.3 场景

在Unity中,场景(Scene)就是游戏开发者制作游戏时,所使用的游戏场景。它是一个三维空间,对应的三维坐标轴分别是X轴、Y轴和Z轴。

要创建一个新的场景,只需单击File|New Scene命令,或者按下快键键Ctrl+N,如图1-16所示。

图1-16 创建程序的命令,以及场景

默认情况下,新创建游戏项目的同时,也新创建了游戏的场景,只不过还没有保存罢了。使用快捷键Ctrl+S即可保存场景,保存后的场景会被作为一种资源而显示在资源面板中,如图1-17所示,保存了名为envir的场景。

图1-17 被保存的场景,作为资源显示在了资源面板中

1.3 场景视图的操作

只要在资源面板里双击场景资源,就可以在场景视图中查看这个场景了,如图1-18所示。为了在场景视图中多角度的查看游戏中的各种元素,掌握一些场景视图的操作方法是很有必要的,本节主要介绍了两种方法:快捷键和工具。

Unity 4.x 2D 游戏开发基础教程(内部资料)——https://www.sodocs.net/doc/052469284.html, 版权所有

·16· 场景视图场景

图1-18 在场景视图中查看场景

1.3.1 使用快捷键操作场景视图

使用快捷键操作场景视图,常用的操作方式有:

?

使用鼠标的滚轮,可以控制游戏视图与场景中各元素距离的远近,如图1-19所示,

向上滚动靠近,向下滚动远离。

向上滚动向下滚动

图1-19 使用鼠标的滚轮,控制游戏视图与场景中各元素距离的远近

? 使用鼠标双击层次视图上的对象名,场景视图会移动,直到对应的对象处于场景视

图的中间,如图1-20所示。当开发这在场景中找不到对应的对象时,可以使用这种方法快速找到。

Unity 4.x 2D游戏开发基础教程(内部资料)——https://www.sodocs.net/doc/052469284.html,版权所有·17·

图1-20 鼠标双击对象名,场景视图速度定位到对应对象,且被显示在场景视图的中央

?在场景视图里,按下鼠标中间的按钮(或滚轮),鼠标变成了,然后移动鼠标,

可以任意移动场景,如图1-21所示。

?在场景视图里,按下键盘上的Alt键,鼠标就会变成,再按下鼠标的左键拖动,可围绕指定的游戏对象移动,如图1-22所示。

图1-21 任意移动场景视图中的场景图1-22 绕着场景视图中的对象移动

?在场景视图里,按下鼠标的右键,鼠标就会变成,然后再按下键盘上的W、S、

A、D键,就可以模拟第一人称在场景中向前、后、左和右移动,移动鼠标相当于

转动人物的头部。如图1-23所示。

图1-23 模拟第一人称,在场景中移动

Unity 4.x 2D 游戏开发基础教程(内部资料)——https://www.sodocs.net/doc/052469284.html, 版权所有

·18· 1.3.2 使用Gizmo

操作场景视图 场景视图的右上角有个Gizmo 工具,如图1-24所示。

图1-24 场景视图中的Gizmo 工具

对于选中的游戏对象,使用它可以迅速切换不同的观察视角,只需要单击

Gizmo 的轴

即可。如图1-25

,切换了三个视角来查看场景中的游戏对象。

上面看到的样子

右面看到的样子

前面看到的样子

场景中的两个游戏对象

Unity 4.x 2D 游戏开发基础教程(内部资料)——https://www.sodocs.net/doc/052469284.html, 版权所有

·19·

图1-25 使用不同的视角查看视图中的游戏对象 1.4 游戏对象和组件 游戏场景中的任何元素都属于游戏对象(GameObject ),而且所有的游戏对象的名字还会被列在层次面板中,如图1-26所示。

图1-26 层次面板中列出了游戏场景中的所有游戏对象名

游戏对象并非场景的最小组成部分,每个游戏对象都是由组件(Component )构成的。当一个游戏对象在场景中被鼠标选中的时候,构成这个对象的组件就可以在查看器中看到。如图1-27所示,选中场景中的立方体,然后在查看器中看到它的构成组件是Transform 组件、Mesh Filter 组件、Box Collider 组件、Mesh Renderer 组件。每个组件都有自己的属性,

同样可以在查看器里看到,需要单击组件名左边的按钮即可。

图1-27 即使是最简单的立方体对象也是由组件构成的

游戏对象上的所有组件相互影响,并最终决定了对象的行为。各游戏对象也由于组件的不同而不同。游戏对象都有一个共同的组件,就是Transform 组件,如图1-28所示。

·20·

Unity 4.x 2D游戏开发基础教程(内部资料)——https://www.sodocs.net/doc/052469284.html,版权所有

图1-28 Transform组件定义了坐标空间中GameObject的位置、旋转和大小Transform组件的作用是,修改游戏对象的位置、朝向和大小。它有三个属性:Position、Rotation和Scale。修改这些属性,就意味着修改了游戏对象的位置、朝向和大小。除此以外,还可以使用Unity工具栏上的对应按钮修改,如图1-29所示。负责位置、负责朝向、负责大小。依次对应于键盘上的快捷键W、E和R。

图1-29 Unity的工具栏

1.5 脚本与脚本编辑器

要使用Unity做到更多的事情,就必须熟悉脚本的编写。脚本可以使用三种语言编写,它们是C#、JavaScript和Boo。推荐你选择其中的一种,然后将其应用于游戏项目中的脚本。

1.5.1 创建脚本

本书的示例将只使用C#编写的脚本。为了在你的游戏项目中创建一个新的脚本,可以在资源面板上单击鼠标的右键,在弹出的快捷菜单中,单击Create|C# Script、Javascript或者Boo Script命令,创建使用不用语言编写的脚本,如图1-30所示,生成的C#脚本文件,默认命名为NewBehaviourScript。

Android游戏开发(快速入门必备)

Android游戏开发之旅一长按Button原理 今天Android123开始新的Android游戏开发之旅系列,主要从控制方法(按键、轨迹球、触屏、重力感应、摄像头、话筒气流、光线亮度)、图形View(高效绘图技术如双缓冲)、音效(游戏音乐)以及最后的OpenGL ES(Java层)和NDK的OpenGL和J2ME游戏移植到Android方法,当然还有一些游戏实现惯用方法,比如地图编辑器,在Android OpenGL如何使用MD2文件,个部分讲述下Android游戏开发的过程最终实现一个比较完整的游戏引擎。相信大家都清楚Android Market下载量比较好的都是游戏,未来手机网游的发展相信Android使用的Java在这方面有比iPhone有更低的入门门槛。 对于很多游戏使用屏幕控制一般需要考虑长按事件,比如在动作类的游戏中需要长按发射武器,结合Android Button模型,我们实现一个带图片的Button的长按,为了更清晰的显示原理,Android开发网这里使用ImageButton作为基类 public class RepeatingImageButton extends ImageButton { private long mStartTime; //记录长按开始 private int mRepeatCount; //重复次数计数 private RepeatListener mListener; private long mInterval = 500; //Timer触发间隔,即每0.5秒算一次按下 public RepeatingImageButton(Context context) { this(context, null); } public RepeatingImageButton(Context context, AttributeSet attrs) { this(context, attrs, android.R.attr.imageButtonStyle); } public RepeatingImageButton(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); setFocusable(true); //允许获得焦点 setLongClickable(true); //启用长按事件 } public void setRepeatListener(RepeatListener l, long interval) { //实现重复按下事件listener mListener = l; mInterval = interval; } @Override public boolean performLongClick() { mStartTime = SystemClock.elapsedRealtime(); mRepeatCount = 0;

网页设计与制作实例教程

网页设计与制作实例教程 习题答案 第1章网页与网站基础 一、选择题 1.A 2.B 3.C 4.C 5.A 二、判断题 1.√2.×3.√4.×5.√ 三、问答题 略 第2章网页规划设计 一、选择题 1.D 2.A 3.C 4.A 5.C 二、判断题 1.×2.×3.×4.√5.√ 三、问答题 1.答:网站需求分析一般包括三个阶段的内容:网站背景分析、总体需求分析、具体需求分析。(每个阶段可再详细描述。) 2.答:可从以下几个方面来阐述网站设计的原则:①日期、时间和数字;②欢迎词; ③弹出窗口和引导页面;④新闻和公告信息;⑤网址;⑥控件;⑦链接;⑧主页内容 3.答:打开新浪网首页,分析其布局类型。(答案略) 4.答:网页色彩搭配方法可从以下两个方面去阐述:①根据页面风格以及产品本身的诉求确定主色;②根据主色确定配色。 网页色彩搭配技巧可从以下几个方面去阐述:①用一种色彩;②用两种色彩;③用一个色系;④用黑色和一种色彩以及色彩搭配忌讳的方面。 5.答:打开当当网,具体分析其规划过程。(答案略) 第3章初识网页制作软件 一、选择题 1.C 2.C 3.B

二、填空题 1.代码、拆分、设计2.文件、资源、规则3.超级链接 三、操作题 略 第4章制作网页内容 一、选择题 1.D 2.B 3.A 4.D 5.ABD 6.D 7.B 8.D 9.A 10.A 二、判断题 1.√2.√3.×4.√5.√6.√7.√8.√9.×10.√三、操作题 略 第5章设置网页超级链接 一、选择题 1.D 2.D 3.A 4.D 5. C 二、判断题 1.×2.×3.×4.√5.× 第6章使用CSS样式美化网页 一、选择题 1.B 2.C 3.C 4.B 5.A 6.D 7.D 8.D 9.B 10.C 11.A 12.A 13.C 14.D 15.D 16.A 17.A 18.B 19.D 20.D 二、简答题 1.×2.×3.×4.×5.×6.×7.√8.×9.√10.√11.×12.×13.×14.√15.√16.√ 第7章规划布局网页 一、选择题 1.B 2.A 3.B 4.B 5.D 二、简答题

学习游戏脚本制作:按键精灵里的if语句教程

学习游戏脚本制作:按键精灵里的if语句教程 来源:按键学院【按键精灵】万万没有想到……有一天居然会栽在if语句手里。 First—小编的凄惨经历 小编今早写脚本,由于无意间将if语句中的end if错删了,弹出了这样的错误提示: “(错误码0)没有找到合法的符号。” 看到这个提示,小编以为是哪个逗号不小心写成中文逗号,没成想丢了个end if也是出现这样的提示。 好在代码不多,所以错误点容易找到,那……如果,代码多达几百上千条的时候呢?眼泪马上掉出来~ 今天在这里和童鞋们一起来了解下,按键里的夫妻组合,看看这些夫妻被分开之后都会出现什么样的可怕情况: Second—一夫一妻制 If……end if判断语句 If判断语句,有分为两种: 1、 if语句条(条模式) 当判断完之后,要执行的语句只有一条的时候,使用if语句条

例如: If 1 > 0 Then MessageBox"Hello~" // If语句条,不需要添加end if //条模式的时候,if语句还是单身,不是夫妻组合 2、 if语句块(块模式) 当判断完之后,要执行的语句有很多条的时候,使用if语句块 例如: If 1 > 0Then MessageBox"Hello~" MessageBox"Hello~" End If //块模式的时候,if语句是已婚状态,夫妻组合。如果这个时候缺少了end if 就会出现下面的错误提示: 拓展:if语句块中then 可以省略 例如: If 1 >0 MessageBox"Hello~" MessageBox"Hello~"

End If For……next循环语句 例子: For i=1 To 10 //这里的脚本可以循环10次 Next 拓展:如果,循环体里不需要用到循环次数值,例如,需要打开十个记事本,可以这样写: For 10 RunApp "Notepad.exe" Next 当for循环语句缺少next的时候,会出现下面的错误提示: Do……Loop 循环语句 Do……Loop循环语句分为两种情况: 1、前判断 Do While条件 Loop

Unity3D教程:游戏开发算法(一)

Unity3D教程:游戏开发算法(一) 要使计算机能完成人们预定的工作,首先必须为如何完成预定的工作设计一个算法,然后再根据算法编写程序。计算机程序要对问题的每个对象和处理规则给出正确详尽的描述,其中程序的数据结构和变量用来描述问题的对象,程序结构、函数和语句用来描述问题的算法。算法数据结构是程序的两个重要方面。 算法是问题求解过程的精确描述,一个算法由有限条可完全机械地执行的、有确定结果的指令组成。指令正确地描述了要完成的任务和它们被执行的顺序。计算机按算法指令所描述的顺序执行算法的指令能在有限的步骤内终止,或终止于给出问题的解,或终止于指出问题对此输入数据无解。 通常求解一个问题可能会有多种算法可供选择,选择的主要标准是算法的正确性和可靠性,简单性和易理解性。其次是算法所需要的存储空间少和执行更快等。 算法设计是一件非常困难的工作,经常采用的算法设计技术主要有迭代法、穷举搜索法、递推法、贪婪法、回溯法、分治法、动态规划法等等。另外,为了更简洁的形式设计和藐视算法,在算法设计时又常常采用递归技术,用递归描述算法。 一、迭代法 迭代法是用于求方程或方程组近似根的一种常用的算法设计方法。设方程为f(x)=0,用某种数学方法导出等价的形式x=g(x),然后按以下步骤执行:

(1)选一个方程的近似根,赋给变量x0; (2)将x0的值保存于变量x1,然后计算g(x1),并将结果存于变量x0; (3)当x0与x1的差的绝对值还小于指定的精度要求时,重复步骤(2)的计算。 若方程有根,并且用上述方法计算出来的近似根序列收敛,则按上述方法求得的x0就认为是方程的根。上述算法用C程序的形式表示为: 【算法】迭代法求方程的根 迭代算法也常用于求方程组的根,令X=(x0,x1,…,xn-1),设方程组为: xi=gi(X) (I=0,1,…,n-1),则求方程组根的迭代算法可描述如下: 【算法】迭代法求方程组的根

FLASH小游戏开发教程:游戏制作前的准备

FLASH游戏这东西吧,总入不了大流。国内拿FLASH做美术方面的应用比较多,而传统的游戏程序员又把FLASH当小儿科,不屑搞这个,事实上开发FLASH游戏也赚不了钱,七七八八的原因加起来,就变成了没多少职业程序员来开发FLASH游戏,学校也不会培养学生深入学习开发FLASH,搞这块的人少,人少交流讨论的也少,正正规规的教材也少,当然优秀作品更少。目前国内大部分的FLASH游戏开发爱好者没有好教材的指引,自己摸索着就上路了(我也是这样开始的),开发流程和习惯都是各人一套,很多人因为没有接受正确的学习而走了很多歪路(好像我也是)于是乎,话题转回来,我就开一贴跟菜鸟们多交流吧…… ================================================================= LESSON 1:游戏制作前的准备 突然灵光一闪:老子要做个XX类型游戏!于是立马打开电脑,打开FLASH,找图片,建元件,F9一按,代码蹭蹭的打啊……结果做了一半做不下去了。以上情况常常发生…… 做游戏首先脑子里先要有整个游戏的规划,最好是拿笔画个流程简图,然后再下手。游戏流程的规划是很重要的,我在做一个游戏游戏前,草稿纸上来来回回要打个半天的草稿才开工,我一直认为游戏的规划部分是很难的,如果真等到全部想好了,做起来其实是个很轻松的过程,只是耗时间罢了。理论知识多说没用……我们不如来实践下,跟我一起做个简单的游戏吧…… 【吃金币游戏-策划】(我在草稿纸头上写下以下几点) 基本描述: 1.天上掉宝物,地下小人物由自己控制,去接宝得分 2.时间限制30秒 写到这里,顺手画了张草图:

1.(游戏界面(UI)设计)课程标准

1.(游戏界面(UI)设计)课程标准

重庆工程学院 《游戏界面与UI设计》课程标准 课程代码: 2014030032 适用专业:数字媒体艺术 课程学时: 32学时 课程学分: 2分 编制人: 审核人: 审批人: 日期:

一、课程定位 《游戏界面与UI设计》是数字媒体艺术专业重要的基础课程,是一门集技术与艺术一体化的游戏基础学科,课程的设置面向职业岗位要求,职业岗位针对性较强,涉及的专业技能具有很强的专业性,其主要任务是培养学生的游戏设计的制作能力,使学生了解当今游戏设计制作的基本知识。 二、课程目标 1.总体目标: 《游戏界面与UI设计》是一门专业课很强的课程,它不仅要对学生的绘画技法有很强的针对性,还要对学生的平常生活中观察能力的培养。通过案例式教学,实现学生职业技能与工作岗位群的对接,促进本专业学生全面职业素质的养成。通过教学模式的创新、教学内容的选取,教学方法的改革培养学生在策划审美上有很强的审美能力的提高,还对自己在游戏策划创作中起到帮助的作用,为其它设计课程的学习以及将来的岗位工作打下良好的基础。 2.知识目标: 游戏界面与UI设计基础概念讲解、基础造型平面构成点线面的形式美原理、二维空间、三维空间、多维空间的造型表现、色彩构成基础知识与色环、色彩的表示、对比、彩度对比、明度对比、色彩调和、填色与色彩构成、色彩构成的综合应用等等知识。 3.能力目标: 让学生逐步地具有一定的游戏策划审美的能力,可以独立完成游戏策划的设计与制作,对各种游戏策划的要求都能处理。 素质目标: 游戏界面与UI设计课在整个教学的过程中,运用启发、引导和实践的方式,通过进行游戏造型设计基础知识点的逐步讲解并实例绘制

脚本开发教程:按键精灵解决游戏设置

心之所向,所向披靡 脚本开发教程:按键精灵解决游戏设置 “啊~怎么回事?用你的脚本,它就像傻逼一样,一直重复的开启关闭游戏设置界面?" 许多脚本作者会遇到这样的问题。其实只是用户没有设置好游戏分辨率,脚本无法识别下一步,所以重复的开启关闭游戏设置界面。即便是脚本作者很细心的把脚本使用环境都讲解得很仔细。但是总会有人忽略,或者是设置不来,或者是要设置的地方真的很多,设置好了游戏分辨率又忘记了修改快捷键。 有什么办法,可以让这样的情况不发生呢? 解决方法: 许多游戏会把游戏设置保存在某个文件,我们在本机上设置好游戏设置保存之后,复制这个游戏设置文件,用它覆盖掉使用者电脑上的游戏设置文件,即可让使用者电脑的游戏设置和本机的一致。比如某灵游戏,在 我的文档->BnS->NCSOFT->ClientConfiguration.xml ClientConfiguration.xml 这个文件保存了游戏的界面设置,快捷键设置、画面设置等。知识拓展一下: 如果是要备份游戏设置文件呢? 我们可以把使用者电脑中的文件先移动到其它文件中, 例子中,将游戏配置文件移动到了F盘的test文件夹里。 我们使用File文件插件中的MoveFile命令,将 ClientConfiguration.xml 文件移动到F 盘test文件夹下、

代码: 路径=CreateObject("Shell.Application").Namespace(&H5).Self.Path &"\BnS\NCSOFT\" Call Plugin.File.MoveFile(路径&"ClientConfiguration.xml","F:\test\") 另:使用vbs 写法如下 Set fso = CreateObject("Scripting.FileSystemObject") 路径=CreateObject("Shell.Application").Namespace(&H5).Self.Path &"\BnS\NCSOFT\" Call 移动文件(路径&"ClientConfiguration.xml","F:\test\") Sub 移动文件(ywj,mb) // sub 移动文件(源文件地址,目标文件夹地址) Dim fso Set fso = CreateObject("Scripting.FileSystemObject") fso.MoveFile ywj, mb End Sub 评论,观念,各有不同做好自己那份就好

游戏编程入门

游戏编程入门 2008年09月16日14:40:58【发表评论/查看评论】 经常有人问我,没有编程经验的人该如何开始开发游戏。在此之前,我总是一个个的尽力回答。然而,后来提相同问题的人数增长到难以处理的地步。我决定,是时候把我所有的建议写成文章,作为一个大概。 这篇文章是针对那些想要开发自己游戏,但几乎没有编程经验的人。事实上,我假设读者没有任何编程经验。我主要讨论游戏开发的程序和设计方面,而不是艺术性。我也不准备讲述如何进入游戏行业(这方面已经有足够的资料),而只是让你逐步的开始开发自己的游戏。最后,我所指出的这条道路也并不能作为唯一的,或是最好的路径来学习开发游戏,但至少对我和一些人很有用。 选择一门语言 你要做的第一件事就是选择一门开发语言。你有很多选择,包括Basic,Pascal,C,C++,Java,等等。也经常会有人争论对于初学者那一门语言是最好的。对于这一系列流行语言的讨论,你可以参看John Hattan的著作,What Language Do I Use?(我用什么语言?) 我的建议是以C和C++开始。有些人会说这些语言对初学者来说太高级了,但因为我自己就是学C++,我并不同意这一说法。而且,C/C++是当今使用最广泛的语言(译者认为应该是汉语。。。),所以你可以找到大量学习资料和帮助。你先学C或C++都无所谓,因为只要学了一个,再学另外一个就很容易。但是,如果你先学C++,请保证在学习面向对象编程之前能理解和使用过程编程(等编程熟练再去学习类)。(译者:C是过程性语言,C++是面向对象语言) 如果你开始学习C/C++,发现太难,那再学一个简单一点的也没关系,比如Basic或Pascal。但是我真的认为,如果你坚持努力,而且有好的资料,学C/C++应该没有太大问题。 你的下一个问题可能会是:“我该怎么学C/C++?”我很高兴你这样问。最好的办法是上课。有老师可以回答你的问题,帮助你产生很大进步,编程练习作业也可以保证你能用到所学的东西。 如果你不觉得上课是个好主意,那最好的办法就是买一些好书。不要花太多时间去选一本什么“超级宝典”或“万用全书”,因为你最终可能会买几本。我建议你去一家书店,然后拿几本比较入眼的C或C++书看,直到找到一本或几本你能看懂,并且可以拿来学习的。同时,你可能会想要一些

开发网页棋牌游戏教程

开发网页棋牌游戏教程 一、根据开发网页棋牌游戏教程,开发游戏首先要有一个简单的程序框架。 webgame程序构成: 三大部分。 第一是数据流程。第二是程序。第三是美术。 其中,数据流程包括了功能。也只有在功能中才能体现数据流程。 数据流程相当的麻烦,后面再讨论。 比如最简单的卖买产品。 要实现这个功能。 那么需要有产品基础表、产品详细表、商店表、背包表。如果扩展性更强,相应的双表是少不不了的。表的问题都简单了。关键是这个物品有什么用。这样物品的来源,一大堆数据,物品的走向,又是一大堆数据。 最后,这些数据得绕成一个圈。 绕圈是一件困难的事情。特别是功能和道具多了起来的时候。难度是2的n次方。

在绕圈之前,如果你比较熟练设计模式。那么这个过程可以简化。难度由2的n次方变为1。 只需要有控制器、事件工厂、抽象道具工厂这三个虚类;再加上定时器,任务编辑器,这两个通用类。即可以构建一个健壮、高扩展的webgame。 在webgame里控制器几乎可以等同于页面。随便采用一种模板技术即能很方便的处理。 事件工厂是一个抽象类,所有的事件,如打工、战斗、移动等都由事件工厂的生产。并且接口相同,方便控制器控制。工厂模式。 抽象道具工厂是一个抽象类,所有的道具,如城市、地图、装备等,都由抽象道具工厂生产。并且接口相同,工厂模式,事件与道具的结合又是一个桥接模式。 通过开发网页棋牌游戏教程,我们了解到美术在游戏开发中的重要性: UI。简洁漂亮的界面总会有好处。小图标。道具,地图,装备。一类至少10个吧?大体上百把个是需要的。程序分5个部分: 服务器定时器。(C语言或自己设定服务器)定时循环执行某一段代码。而这段代码主要是根据数据库的数据进行更新。这个可以找个C语言程序员来做。对于C语言程序员来讲,这个功能是相当的简单。当然,具体的处理数据的判断和操作数据库,需要你自己写。让C语言程序员给你段标准代码就行了。完全支持sql 语句的。 php的话,可以配置corn实现。但是不管是什么操作系统,配置的时间最低是1分钟。所以,如果你要处理1秒钟刷新一次的情况。你还需要专门的定时器程序来处理,或者被定时执行的php需要包含sleep().当然,即使有即时交互,可以不管服务器端。只处理交互的双方的客户端。js和ajax实现。

数字化教学游戏的设计与开发

XXXX学院毕业论文 论文题目 XXXXXXXXXXXXXX 系别 XXXXXXXXXXXXXX 班级 XXXXXXXXXXXXXX 姓名 XXXXXXXXXXXXXX 学号 XXXXXXXXXXXXXX 指导教师 XXXXXXXXXXXXXX 二○年

数字化教学游戏的设计与开发 摘要:随着计算机和网络技术突飞猛进的发展,数字化游戏已经继传统游戏之后逐渐成为人们,特别是青少年的主要娱乐方式,而在这一群体中有相当大的一部分是在校学生,随之而来的游戏依赖、游戏成瘾等等社会问题也已经达到了不容忽视的地步。面对这种情况,单纯靠禁止学生玩游戏等等打压的方式不但不能解决问题,而且还会引起学生的反抗情绪。真正治本的方法是将游戏所承载的教育价值挖掘出来,实现游戏与教育的融合。数字化教学游戏的开发和应用就是一个很好的实现此目标的方式。本文首先论述了游戏的教育价值和数字化教学游戏在国内外的研究状况以及存在的不足之处,然后以一堂小学英语课为例,分游戏的需要分析、教学设计、游戏设计、制作四个阶段论述了数字化教学游戏的开发过程,并在最后给出了几点应用建议。 关键词:数字化教学游戏,游戏与教育融合,教学游戏开发 Development of digital instructional games Abstract: With the rapid development of the computer and network technology, digital games, which is the substitute of the traditional games, has become modern people, especially young people’s most important entertainment .The young people who play digital games are largely composed of school students, which results in the digital games addiction that is so serious that can not be overlooked. Confronted with this situation, if we just forbid the students to play it, the result will be that we not only can not solve the problem, but also arouse objection from them. In my opinion, the best solution to this problem is the integration of digital games and education, which can be put into practice by the development and application of digital instructional games. First of all, this paper probes into the educational values of the digital games and the limitations of the research in the “digital games and education conformity” both at home and abroad. Then considering the needs of the digital instructional games for English teaching in primary school, I decide to design and develop such a game for them. My job is composed of for steps, that is, needs analysis, instructional design, game design and development. The last, I give some advice on how to use it in classroom teaching. Key words:Digital instructional games,Digital games and education conformity,Instructional games developing

基于Flash的游戏型物理课件的设计与开发

基于Flash的游戏型物理课件的设计与开发 发表时间:2019-08-08T11:49:51.110Z 来源:《防护工程》2019年9期作者:崔津铭邱诚益李齐 [导读] 从教学设计和游戏开发的角度出发,对促进中学物理学科教学的游戏型物理课件的设计与开发进行研究。 大连工业大学艺术与信息工程学院辽宁大连 116000 摘要:游戏化学习是把教育与游戏结合起来,通过教学设计将教学寓于游戏之中,利用游戏机制提供一种趣味性、生动性的学习环境。随着教育改革的不断深入、技术的进步以及游戏化学习理论的不断成熟和发展,把教育与游戏结合起来,推广绿色游戏和素质教育,实现以人为本的教育,将是以后研究的热点之一。同时,游戏型课件也将成为未来课件发展的方向。本文在对现有物理学科教学课件及其应用现状进行文献研究和系统分析的基础上,从教学设计和游戏开发的角度出发,对促进中学物理学科教学的游戏型物理课件的设计与开发进行研究。 关键词:游戏性课件;物理教学;flash 关于游戏与教育的研究,逐渐受到越来越多的人的关注,在理论与实践方面都取得了一定的成果,出现了不少优秀的教育游戏软件。但是,这些教育游戏软件的适用对象主要是幼儿和小学生,针对中学生和大学生的几乎没有。在内容方面,则主要集中在识字、小学数学,外语学习,打字练习等方面,而科学、历史地理、物理、化学、生物等科目方面的案例则很少。针对这一现象,本文主要探讨游戏与中学物理学科教学的结合问题。希望通过本论文的研究主题游戏型物理课件架起一座游戏与中学物理教学之间的桥梁。 一、物理教学中Flash游戏型教学课件应用的可行性分析 并不是所有学科、所有内容都适合通过游戏化方式学习。目前国内开发比较多的教育游戏类产品主要集中在小学语文、数学和英语等科目上。事实上,国外的经验表明游戏化学习方式更适合于那些需要探索,需要学生亲自去尝试、体验的教学内容,如物理、数学、生物等学科。美国著名的游戏设计师、教育专家Marc在他的书中列出了不同的学习内容所对应的学习活动及可以运用的游戏形式。对于初中的数学、物理、化学、语文、外语等主科的部分内容,地理、历史、信息技术等副科的部分内容来说,只要设计和开发出合适的游戏型课件并能正确使用,其效果都是非常明显的。 物理是一门实践性很强、与生活联系密切的学科,很多概念、规律等都可以有机的融入到游戏型课件中去。由麻省理工大学比较媒体研究所和微软公司联手组建的GGT项目开发了用于物理教学的几款数字化物理教学游戏原型,其中很多物理知识就非常成功的融入到了游戏之中。例如,关于牛顿力学的游戏中,游戏者使用能量补充方式来改变自己的速度、质量、加速度以及摩擦力,在游戏界面中偶尔落下的各种各样的物品中选择并拾取对应不同功能的物品以完成急需解决的子任务,游戏中学生必须面对那些在传统课堂练习中有一定难度的问题。游戏将教材中孤立学习内容综合成了一个有机体,游戏过程中的能量补充则又为学习者把这些内容所包含的子问题区别开来,从而帮助学生逐个解决它们、并且整体掌握学科知识。 二、flash游戏性课件在物理教学应用的优势分析 (一)激发学生兴趣 在游戏型物理课件中,通过虚拟故事情节的创建和具体游戏任务的呈现,可以提高学生学习物理的兴趣,特别是对提高直接兴趣和操作兴趣非常有效。人一旦对某种事物感到好奇,产生兴趣,他就会想方设法的去研究、去探索。桑代克和他的一些同事对一组智商都超过的儿童进行过研究,他们发现其中的每一个孩子都有一种永不满足的好奇心,而且这些好奇心根本无需外人的鼓励, “它们会象强烈的渴望、强烈的动力或强烈的需要那样自己表现出来 ”。游戏型物理课件则可以创造一种未知性和神秘感 ,游戏者无法预知游戏的结果,不知道下一个时刻会遇到什么场景、对手和挑战。这种不可预知性充分激起了学习者的好奇心,从而促使学习者在游戏规则内,通过不断的摸索、试误,逐渐找到游戏的技巧,获得游戏经验,在游戏中完成学习目标。 (二)培养观察能力 物理学家是通过观察和实验发现与认识物理世界的规律的,学生学习物理知识也基本上是类似的过程。学生任何一个物理概念的形成、物理规律的建立,几乎都是从观察入手的从观察中可以发掘问题,对观察所获得的感性材料可以进行推理、论证,并做出各种假设。游戏型物理课件可以提供一个很好的物理问题的观察环境。 (三)激发想象培养创新意识 不同于传统的课堂教学,在游戏活动中,游戏玩家学习者的灵活性、协调性、思维的抽象性与复杂性等可以得到锻炼和提高。同样,在游戏型物理课件中,学习者为了完成游戏任务,必须展开想象 ,充分利用游戏中提供的各种工具攻克各种关卡。因此,通过游戏型课件开展学习,对培养学习者的创新意识和开发学习者的潜能大有裨益。 在传统的教学方式中,教师在学生学习过程中处于主体地位,学生则是被动的接受知识 , 怎么学,学什么都是由教师决定。学生通过精心设计的flash游戏型物理课件学习则可以充分发挥学生的主动性,学生成为学习活动中的真正主体。例如,在游戏型课件中学生可以自主选择游戏的内容、场景,控制游戏的速度,决定游戏结束与否。通过自己的理解、探究,学生可以自主的解决游戏中出现的问题,实施解决问题的方法,完成游戏布置的任务,从而实现学习目标。从这点上看,游戏型物理课件所提供的教学方式与新课改中“倡导学生主动参与,交流、合作、探究等多种学习活动,改进学习方式,使学生真正成为学习的主人 ” 的目标完全吻合。 三、flash游戏型课程在物理教学中的应用方式分析 flash游戏型物理课件就是要将游戏与物理学科教学整合起来 ,通过物理教师设计开发或者选择合适的flash游戏型物理课件,让学生在活泼愉快的游戏情境中开展学习。将什么教学内容结合到游戏中去、采取什么样的游戏形式及怎么样运用到具体的教学实践中去等问题则必须考虑到具体的教学环境、教学目标、教学内容等。笔者认为,根据教学环节的不同,可以将flash游戏型课件与物理教学的结合模式分为以下几种内容引入模式、自主探究模式、练习加强模式和测试评价模式。 (一)内容导入模式 在教学史上,许多教学论专家对新课引入这一阶段都给予了必要的重视,并在自己的教学过程中充分发挥了它的作用。我国历史上的教育家孔子在《论语述而》中指出 “不愤不启,不徘不发”。学习时,学生心求通而尚未通,一谓之“愤 ”,口欲言而未能言,谓之 “徘 ”。就是

经典游戏制作教程

经典游戏制作教程 peng 1.游戏制作的主要流程 ------------------------------------------------------------------------------- 电脑游戏开发小组中的任何一个人(这个角色通常有策划担任),只要有了一个新的想法或 念头,就孕育着一个新游戏的诞生。在这个创意被充分讨论之后,再加上对其操作过程的趣 味性及市场销售的可行性的预测等因素的准确判断,一个完整的策划方案才可能产生。在经 过充分的讨论后,策划人员必须将讨论的重点写成文字,也就是提出完整的策划方案,经决 策者同意认可后,才能进下一步的工作。这份策划方案就像一部电影的剧本,它必须完整地 涵盖整个游戏的故事、流程、内容、方式、游戏画面、角色造型、场景规划、人工智能、硬 件配备、市场评估等。对整个游戏过程的详细描述及实施规划都应记录在案。当进入创作 过程之后,策划还必须随时和美术设计师和程序设计员保持联系,以免游戏程序的编写失控。 策划应能对游戏设置的内容与精神了如指掌,与各个小组及时沟通,并且控制整个游戏制作 的进程。 2.游戏设计基本论 ------------------------------------------------------------------------------- 要设计一个游戏,首先你必须要确定几个重要方针,第一是你要设计的游戏是属於那一种 类型,第二是时代背景,第三是模式,第四是程式技术,第五是表现手法,第六是市场定位, 第七是研发时间,在掌握上述七个方针之後,你就可以再做详细的规划内容及调配资源,那 麽何谓是七项方针呢? 笔者以范例来说明之! 一、类型: 所谓的类型是指这个游戏所着眼的一个游戏方式,通过这个方式来使玩者达到娱乐的目的,这个游戏方式有专有名词来各别予以命名,兹如下述: (1) RGP角色扮演: 这个类型的游戏以通过故事剧情牵引来使玩家能溶入主角所存在的一个世界,这类型态的 游戏多半透过战斗升级系统及人物对话的方式来一步步完成设计者所布下的剧情路线,最具 代表的作品有日本史克威尔所设计的 "太空战士系列" 及国内大宇资讯所设计的"仙剑奇侠传",当然还有很多部作品例如"神奇传说"等也是此中的佼佼者。 在RGP的类型中,在近几年来又分支了几个类似的型态,例如说Blizzard的"暗黑破坏神"Dirblo"被定位为"动作RPG",因其动作成分相当高所至,而"神奇传说"、"超时空英雄传说"则被定位尽"战略RPG",只因战略成分比重较高所以又有别於传统RPG。 (2) SLG战略: 谈起战略游戏,大家最耳熟能详的应是日本光荣公司所出品的"三个系列",KOEI的三国 志风靡东亚,从一代进化到现阶段的六代皆为玩家们所津津乐道,而所谓的战略游戏则是透

游戏设计与制作专业教学计划

游戏设计与制作专业 一、培养目标 本专业培养拥护中国共产党的领导,热爱社会主义祖国,德、智、体、美等方面全面发展,具有职业道德与敬业创新精神, 熟悉国家信息产业的政策和法规,能适应游戏策划、游戏架构设计、游戏艺术设计与制作、游戏运营,以及手机游戏开发、网络游戏开发和游戏技术测试等相关岗位需要的高等应用性专门人才。 二、人才培养规格 游戏设计与制作专业毕业生要求具备必要的基本思想政治和科学文化素质,拥有专业的基本知识、理论和技术应用能力。 (一)基本素质要求 1.良好的思想政治和道德素质; 2.良好的科学文化和艺术素质; 3.良好的语言文字表达能力; 4.良好的团结协作和集体主义精神; 5.积极的进取、创新精神和创业意识; 6.遵守国家法律和多媒体行业规则; 7.健康的体魄和良好的心理素质。 (二) 专业知识和能力要求 1.具有熟练操作和使用计算机的能力; 2.具有熟练使用新型办公软件的能力; 3.具有较强的网络环境下信息处理能力; 4.具有一定的数字娱乐知识和设计能力; 5.具有游戏程序设计或游戏艺术设计能力; 6.具有一定的程序设计文档撰写能力; 7.具有从事相近专业工作和自主创业能力; 8.具有阅读本专业外语资料能力; 9.具有独立解决技术问题和不断创新的能力。 (三) 认证要求 本专业要求学生毕业前参加下列之一的认证考试: 1.人事部与信息产业部组织的计算机技术与软件专业技术资格(水平)考试,并达到多媒体应用制作员或多媒体应用设计师水平; 2. 北京汇众益智科技有限公司游戏学院认证证书

3.信息产业部游戏设计认证证书 4. 游戏程序设计方向的学生要求获得国际游戏开发教育联合会()认证证书 三、就业岗位群 游戏设计与制作专业毕业生可以适合于通信、网络、影视、广告、娱乐、图书出版等行业或公司,可从事手机游戏、网络游戏、电视互动游戏、游戏机游戏等游戏的策划、设计、编程、测试、运营、管理、营销工作;可以适合于政府机构、学校、游戏开发公司、游戏运营公司、通信运营公司、影视制作公司、动画设计公司、游戏网站、广告公司、报刊社等行业和部门,可从事二维和三维图像制作、宣传或招贴画绘制、动画美工制作、市场信息采集、市场营销和相关管理工作。主要工作岗位群包括:(一)游戏故事情节策划及相关工作; (二)游戏相关数值设计工作; (三)游戏关卡设计工作; (四)游戏数据结构与算法设计工作; (五)游戏软件工程的搭建工作; (六)游戏开发团队的组建工作; (七)手机游戏设计工作; (八)游戏引擎程序开发工作; (九)单机电脑游戏程序开发工作; (十)网络游戏客户端程序开发工作; (十一)网络游戏服务器端程序开发工作; (十二)网络游戏物理模型程序开发工作; (十三)网络游戏人工智能程序开发工作; (十四)游戏程序的调试与测试工作; (十五)模型及动画系统的实现工作; (十六)游戏美术制作相关工作; (十七)游戏图形系统的实现工作; (十八)网络动画美术的设计制作工作; (十九)三维动画设计与制作工作; (二十)游戏声音系统的实现工作; (二十一)游戏系统的实现工作; (二十二)游戏运营公司市场相关人员;

3D游戏编程入门经典

注:讲述了3D游戏编程所需要的基本知识。利用和c#编写 成为游戏开发人员的条件 我所遇到的每一个开发人员都至少在某一段时间想成为一个游戏开发人员。对于很多人来说,视频游戏不只是空闲时的一种爱好,他们完全被游戏所吸引。人们沉浸在这些虚拟世界中,常常梦想由自己创建如此神奇的天地。 不要被美丽的图形、奇妙的故事情节和感人悦耳的音乐所愚弄,编写游戏是非常困难的工作,只有某些特定的开发人员才能够获得成功。除了所需要的技术天赋之外,一个优秀的游戏开发人员应当拥有其他一些技能,例如,您首先是一个游戏爱好者。如果不是游戏爱好者,则不可能编写出伟大的游戏,这一条件使得游戏开发工作更具有挑战性。 成为游戏开发人员确实不是一件容易的事情。如果没有经验,则不会被游戏开发公司聘用,并且当没有公司聘用时,将更难以获得经验。当前只有少量的课程以及某些学校专注于讲授游戏的开发。但是,入门的最好方式是制作一个样片(demo reel)。它能向您未来的老板展示您的能力和处理事情的方式。 通过本书,您将制作出一个引人注目的样片。 读者对象 我常常被问到:“为什么每个人都想使用.NET Framework编写游戏程序”。其他的问题包括:“.NET Framework不是只用于Web服务器应用程序的吗”,“它不是很慢吗”,等等。对于游戏开发人员(或者

未来的游戏开发人员)来说,这些都是很重要的问题,但他们误解了.NET Framework。 .NET Framework不是最新的Web服务器版本,也不是任何服务器组件的扩展。当然能够使用.NET Framework创建强大的Web服务器应用程序,但是,这并不是它们的全部功能。.NET Framework包括一种功能强大的客户端应用程序编程接口(API)以及Managed DirectX,实际上.NET开发人员需要掌握整个DirectX API。利用它能够编写很多新的应用程序,包括游戏。如果认为.NET Framework只能够编写服务器应用程序,则显得有一点单纯。您也可以利用它创建复杂的客户端应用程序。 关于.NET的性能问题仍然存在,这些问题也很难简单描述。当引入一门“新的”语言或者运行库时,开发人员在采用之前,通常比较犹豫。不久以前,很多游戏仍然是采用汇编语言编写的,因为游戏开发人员不相信C或者C++语言足够快。.NET Framework也遵循这个规则。在证明.NET Framework的性能之前,游戏开发人员都会以一种怀疑的眼光看待它。在本书中,大量的游戏是使用.NET运行库开发的。事实胜于雄辩,与其喋喋不休地讨论.NET运行库的性能有多好,还不如让本书中一些真实的游戏来证明这一点。 为什么使用.NET Framework 任何曾经编写过Windows程序的人都(无论是否使用.NET

游戏开发教程

游戏开发教程-美术制作揭密 游戏美术似乎对很多门外汉来讲是比较神秘的。如果你不进入到这行业,即使你的美术再好,技术再精通,也很难理解其中的奥妙,希望本文能带给你一些启示。 游戏美术包含有许多方面,所以配合,协作是做好游戏的美术的首要因素。因为游戏是交互性非常强的项目,所以,美术其实要体现企化,程序所要表达的各种要素,这就对美术做出了非常多的限制。也要求美术与企划,程序要有很好的配合,才能做出一个很好的游戏。另外,由于一个游戏的内容很多,所以美术的分工也非常多,各个分工之间的配合,协调是很重要的因素。 游戏美术的分工 玩过游戏的人都知道,游戏中有几大部分,包括:地图,人物,界面,动画。另外还有肖像,图标,道具等相关因素。因为东西很多,就必须做一定的分工,保证各有专政。并且能提高工作效率。同时合理的分组能够使每个人的能力得到最大的提升。游戏工作组一般会分为地图组,人物组,平面组,动画组及特效组,每个组的人数不一样,一般来说地图组和人物组的人数会多一些,毕竟一个游戏的制作里面地图和人物占了绝大部分。另外平面组也是最重要的组成部分。而象动画组,特效组杂有些比较小的游戏工作组里面一般都是由这3个组里面的人来做。 每个小组都必须有个组长,这个组长除了技术不错之外,还必须有较强的流程控制和组协调能力,以及对企划思想的了解,有个比较形象的说法就是,宁愿要5个80分,不要3个100分加上2个60分。要尽量做到让玩游戏的人感觉不到图象是由好多人做出来的。 游戏美术的各个分工 这是游戏美术最重要的一个部分。上面讲过,游戏美术非常讲究合作,这种合作不只是和企划,程序之间的合作,更是美术各个部分之间的合作。 在开始制作前,美术就要和企划协调好,确定好整体风格,确定好俯视角度。一般有30度,45度,60度3种,其中45度又是最常用的。还有一些比较特殊的,比如横版(如街霸)及一些不是很固定的视角(比如《轩辕剑3》),确认角度包括地图的角度和人物的角度。确认完角度下来就是调节灯光,因为人物是在地图行走的,如果两者的明暗对比差别过大,会给玩家很怪的感觉,所以要调节好两者的关系。还要确定好人物和建筑的比例,是写实的还是Q版的,还是混合型的。大体的东西确认好以后才能进入美术的制作。 地图部分 地图制作按制作方法又可以分为图素拼图和整图制作。图素拼图指的是做出做出多块8方连续的各种小块的图,通过地图编辑器拼成一种大的地图,比如《帝国时代》,《剑侠情缘2》等,这种方法做出来的地图相对比较平淡,但是比较节省系统资源;整图制作,就是一个场景一次性建模渲染出来,比如《月影传说》《轩辕剑3》等,这种制作方法做出来的图相对丰富,真实漂亮,但是受机器的影响不能做太大的图。

微信小游戏开发教程文档之进阶教程

白鹭引擎开发微信小游戏进阶教程文档 注意: ?因为小游戏特殊机制,涉及到的小游戏接口主要逻辑都需要写在小游戏逻辑代码内,但是可以通过Egret 代码来调用 ?后续版本Egret 将会提供调用小游戏接口模板,届时大家可以参照模板编写代码。文件系统 文件系统有两类文件:代码包文件和本地文件。 代码包文件 代码包文件指的是在项目目录中添加的文件。由于代码包文件大小限制,代码包文件适用于放置首次加载时需要的文件,对于内容较大或需要动态替换的文件,不推荐用添加到代码包中,推荐在小程序启动之后再用下载接口下载到本地。 访问代码包文件 代码包文件的访问方式是从项目根目录开始写文件路径。

修改代码包文件 代码包内的文件无法在运行后动态修改或删除,修改代码包文件需要重新发布版本。 本地文件 本地文件指的是小程序被用户添加到手机后,会有一块独立的文件存储区域,以用户维度隔离。即同一台手机,每个微信用户不能访问到其他登录用户的文件,同一个用户不同appId 之间的文件也不能互相访问。 本地文件的文件路径均为以下格式: 1.{{协议名}}://文件路径 其中,协议名在iOS/Android 客户端为“wxfile”,在开发者工具上为“http”,开发者无需关注这个差异,也不应在代码中去硬编码完整文件路径。 本地临时文件 本地临时文件只能通过调用特定接口产生,不能直接写入内容。本地临时文件产生后,仅在当前生命周期内有效,重启之后即不可用。因此,不可把本地临时文件路径存储起来下次使

用。如果需要下次在使用,可通过saveFile 或copyFile 接口把本地临时文件转换成本地存储文件或本地用户文件。 示例 1.wx.chooseImage({ 2.success(res){ 3.const tempFilePaths =res.tempFilePaths // tempFilePaths 的每一项是一 个本地临时文件路径 4.} 5.}) 本地缓存文件 本地存储文件只能通过调用特定接口产生,不能直接写入内容。本地缓存文件产生后,重启之后仍可用。本地缓存文件只能通过saveFile 接口将本地临时文件保存获得。 示例 1.wx.saveFile({ 2.tempFilePath:'',// 传入一个本地临时文件路径 3.success(res){ 4.console.log(res.savedFilePath)// res.savedFilePath 为一个本地缓存文件路 径 5.} 6.})

相关主题