flash版小游戏:是男人就下100层

这是一个使用Flash和ActionScript编写的名为"是男人就下100层"的小游戏。游戏包含各种类型的地板,如普通地板、可旋转地板、移动地板等,玩家通过键盘控制角色左右移动,避开障碍物。游戏结束时会显示玩家达到的层数和相应的称号。
摘要由CSDN通过智能技术生成
最近买了 android ,在电车上挺无聊的,给android做了个小 游戏 玩玩,顺便弄了个flash版
游戏画面如下:


这个游戏实现起来很简单,代码也很少,首先需要几个碎图:

因为游戏简单,直接把相应的图做成MC来的比较快
一共以下几个MC
游戏精灵,普通地板,可旋转地板,左移地板,右移地板,弹跳地板,减HP地板
在各个MC内部添加几行代码

/*********可旋转地板**************/
//是否可站立,游戏精灵存在,则开始播放,在第五贞设定为false,并且开始翻转,表示不可站立
var st:Boolean = true;
var fun:Function;
stop();
/*********左移地板**************/
import flash.display.Sprite;

var st:Boolean = true;
var charaIsMove:Boolean = true;
//游戏精灵
var chara:Sprite;
onMove();
function onMove():void{
if(chara != null){
//游戏精灵不为空的时候,将游戏精灵向左移
if(chara.x < this.x || chara.x > this.x + this.width){
chara = null;
st = false;
}else{
chara.x -= 2;
}
}
}
/*********右移地板**************/
import flash.display.Sprite;

var st:Boolean = true;
var charaIsMove:Boolean = true;
//游戏精灵
var chara:Sprite;
onMove();
function onMove():void{
if(chara != null){
//游戏精灵不为空,将精灵向右移
if(chara.x < this.x || chara.x > this.x + this.width){
chara = null;
st = false;
}else{
chara.x += 2;
}
}
}
/*********弹跳地板**************/
import flash.display.Sprite;

var st:Boolean = true;
var charaIsMove:Boolean = true;
var chara:Object;
stop();
function onJump():void{
if(chara != null){
//游戏精灵不为空,则弹跳
chara.jumpSpeed = -15;
chara.jump = true;
chara = null;
}
}
/*********减HP地板**************/
//表示可站立
var st:Boolean = true;
//减HP
var minsHp:Boolean = true;

游戏实现部分,只需要一个类Main,下面是所有代码
  1. package game {
  2.         import flash.display.Sprite;
  3.     import flash.utils.getDefinitionByName;
  4.         import flash.events.Event;
  5.         import flash.events.MouseEvent;
  6.         import flash.text.TextField;
  7.         import flash.events.KeyboardEvent;
  8.         import flash.display.Shape;
  9.         import flash.display.DisplayObjectContainer;
  10.         import flash.system.fscommand;
  11.         //import flash.desktop.NativeApplication;
  12.         
  13.         public class Main extends Sprite{
  14.                 private var _chara:chara = new chara();
  15.                 private var _wall:Sprite = new Sprite();
  16.                 private var _bak:Sprite = new Sprite();
  17.                 private var _bakImg:bak = new bak();
  18.                 private var _mai:mai = new mai();
  19.                 private var _ue:ue = new ue();
  20.                 private var _hp:hp = new hp();
  21.                 private var _chara_ctrl:Boolean = false;
  22.                 private var _sectend:int = 0;
  23.                 private var _speed:int = 2;
  24.                 private var _mcList:Array = new Array();
  25.                 private var _leftCtrl:Boolean = false;
  26.                 private var _rightCtrl:Boolean = false;
  27.                 private var _mcIndex:int = 0;
  28.                 private var _mcArray:Array = new Array();
  29.                 private var _txt:TextField = new TextField();
  30.                 private var _hpIndex:int = 1;
  31.                 private var _charaOld:int = 1;
  32.                 private var _shape:Shape = new Shape();
  33.                 private var _showText:Sprite = new Sprite();
  34.                 private var _gameStart:Boolean = false;
男人就下100游戏源码,经典的flash游戏《是男人就下100》登录win8平台了,支持surface 以及 surface pro, 操作方式支持键盘左右键和触摸操作,该游戏现在android,ios已经上线了,但是wp现在才开发的,喜欢的朋友可以了解一下吧。 项目介绍 这毕竟是个小游戏,本身其实没有什么技术难点,主要在于项目的设计,分为如下几个小模块 1、玩家 (Player) 玩家类我用了单例模式,继承自CCSprite,因为贯穿游戏一直会有玩家存在,在这个本里也不会有第二个,所以单例成了我很好的选择。 封装了 运动、血量 等。整体的游戏运动采取了背景运动而人不动的方式,感觉在这里这种要更容易掌控一些,分很明显。 2、平台 这里我参照了 Floyd 的Js本实现,以 BlockBase 作为所有平台游戏的基类,实现了向上运动,检测玩家碰撞,移除平台等基础功能。 然后根据不同的平台类型,继承该基类实现不同效果,比如跳起,伤害,左右平移等。 分别有:NormalBlock (最普通的平台) 、FlipBlock(让人弹跳的平台)、MissBlock(会破损的平台)、ThornBlock(带刺的平台)、LeftRunBlock、RightRunBlock (左右运动的平台) 还有个 BlockFactory 工厂类, 负责在恰当的时候创建合适的平台,创建的规则是随机类型,位置是从预先定义的几个里面随机取。 对于所有平台的管理, 本来最好应该是做个缓存池的,但是我发现这个性能降低实在是可以忽略,所以。。。 3、输入 输入这里,定义了一个基类,InputBase,因为最终肯定有几种输入的方式:PC(键盘、鼠标)、手势、重力感应等,所以这个从一开始就要考虑到。具体的处理方式是 给定一个固定的运动速度, 然后有输入事件的时候就让玩家按照这个速度来运行, 但是现在实际的效果感觉还不太理想。 4、场景 场景就是那么基础的几个了。。。游戏主界面采用了MVC的模式来设计,CCScene 作为 Controller ,其它的Layer 作为View。其它页面都比较简单,单Layer 实现。逻辑也都放在Layer里了。 另外,专门定义了一个 HideLayer ,目的是实现弹出对话框的效果,考虑到原场景中可能会有CCMenu,我将该 Layer 的 优先级设为了 与 CCMenu 相同,因为后添加的原因,所以总能屏蔽 Menu 的事件, 而且在 Layer 上再添加Menu 也不会有问题。 还有个比较有意思的是: 所有的场景我都继承了 IBackableScene 接口,这是我自己定义的一个抽象类,因为我发现对于 “后退” 按钮的处理在游戏中是非常常见的,所以这个接口里定义了 bool GoBack() = 0 函数, 所有需要响应后退事件的场景都要实现该方法,然后在该方法里实现具体的返回 代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值