幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 5145|回复: 4

[原创]ARPG系列─判定攻擊

 关闭 [复制链接]

27

主题

94

帖子

854

积分

⑤进阶

积分
854
发表于 2004-10-21 21:44:46 | 显示全部楼层 |阅读模式
假設我們要做一個如下圖的攻擊:
○=主角
●=攻擊範圍
 ●
○●●
 ●

//攻擊時,才呼叫事件判斷
操作變數:[0001:1x]代入,主角Y座標
操作變數:[0002:1y]代入,主角X座標
操作開關:[0001:攻擊中]設為 開     //開關是用作避面不在攻擊的時候被判斷為擊中
條件分歧:主角面向上     //向前攻擊要判斷主角方向
     操作變數:[0002:1y]加,1     //通過計算得出攻擊範圍
     操作變數:[0003:2x]代入,變數[0001]的值
     操作變數:[0004:2y]代入,變數[0002]的值
     操作變數:[0004:2y]加,1
     飛往指定標記:1號
:分歧結束
條件分歧:主角面向上
     操作變數:[0002:1y]減,1
     操作變數:[0003:2x]代入,變數[0001]的值
     操作變數:[0004:2y]代入,變數[0002]的值
     操作變數:[0004:2y]減,1
     建立記號:1號
     操作變數:[0005:3x]代入,變數[0001]的值
     操作變數:[0005:3x]減,1
     操作變數:[0006:3y]代入,變數[0002]的值
     操作變數:[0007:4x]代入,變數[0001]的值
     操作變數:[0007:4x]加,1
     操作變數:[0008:4y]代入,變數[0002]的值
:分歧結束
條件分歧:主角面向左
     操作變數:[0001:1x]減,1
     操作變數:[0003:2x]代入,變數[0001]的值
     操作變數:[0004:2y]代入,變數[0002]的值
     操作變數:[0003:2x]減,1
     飛往指定標記:2號
:分歧結束
條件分歧:主角面向上
     操作變數:[0001:1x]加,1
     操作變數:[0003:2x]代入,變數[0001]的值
     操作變數:[0004:2y]代入,變數[0002]的值
     操作變數:[0003:2x]加,1
     建立記號:2號
     操作變數:[0005:3x]代入,變數[0001]的值
     操作變數:[0006:3y]代入,變數[0002]的值
     操作變數:[0006:3y]減,1
     操作變數:[0007:4x]代入,變數[0001]的值
     操作變數:[0008:4y]代入,變數[0002]的值
     操作變數:[0008:4y]加,1
:分歧結束
等待:0.3秒     //調整攻擊之間的時間,和讓怪物有時間去"看清楚"自己是否被擊中
操作開關:[0001:攻擊中]設為 關

//怪物與攻擊重疊判定,在怪物事件定期並列執行
操作變數:[0009:怪物x]代入,這個事件Y座標
操作變數:[0010:怪物y]代入,這個事件Y座標
條件分歧:開關[0001:攻擊中]為 開
     條件分歧:變數[0009:怪物x]為V[0001]相同
          條件分歧:變數[0010:怪物y]為V[0002]相同
               (怪物被擊中)
          :分歧結束
     :分歧結束
     條件分歧:變數[0009:怪物x]為V[0003]相同
          條件分歧:變數[0008:怪物y]為V[0004]相同
               (怪物被擊中)
          :分歧結束
     :分歧結束
     條件分歧:變數[0009:怪物x]為V[0005]相同
          條件分歧:變數[0010:怪物y]為V[0006]相同
               (怪物被擊中)
          :分歧結束
     :分歧結束
     條件分歧:變數[0009:怪物x]為V[0007]相同
          條件分歧:變數[0010:怪物y]為V[0008]相同
               (怪物被擊中)
          :分歧結束
     :分歧結束

怪物攻擊主角的命中判斷也是這樣做,只不過是相反。
至於怪物AI,很簡單的,下次再寫!
天空工作室 http://skystudio.no-ip.com
回复

使用道具 举报

27

主题

94

帖子

854

积分

⑤进阶

积分
854
 楼主| 发表于 2004-10-21 21:47:59 | 显示全部楼层
简体版:

假设我们要做一个如下图的攻击:
○=主角
●=攻击范围
 ●
○●●
 ●

//攻击时,才呼叫事件判断
操作变数:[0001:1x]代入,主角Y座标
操作变数:[0002:1y]代入,主角X座标
操作开关:[0001:攻击中]设为 开     //开关是用作避面不在攻击的时候被判断为击中
条件分歧:主角面向上     //向前攻击要判断主角方向
     操作变数:[0002:1y]加,1     //通过计算得出攻击范围
     操作变数:[0003:2x]代入,变数[0001]的值
     操作变数:[0004:2y]代入,变数[0002]的值
     操作变数:[0004:2y]加,1
     飞往指定标记:1号
:分歧结束
条件分歧:主角面向上
     操作变数:[0002:1y]减,1
     操作变数:[0003:2x]代入,变数[0001]的值
     操作变数:[0004:2y]代入,变数[0002]的值
     操作变数:[0004:2y]减,1
     建立记号:1号
     操作变数:[0005:3x]代入,变数[0001]的值
     操作变数:[0005:3x]减,1
     操作变数:[0006:3y]代入,变数[0002]的值
     操作变数:[0007:4x]代入,变数[0001]的值
     操作变数:[0007:4x]加,1
     操作变数:[0008:4y]代入,变数[0002]的值
:分歧结束
条件分歧:主角面向左
     操作变数:[0001:1x]减,1
     操作变数:[0003:2x]代入,变数[0001]的值
     操作变数:[0004:2y]代入,变数[0002]的值
     操作变数:[0003:2x]减,1
     飞往指定标记:2号
:分歧结束
条件分歧:主角面向上
     操作变数:[0001:1x]加,1
     操作变数:[0003:2x]代入,变数[0001]的值
     操作变数:[0004:2y]代入,变数[0002]的值
     操作变数:[0003:2x]加,1
     建立记号:2号
     操作变数:[0005:3x]代入,变数[0001]的值
     操作变数:[0006:3y]代入,变数[0002]的值
     操作变数:[0006:3y]减,1
     操作变数:[0007:4x]代入,变数[0001]的值
     操作变数:[0008:4y]代入,变数[0002]的值
     操作变数:[0008:4y]加,1
:分歧结束
等待:0.3秒     //调整攻击之间的时间,和让怪物有时间去\"看清楚\"自己是否被击中
操作开关:[0001:攻击中]设为 关

//怪物与攻击重迭判定,在怪物事件定期并列执行
操作变数:[0009:怪物x]代入,这个事件Y座标
操作变数:[0010:怪物y]代入,这个事件Y座标
条件分歧:开关[0001:攻击中]为 开
     条件分歧:变数[0009:怪物x]为V[0001]相同
          条件分歧:变数[0010:怪物y]为V[0002]相同
               (怪物被击中)
          :分歧结束
     :分歧结束
     条件分歧:变数[0009:怪物x]为V[0003]相同
          条件分歧:变数[0008:怪物y]为V[0004]相同
               (怪物被击中)
          :分歧结束
     :分歧结束
     条件分歧:变数[0009:怪物x]为V[0005]相同
          条件分歧:变数[0010:怪物y]为V[0006]相同
               (怪物被击中)
          :分歧结束
     :分歧结束
     条件分歧:变数[0009:怪物x]为V[0007]相同
          条件分歧:变数[0010:怪物y]为V[0008]相同
               (怪物被击中)
          :分歧结束
     :分歧结束

怪物攻击主角的命中判断也是这样做,只不过是相反。
至于怪物AI,很简单的,下次再写!
天空工作室 http://skystudio.no-ip.com
回复 支持 反对

使用道具 举报

135

主题

926

帖子

441

积分

管理员

少女人形

Rank: 9Rank: 9Rank: 9

积分
441
发表于 2004-10-21 21:57:26 | 显示全部楼层
很好,加精了~
其实楼主不用太麻烦,发一个简体的就够了。
回复 支持 反对

使用道具 举报

27

主题

94

帖子

854

积分

⑤进阶

积分
854
 楼主| 发表于 2004-10-21 21:59:55 | 显示全部楼层
以下是引用hiyori在2004-10-21 21:57:26的发言:

很好,加精了~

其实楼主不用太麻烦,发一个简体的就够了。

反正也是,就發多篇囉~
天空工作室 http://skystudio.no-ip.com
回复 支持 反对

使用道具 举报

3

主题

45

帖子

795

积分

⑤进阶

-累-人

积分
795
发表于 2004-10-22 01:23:33 | 显示全部楼层
好东西...
我也去研究研究看看...
[em08][em08]
...
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-3-29 02:30 , Processed in 0.019218 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表