超级玛丽制作揭秘16攻击方式切换

本文介绍了一款游戏中的金币和武器包系统的实现方法,包括如何通过地图文件加载金币和武器包,碰撞检测时如何区分并处理这两种不同的道具,以及如何实现攻击方式的切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 当玩家碰到武器包(就是魂斗罗里那个东西),攻击方式切换。
思路:把它放到存储金币的数组中,用id区别。碰撞检测时,如果是金币,金币消失,如果是武器包,攻击方式切换。
存储:和金币位于同一个数组MapCoinArray。
生成:由地图文件加载。比如第一关的地图文件数据:
25 4 52 25 5
各参数含义:横坐标 纵坐标 宽 高 图片id
加载函数:int GAMEMAP::LoadMap()
代码:和金币的加载相同,唯一区别是金币图片有4帧,武器包只有2帧,设置如下:
MapCoinArray[i].iframemax=2;

显示:和金币的处理相同,相同函数,相同代码。(再次显示出图像层的好处)
帧刷新:和金币的处理相同,相同函数,相同代码。(再再次显示出图像层的好处)

碰撞检测:和金币的处理相同。
函数:int GAMEMAP::CheckAni(int itimeclip)
代码:如果是武器包,设置新的攻击方式,武器包消失。
    switch(MapCoinArray[i].id)
    {
    case ID_ANI_ATTACK:  
     //设置新的攻击方式
     iAttack=ATTACK_MAGIC;
     //武器包消失
     ClearCoin(i);
     break;
    }    

武器包的消失:和金币的处理相同,相同函数,相同代码,这是逻辑层的好处(放在同一个数组中,处理简单)。
至此,攻击系统,金币系统,提示信息,武器切换,全部完成。只需要一个地图把所有的物品组织起来,构成一个虚拟世界,呈现在玩家眼前。地图怎样处理?且听下回分解。
附:
超级玛丽第一版源码链接:http://download.csdn.net/source/497676
超级玛丽增强版源码链接:http://download.csdn.net/source/584350

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值