赞 | 0 |
VIP | 0 |
好人卡 | 3 |
积分 | 1 |
经验 | 1151 |
最后登录 | 2016-1-12 |
在线时间 | 21 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 21 小时
- 注册时间
- 2015-12-31
- 帖子
- 9
|
本帖最后由 wyy272176594 于 2016-1-6 16:49 编辑
这个可以重写一个跳舞的场景。
我想了下,这个需要用到两类精灵(Sprite)。
一类是往下掉的箭头或者字母,它随机在一个位置产生,是哪个字母也是随机产生,然后往下掉,有生命周期(越过下边框就销毁)。
一类是不动的判定区,他固定在一个位置,需要一个存储绑定方法的哈希表,需要判断按键,有键按下需要找到并执行哈希表中相应方法,注意,这些方法是在场景中绑定的。
场景中绑定的方法可以这样,
举个例子@spriteA.set_handler(:w,method(:press_w))
假定这个是将方法和w键绑定,那么在press_w方法中,可以实现这些主要功能
1.判定区画一个"w",然后渐渐消失,来个音效(这步不一定要写在绑定方法中,也可以在第二类精灵里面)。
2.在场景中找第一类精灵有没有w字样的,
若有,判断这个精灵的位置是不是在判定区所在的区域,若是,则销毁,加个分数,来个音效。若不是,就音效加扣分。
若没有这个精灵,同样音效加扣分。
麻烦的地方是写脚本时场景中要绑定所有的字母按键,因为每个字母都有几率产生。
开始写的时候先写两三个精灵即可,没问题后再把所有的精灵封装成一个集合类,这个集合类会不断自动生成第一类精灵,场景中只要维护这个集合类就行了。 |
|