from: http://bbs.9ria.com/thread-77302-1-1.html

演示程序

http://www.adamatomic.com/canabalt/

http://www.flixel.org/mode/

Flixel横板游戏制作教程(十)—Pickups(拾取道具)

Flixel横板游戏制作教程(十)—Pickups(拾取道具)
本教程是接着Flixel横板游戏制作教程(九)—SquashingthePlayer(挤压Player)来做的。
下面开始制作拾取的道具——金币。
先是金币 Coin 类:

package
{import org.flixel.FlxG;import org.flixel.FlxSprite;/*** ...* @author zb*/public class Coin extends FlxSprite {//金币素材[Embed(source = 'media/coin.png')]protected var coinImg:Class;//拾取金币时的音效[Embed(source = 'media/pickup.mp3')]protected var getSnd:Class;//金币是否已经被拾取的 标识public var hasGotten:Boolean = false;public function Coin(px:Number,py:Number):void {loadGraphic(coinImg, true, false, 8, 8);//设置coin的坐标//这里 y 坐标向上移动一个 coin 的高度,//主要是方便 如果将coin 直接放在平台上时不会与平台重叠this.y -= (px + this.height);this.x = px;//金币动画addAnimation('roll', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 12);play('roll');//给金币一个 y 轴方向的加速度以及最大速度//因为本教程是让金币从高空中落下acceleration.y = 300;maxVelocity.y = 300;}//获取金币时的方法public function getCoin():void {//获取金币时 设置为 truehasGotten = true;//同时将金币的y 速度 设置为 向上//让金币获取时 有个 向上弹起的动作this.velocity.y = -0.5 * this.acceleration.y;//播放获取金币时的音效。FlxG.play(getSnd);}//重写 updateoverride public function update():void {//这里判断 当 y 速度大于50,同时已经被 获取时//也就是在金币 被 player 获取后,在弹起下落过程时if (velocity.y>=50 && hasGotten) {//将金币 kill 掉this.kill();}//别忘了super.update();}}}

下面是GameStage 类:

package
{import org.flixel.FlxG;import org.flixel.FlxGroup;import org.flixel.FlxObject;import org.flixel.FlxSprite;import org.flixel.FlxState;import org.flixel.FlxText;import org.flixel.FlxTileblock;import org.flixel.FlxU;/*** ...* @author zb*/public class GameState extends FlxState {//*********已有的内容************////金币组private var coinGroup:FlxGroup;override public function create():void {//*********已有的内容************////加入可以拾取的金币addCoins();}//*********已有的内容************//override public function update():void {//*********已有的内容************////注意,如果 collide 方法 放在 overlap 方法之后,那么 coin 不会弹起来//因为如果先是 overlap 判断,然后在判断 collide 的话,顺序是//overlap 时,给 coin 赋值 y 的速度,但是并没有update数据,//接着判断 collide,此时因为 coin 与地面还是碰撞着的,//所以 collide 判断又把 coin 的 y 速度变为了0,//下面接着的update 刷新了数据,此时coin y速度为0,coin 也就不会弹起来FlxU.collide(coinGroup, levels);FlxU.overlap(player, coinGroup, getCoin);//还是要提醒下,别忘了加上。。。super.update();}//*********已有的内容************//private function addCoins():void{coinGroup = new FlxGroup();var coin:Coin;for (var i:int = 0; i < 5; i++) {coin = new Coin(10 + i * 30, 20);coinGroup.add(coin);}add(coinGroup);}private function getCoin(ob1:FlxSprite,ob2:FlxSprite):void {var coin:Coin = ob2 as Coin;//当金币没有被获取时,才获取金币if (!coin.hasGotten) {coin.getCoin();}}}}

Flixel横板游戏制作教程(十)—Pickups(拾取道具)相关推荐

  1. 经典游戏制作教程[小糊涂的灵感]

    经典游戏制作教程 peng 1.游戏制作的主要流程 -------------------------------------------------------------------------- ...

  2. 简单的RPG游戏制作教程

    □企划部份 ◎第一步:决定资料格式 在进入游戏制作的初期,由于有许多和程式有关的资料需要编整,因此担任企划的人员常会忙得乱七八糟.在这个阶段,企划人员必需要和程式商量游戏中资料的格式.举个例子来说,在 ...

  3. wordpress主题制作教程(十):制作文章单页模板single.php

    wordpress主题制作教程(十):制作文章单页模板single.php 您现在的位置:阿树工作室->wordpress主题教程->基础教程  2012.7.25  浏览数:39,982 ...

  4. 零基础 · 传说之下同人游戏制作教程

    1.0 废话 可略过 最好看一下 传说之下在很久以前便出现了"AU"这个说法,也正是从那时开始,无数游戏爱好者开始制作属于自己的传说之下同人游戏,随着时间的发展,无数AU游戏的&q ...

  5. 塔防游戏制作教程(四)

    嗨!大家好,我是小蚂蚁.今天我们继续分享制作一个塔防小游戏的第四节,如何实现炮塔的升级和出售功能. 如何实现炮塔的升级 在炮塔升级时,我们简单地做一些属性的提升以及外表的变化,例如当炮塔升级后,攻击速 ...

  6. 计算机与游戏制作,计算机动漫与游戏制作教程

    项目1动画造型设计 学习目标 项目描述 相关知识 项目任务 任务1动画造型认知 任务2动画造型设计 应用实践 教学指导 知识链接 项目2构成设计 学习目标 项目描述 项目任务 任务1点的体验与感受 项 ...

  7. 《从零开始的 RPG 游戏制作教程》第九期:信息反馈(上)

    目录 1. 前言 2. 第一期:制作基础场景 3. 第二期:让勇者和怪物登场 4. 第三期:基础的数值设计 5.第四期:从理论的角度简单聊聊关卡 6.第五期:制作物品和技能 7.第六期:设置怪物掉落物 ...

  8. Easyx小游戏制作教程

    来源:微信公众号「编程学习基地」 文章目录 1.推箱子 2. 益智小游戏拼图制作 3.经典小游戏Easyx制作酷炫贪吃蛇 4. 回味童年经典项目----扫雷实现 5.C++面向对象编程之 flappy ...

  9. 《从零开始的 RPG 游戏制作教程》第十期:信息反馈(下)

    目录 1. 前言 2. 第一期:制作基础场景 3. 第二期:让勇者和怪物登场 4. 第三期:基础的数值设计 5.第四期:从理论的角度简单聊聊关卡 6.第五期:制作物品和技能 7.第六期:设置怪物掉落物 ...

  10. 《从零开始的 RPG 游戏制作教程》第十三期:刷怪与防守(下)

    目录 1. 前言 2. 第一期:制作基础场景 3. 第二期:让勇者和怪物登场 4. 第三期:基础的数值设计 5.第四期:从理论的角度简单聊聊关卡 6.第五期:制作物品和技能 7.第六期:设置怪物掉落物 ...

最新文章

  1. ‘utf-8‘ codec can‘t decode byte 0xa8 in position 1210: invalid start byte报错解决
  2. dede采集 标题不完整
  3. 审批流程展示html,Web企业在线审批流程系统
  4. Java变长数组笛卡尔积_Java 8中的流作为流的笛卡尔积(仅使用流)
  5. java 拖放文字_myeclipse2014如何实现jsp中的html代码的文字拖放
  6. 徐阿衡 | 知识抽取-实体及关系抽取(一)
  7. 20172316 结对编程-四则运算 第一周 阶段总结
  8. 安卓案例:使用AChartEngine绘制折线图
  9. Centos下安装MySQL全过程(linux下安装MySQL)
  10. MySQL Explain命令详解--表的读取顺序,数据读取操作的类型等
  11. 用matlab计算基金收益,CAPM模型计算的MATLAB实现
  12. 互联网基石:TCP/IP 四层模型,由浅入深直击原理!
  13. [渝粤教育] 西南科技大学 电子信息工程专业导论 在线考试复习资料
  14. notability废纸篓在哪里_Notability 4.4中文版
  15. OpenMesh-网格光顺的算法
  16. 很酷的智能家居/工业路由器两用的物联网WiFi模块 MQTT/TCP协议 MIPS+LINUX+Openwrt技术覆盖
  17. 3D-GIS地理信息系统研发解决方案
  18. 零基础入门推荐系统 - 新闻推荐实战-笔记四
  19. oracle序列号、
  20. webpack css字体引入使用

热门文章

  1. 点控技术和激光定位技术
  2. 做好职业规划,做一个平凡而不平庸的自己
  3. 易到用车构架演进及上云探索
  4. Astalavista被蹂躏过程 转载自baoz net
  5. 3D建模初学者必看!你想要的学习工具都在这了!
  6. 许晓斌_Maven实战(二)——POM重构之增还是删
  7. VOIP流中使用CNN-LSTM下对QIM的隐写分析方法
  8. Cannot pull, git cannot resolve reference ORIG_HEAD
  9. 服务器上的文件夹访问被拒绝,修改windows文件权限,解决“拒绝访问”或无法删除的问题-文件访问被拒绝...
  10. 高级语言 和 低级语言 的区别