如何制作游戏

作者:分开不是尽头 | 创建时间: 2023-04-16
flash游戏是一种新兴起的游戏形式,以游戏简单,操作方便,绿色,无需安装,文件体积小等优点现在渐渐被广大网友喜爱。...
如何制作游戏

操作方法

思考游戏的构思:基本创意、关卡设计(如何增加难度)

游戏世界的空间模型:有限空间(e.g.桌球)、上下左右连续的空间、无限空间(背景卷轴)、切换空间(场景切换)

游戏世界的时间模型:基本的时间线、一种时钟驱动的游戏引擎: 设置时钟: var world_timer = setInterval(GameRun, game_speed); 清除时钟:clearInterval(world_timer);

游戏时空模型的测试: // 新建一个MC,实例名为 enemy // 系统时钟 var world_timer = setInterval(GameRun, game_speed); // 游戏主逻辑 function GameRun() { enemy._x += 18; }

碰撞检测:根据两个对象的 _x, _y, _width, _height 来计算,看看两给对象的外接矩形是否重叠

代码实验:碰撞检测 /* 添加 weapon 对象 1、添加 onPress 方法,向系统时钟发出信号 2、系统时钟根据信号,命令武器飞出 3、根据武器与当前敌人位置,判断是否击中 */ weapon.onPress = function() { weapon_fired = true; // 武器已经发出 }

// GameRun 游戏主循环中令武器飞出 weapon._y -= 36; // 击中敌人 if (hitEnemy()) enemyDead();

weapon._y < ( enemy._y+ enemy._height ) && weapon._y > (enemy._y - weapon._height)

weapon._x > enemy._x && weapon._x < ( enemy._x + enemy._width – weapon._width)

// 测试敌人是否被击中; function hitEnemy() { return (weapon._y < (enemy._y+enemy._height)) && (weapon._y > (enemy._y - weapon._height)) && (weapon._x > enemy._x) && (weapon._x < (enemy._x+enemy._width-weapon._width)); }

对象跃出空间时的复位:敌人跑出空间后,记为成功逃脱;然后从新出现; 敌人中刀后,当前敌人已死;产生新敌人; 飞刀飞出空间后,重新复位; 飞刀中敌后,也自动复位

Flash游戏的基本框架:创建包括 Game_Face、Game_Body、Game_End 三个关键帧,作为框架。 游戏的结束函数(清除系统时钟) Start 按钮的制作与代码 Replay 按钮的制作与代码 Reset 按钮的实现(注意清除系统时钟)

基本游戏场景的实现:当前游戏采用背景图片的方式来实现:直接在 Flash 当中绘制矢量图、Photoshop 等位图处理图片后导入、其他矢量绘图软件导入、采集音频、视频、导入其他Flash源文件当中的素材。

内嵌式音频的使用:导入到库、命名(创建标识符)、代码中引用。

代码实验:内嵌音频播放: // 播放内置的声音 function playSound(sndName) { var my_Sound:Sound = new Sound(); my_Sound.attachSound(sndName); my_Sound.start(); }

敌人的制作(多情态的动画角色制作):绘制多帧的动画、给关键帧命名、在关键帧中合理使用 stop 命令,分割情态。

编程实现完整的作品:常用的简单调试:多使用 trace、使用文本变量输出内部值、使用系统提供的调试命令(可以断点跟踪)。

点击展开全文

更多推荐