level 7
提供两个思路吧。1,按键后,先转到第一个动作,同时设置计时器,到时间后转到第二个动作,同时再设置计时器,知道动作播完为止。2,把动作图片放在一个精灵里面,按顺序排好,按键后,先跳到第一个动作的子图像,再设置image_speed=0.1(举例),播放到最后一个动作时再把image_speed调回0。具体的判定你就自己解决吧
2015年10月24日 00点10分
2
补充一下,2,是把同一个技能的一组动作放在一个单独的精灵里面,摁下按键后,切换到该精灵,同时设置image_speed为某一适合的值。如果要控制动作与动作之间的时间间隔,则在精灵子图像的数量上面做改动即可。
2015年10月24日 02点10分
level 11
精灵图播放到最后一帧的时候就定格在那里大约0.5s或者0.3s。
然后在这一段时间如果还按下攻击按键就跳到下一个攻击方式。
以此类推。
2015年10月25日 00点10分
4
level 6
///ComboInit()
//初始化
combo_list = ds_list_create(); // 连招列表
comboing = false; // 是否连招中
//can_combo = false;
//combo_previous = -1; // change when attack alarm start
combo_current = -1; // 连招编号
ai_combo_break = true; //连招是否中断
ai_combo_id = -1; // 连招列表中id
ai_combo_hit_id = -1; //记录连招中的一招是否命中,判断连招是否继续
combo_size = 0; // 连招列表长度
///ComboCreate()
//创建连招
if !comboing
{
combo_current = 0; // 连招编号
combo_break = true; // 未命中时是否中断连招
ds_list_add(combo_list, 0,2,1,2,0); //连招列表
//comboing = false; // 是否在连招中
//ds_list_replace(combo_list, 2, 14); //根据不同的条件改变连招
//ai_new_attack_id = ds_list_find_value(combo_list, 0);
//var combo_size;
combo_size = ds_list_size(combo_list);
ai_combo_id = 0;
}
///ComboBegin()
//连招启用
if !comboing
if combo_current != -1 comboing = true;
comboing = true;
///ComboStep()
if can_attack
if comboing //连招中
if combo_current != -1
switch(combo_current)
{
case 0:
if ai_combo_id > combo_size - 1 // 连招施放完毕
{
comboing = false;
combo_current = -1;
ds_list_clear(combo_list);
break;
}
if ai_combo_id > 0
if ai_combo_hit_id = -1 // 上一招攻击未命中
{
comboing = false;
combo_current = -1;
ds_list_clear(combo_list);
break;
}
ai_combo_hit_id = -1;
var s;
s = ds_list_find_value(combo_list, 0);
hsp = 0; //避免左右方向键导致的动作滑行
attack_current[0] = s;
ActionFalse(); // 包含can_attack = false;
StateChg(state,T_SPRITE,StateGs(STATE_ATTACK,s));
ai_combo_id ++;
ds_list_delete(combo_list, 0);
break;
default:
comboing = false;
combo_current = -1;
ds_list_clear(combo_list);
}
/*
这段是从我的代码中摘选出来的,大致的逻辑是这样的。
连招列表可以根据不同条件将其中的某招替换成大招,某些中断不会中断,也可以加条件限制。
*/
2015年10月25日 02点10分
5
我想用'J'触发3连斩的第一下,再次按键触发第2下,再次按键触发第三下。但是如果每次斩击动作结束都没有按键,则回到站立状态
2015年10月25日 06点10分
自己试了很多次都没有实现那个效果
2015年10月25日 06点10分
@kez. [url]http://pan.baidu.com/s/1mgALUOw [/url]
2015年10月25日 08点10分
level 6
上面的是AI的连招,至于主角的连招
收招概念,设置变量can_attack,允许攻击时接受按键触发攻击,动画进行到收招帧时允许接受攻击,即can_attack。一般的动作触发,或者连招起始招的触发是以下的逻辑,用在AI倒也可以。
if can_attack
{
if 按键攻击
{
can_attack = false;
调用攻击动作
}
}
但是玩家角色的连招,可能不会等到收招才会继续下一招,可以在招式数据中启用换招帧的概念,在换招的时侯连接到下一招。如果帧数比较少,建议启用计时器,在收招之后在计时器在区间触发攻击。
同AI连招一样,创建一个列表,依次记入连招的id。
从正在进行的动作帧或动作启时的计时器判断下一动作触发的时机。
从连招列表获取下一个动作的id,在触发时机之内判断相应的按键是否触发,如果没有触发则连招中断。
2015年10月25日 02点10分
6