RPG厂商XP做游戏

#==============================================================================

#■人们追随

# -

#

#这个剧本来自www.66RPG.com。使用和转载时请保留这些信息。

#

#作者:福山

#

#移植:ONEWateR

#

#==============================================================================

模块训练_演员

#是否使用停止跟随的方法,即此处false变为true时,如果TRANSPARENT_SWITCHES_INDEX

#打开开关,跟随的人就会消失(其实只是变透明了)。

透明开关=真

TRANSPARENT _ SWITCHES _ INDEX = 1

#例:如果第一个是真的,第二个是20,打开20号开关,后面的人都没了。

#最大关注人数可以改成2,3什么的。

TRAIN_ACTOR_SIZE_MAX = 4

#固定数量

DOWN_LEFT = 1

DOWN_RIGHT = 3

向上向左= 7

向上_向右= 9

跳转= 5

班级游戏_聚会_演员& lt游戏_角色

定义初始化

超级()

@through = true

结束

定义设置(演员)

如果演员!=零

@ character _ index = actor . character _ index

@ character _ name = actor . character _ name

@priority_type = 1

其他

@character_name = " "

@character_index = 0

@priority_type = 1

结束

#不透明と合成法と原始化

@不透明度= 255

@blend_type = 0

结束

# -

# ●下移。

# turn _ enabled: そのののきㇹをするフラグ.

# -

def下移(turn_enabled = true)

#向下方向

如果turn_enabled

关小

结束

#交通便利的地方。

如果新_过得去?(@x,@y,Input::DOWN)

#向下方向

关小

#坐标更新

@y += 1

结束

结束

# -

# ●向左移动。

# turn _ enabled: そのののきㇹをするフラグ.

# -

def move_left(turn_enabled = true)

#向左方向

如果turn_enabled

向左转

结束

#交通便利的地方。

如果新_过得去?(@x,@y,Input::LEFT)

#向左方向

向左转

#坐标更新

@x -= 1

结束

结束

# -

# ●向右移动

# turn _ enabled: そのののきㇹをするフラグ.

# -

定义右移(turn_enabled = true)

#正确的方向

如果turn_enabled

向右转

结束

#交通便利的地方。

如果新_过得去?(@x,@y,Input::RIGHT)

#正确的方向

向右转

#坐标更新

@x += 1

结束

结束

# -

# ●上移。

# turn _ enabled: そのののきㇹをするフラグ.

# -

def move_up(turn_enabled = true)

#向上方向

如果turn_enabled

转起来

结束

#交通便利的地方。

如果新_过得去?(@x,@y,Input::UP)

#向上方向

转起来

#坐标更新

@y -= 1

结束

结束

# -

# ●向左下方移动。

# -

定义移动_左下

#在固定到方向的情况下。

除非@方向_固定

# きだったはを, きだ, ったは𞈪く, はく, く

@direction = (@direction == Input::对?输入::左:@方向==输入::上?输入::向下:@方向)

结束

#向下→向左→向下のどちらかのコースがWhere交通是可能的。

if (new_passable?(@x,@y,Input::DOWN)和new_passable?(@x,@y + 1,Input::LEFT))或者

(新_过得去?(@x,@y,Input::LEFT)和new_passable?(@x - 1,@y,Input::DOWN))

#坐标更新

@x -= 1

@y += 1

结束

结束

# -

# ●向右下方移动。

# -

定义右移_下_右

#在固定到方向的情况下。

除非@方向_固定

# きだった场合はをきだった场合はをくた场合はく.

@方向=(@方向==输入::左?Input::右:@direction == Input::UP?输入::向下:@方向)

结束

#下→右,右→下のどちらかのコースがな,那里可以通行。

if (new_passable?(@x,@y,Input::DOWN)和new_passable?(@x,@y + 1,Input::RIGHT))或者

(新_过得去?(@x,@y,Input::RIGHT)和new_passable?(@x + 1,@y,Input::DOWN))

#坐标更新

@x += 1

@y += 1

结束

结束

# -

# ●左右移动。

# -

定义移动_左上

#在固定到方向的情况下。

除非@方向_固定

# きだった场合はをきだった场合はががった场合は𞈪く.

@direction = (@direction == Input::对?Input::左:@direction == Input::DOWN?输入::向上:@方向)

结束

#向上→向左→向上のどちらかのコースがWhere交通是可能的。

if (new_passable?(@x,@y,Input::UP)和new_passable?(@x,@y - 1,Input::LEFT))或者

(新_过得去?(@x,@y,Input::LEFT)和new_passable?(@x - 1,@y,Input::UP))

#坐标更新

@x -= 1

@y -= 1

结束

结束

# -

# ●向右移动。

# -

定义移动_右上_右

#在固定到方向的情况下。

除非@方向_固定

# きだった场合はをきだった场合はをくた场合はく.

@方向=(@方向==输入::左?Input::右:@direction == Input::DOWN?输入::向上:@方向)

结束

#向上→右,右→向上のどちらかのコースがWhere交通是可能的。

if (new_passable?(@x,@y,Input::UP)和new_passable?(@x,@y - 1,Input::RIGHT))或者

(新_过得去?(@x,@y,Input::RIGHT)和new_passable?(@x + 1,@y,Input::UP))

#坐标更新

@x += 1

@y -= 1

结束

结束

属性_编写器:移动_速度

attr_writer:步_动漫

结束

模块精灵set_Map_Module

def设置_演员_角色_精灵?

return @ setup _ actor _ character _ sprites _ flag!=零

结束

定义设置_演员_角色_精灵(角色)

如果!设置_演员_角色_精灵?

索引_游戏_玩家= 0

@ character _ sprites . each _ index do | I |

if @ character _ sprites[I]. character . instance _ of?(游戏_玩家)

索引_游戏_玩家= i

破裂

结束

结束

用于字符中的字符。反转

@character_sprites.unshift(

sprite _ Character . new(@ viewport 1,character)

)

结束

@ setup _ actor _ character _ sprites _ flag = true

结束

结束

结束

模块场景_地图_模块

def设置_演员_角色_精灵(角色)

@ spriteset . setup _ actor _ character _ sprites(characters)

结束

结束

模块游戏_聚会_模块

定义集合_透明_演员(透明)

@transparent =透明

结束

定义设置_演员_角色_精灵

如果@characters == nil

@characters = []

对于1中的I...火车_演员_尺寸_最大

@ characters . push(Game _ Party _ acter . new)

结束

结束

对于1中的I...火车_演员_尺寸_最大

@characters[i - 1]。设置($game_party.members[i])

结束

如果$scene.class.method_defined?('设置_演员_角色_精灵')

$ scene . setup _ actor _ character _ sprites(@ characters)

结束

结束

定义更新_交易方_参与者

设置_演员_角色_精灵

transparent = $ game _ player . transparent

如果透明==假

如果透明_开关

TRANSPARENT = $ game _ SWITCHES[TRANSPARENT _ SWITCHES _ INDEX]

结束

结束

对于@characters中的字符

字符.透明=透明

如果$game_player.dash?

character . move _ speed = $ game _ player . move _ speed * 1.25

其他

character . move _ speed = $ game _ player . move _ speed

结束

character . step _ anime = $ game _ player . step _ anime

字符.更新

结束

结束

定义moveto_party_actors( x,y)

设置_演员_角色_精灵

对于@characters中的字符

character.moveto( x,y)

结束

if @move_list == nil

@move_list = []

结束

移动_列表_设置

结束

定义移动_派对_演员

if @move_list == nil

@move_list = []

移动_列表_设置

结束

@move_list.each_index do |i|

if @characters[i]!=零

case @move_list[i]。类型

当输入::向下

@characters[i]。move_down(@move_list[i])。args[0])

当输入::左

@characters[i]。move_left(@move_list[i])。args[0])

当输入::右

@characters[i]。move_right(@move_list[i])。args[0])

输入时::向上

@characters[i]。move_up(@move_list[i])。args[0])

当向左下方时

@characters[i]。向左下方移动

右下方时

@characters[i]。右下移动

当向左上方时

@characters[i]。向左上方移动

右上方时

@characters[i]。向右上方移动

跳跃时

@characters[i]。跳转(@move_list[i])。args[0],@move_list[i]。args[1])

结束

结束

结束

结束

类移动列表元素

定义初始化(类型,参数)

@type = type

@args = args

结束

def type()返回@type end

def args()返回@args end

结束

定义移动_列表_设置

对于0中的I..火车_演员_尺寸_最大

@move_list[i] = nil

结束

结束

def add_move_list(类型,*参数)

@ Move _ List . un shift(Move _ List _ element . new(type,args))。流行音乐

结束

def move _ down _ party _ actors(turn _ enabled = true)

移动_派对_演员

add_move_list(Input::DOWN,turn_enabled)

结束

def move _ left _ party _ actors(turn _ enabled = true)

移动_派对_演员

add_move_list(Input::LEFT,turn_enabled)

结束

def move _ right _ party _ actors(turn _ enabled = true)

移动_派对_演员

add_move_list(Input::RIGHT,turn_enabled)

结束

def move _ up _ party _ actors(turn _ enabled = true)

移动_派对_演员

add_move_list(Input::UP,turn_enabled)

结束

定义move_lower_left_party_actors

移动_派对_演员

添加_移动_列表(左下)

结束

定义move_lower_right_party_actors

移动_派对_演员

添加_移动_列表(右下)

结束

定义move_upper_left_party_actors

移动_派对_演员

add_move_list(左上)

结束

定义move_upper_right_party_actors

移动_派对_演员

添加_移动_列表(向上_向右)

结束

定义跳转_party_actors(x_plus,y_plus)

移动_派对_演员

add_move_list(跳转,x_plus,y_plus)

结束

结束

模块游戏_玩家_模块

定义更新

$ game _ party . update _ party _ actors

极好的

结束

定义移动到(x,y)

$ game _ party . move to _ party _ actors(x,y)

超级(x,y)

结束

def下移(turn_enabled = true)

如果新_过得去?(@x,@y,Input::DOWN)

$ game _ party . move _ down _ party _ actors(回合启用)

结束

超级(转弯启用)

结束

def move_left(turn_enabled = true)

如果新_过得去?(@x,@y,Input::LEFT)

$ game _ party . move _ left _ party _ actors(回合启用)

结束

超级(转弯启用)

结束

定义右移(turn_enabled = true)

如果新_过得去?(@x,@y,Input::RIGHT)

$ game _ party . move _ right _ party _ actors(回合启用)

结束

超级(转弯启用)

结束

def move_up(turn_enabled = true)

如果新_过得去?(@x,@y,Input::UP)

$ game _ party . move _ up _ party _ actors(回合启用)

结束

超级(转弯启用)

结束

定义移动_左下

#向下→向左→向下のどちらかのコースがWhere交通是可能的。

if (new_passable?(@x,@y,Input::DOWN)和new_passable?(@x,@y + 1,Input::LEFT))或者

(新_过得去?(@x,@y,Input::LEFT)和new_passable?(@x - 1,@y,Input::DOWN))

$ game _ party . move _ lower _ left _ party _ actors

结束

极好的

结束

定义右移_下_右

#下→右,右→下のどちらかのコースがな,那里可以通行。

if (new_passable?(@x,@y,Input::DOWN)和new_passable?(@x,@y + 1,Input::RIGHT))或者

(新_过得去?(@x,@y,Input::RIGHT)和new_passable?(@x + 1,@y,Input::DOWN))

$ game _ party . move _ lower _ right _ party _ actors

结束

极好的

结束

定义移动_左上

#向上→向左→向上のどちらかのコースがWhere交通是可能的。

if (new_passable?(@x,@y,Input::UP)和new_passable?(@x,@y - 1,Input::LEFT))或者

(新_过得去?(@x,@y,Input::LEFT)和new_passable?(@x - 1,@y,Input::UP))

$ game _ party . move _ upper _ left _ party _ actors

结束

极好的

结束

定义移动_右上_右

#向上→右,右→向上のどちらかのコースがWhere交通是可能的。

if (new_passable?(@x,@y,Input::UP)和new_passable?(@x,@y - 1,Input::RIGHT))或者

(新_过得去?(@x,@y,Input::RIGHT)和new_passable?(@x + 1,@y,Input::UP))

$ game _ party . move _ upper _ right _ party _ actors

结束

极好的

结束

定义跳转(x+和y+)

#新坐标计算

新x = @x + x加

new_y = @y + y_plus

#添加“ヤが (0,0) のか,ジャンプががががなががががががががが12364

if (x_plus == 0且y_plus == 0)或new_passable?(新x,新y,0)

$ game _ party . jump _ party _ actors(x _ plus,y_plus)

结束

超级(x加,y加)

结束

属性访问器:移动速度

attr _ access:step _ anime

结束

结束#模块Train_Actor

班级游戏_聚会

包含训练_演员::游戏_聚会_模块

结束

班级游戏_玩家

包含训练_演员::游戏_玩家_模块

结束

类精神集合_映射

包含Train _ Actor::Spriteset _ Map _ Module

结束

班级场景_地图

包含训练_演员::场景_地图_模块

结束

班级游戏_角色

def new_passable?(x,y,d)

new_x = x + (d == 6?1 : d == 4?-1 : 0)

new_y = y + (d == 2?1 : d == 8?-1 : 0)

除非$game_map.valid?(新x,新y)

返回false

结束

X = $game_map.round_x(x) #水平循环修正

Y = $game_map.round_y(y) #垂直循环修正

除非$game_map.valid,否则返回false?(x,y) #离开地图?

如果@through或者debug_through返回true?#穿过去?

除非map_passable否则返回false?(new_x,new_y) #地图无法通行?

如果collide_with_characters返回false?(new_x,new_y) #与角色冲突?

Return true #还过得去。

结束

结束

粘贴