Так ведь, если не ошибусь, туман, картинки - все это кладется поверх тайлсета и героев?
Картинка и туман поверх, панорама ниже героев. Для XP могу научит выводить картинку ниже героев с небольшими изменениями в скрипте (Это мне уже по силам).
05.02.2011, 22:39
Валера
Цитата:
Сообщение от Всесонный Феникс
Спасибо больше.
Так ведь, если не ошибусь, туман, картинки - все это кладется поверх тайлсета и героев?
Мне, в принципе, любой возможный вариант бы подошел, но хотелось бы не касаться скриптов, т.к. я стараюсь отойти от этого момента.
Если не хочешь скриптов, тогда объясни конкретней, почему и ивенты не хочешь. Всегда можно чего-то придумать.
05.02.2011, 23:16
Всесонный Феникс
Цитата:
Сообщение от Space
Картинка и туман поверх, панорама ниже героев. Для XP могу научит выводить картинку ниже героев с небольшими изменениями в скрипте (Это мне уже по силам).
Конечно, научи. ты не представляешь, какую головную боль это может предварительно устранить.
Цитата:
Сообщение от Валера
Если не хочешь скриптов, тогда объясни конкретней, почему и ивенты не хочешь. Всегда можно чего-то придумать.
Нет, ты меня не правильно понял. Я только ЗА ивенты, но не пойму каким образом возможно это сделать, разве что, если удастся туман или картину поставить ниже объектов.
05.02.2011, 23:47
Space
Цитата:
Сообщение от Всесонный Феникс
Конечно, научи. ты не представляешь, какую головную боль это может предварительно устранить.
Тогда слушай внимательно:
Game_Screen
После строчки:
@pictures = [nil]
Добавляем:
@pictures_2 = [nil]
После строчки:
@pictures.push(Game_Picture.new(i))
Добавляем:
@pictures_2.push(Game_Picture.new(i))
После строчки:
@pictures[i].update
Добавляем:
@pictures_2[i].update
СпойлерGame_Screen:
#================================================= =============================
# ** Game_Screen
#------------------------------------------------------------------------------
# This class handles screen maintenance data, such as change in color tone,
# flashing, etc. Refer to "$game_screen" for the instance of this class.
#================================================= =============================
class Game_Screen
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :tone # color tone
attr_reader :flash_color # flash color
attr_reader :shake # shake positioning
attr_reader :pictures # pictures
attr_reader :pictures_2 # pictures
attr_reader :weather_type # weather type
attr_reader :weather_max # max number of weather sprites
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
@tone = Tone.new(0, 0, 0, 0)
@tone_target = Tone.new(0, 0, 0, 0)
@tone_duration = 0
@flash_color = Color.new(0, 0, 0, 0)
@flash_duration = 0
@shake_power = 0
@shake_speed = 0
@shake_duration = 0
@shake_direction = 1
@shake = 0
@pictures = [nil]
@pictures_2 = [nil] #Add SpBT
for i in 1..100
@pictures.push(Game_Picture.new(i))
@pictures_2.push(Game_Picture.new(i)) #Add SpBT
end
@weather_type = 0
@weather_max = 0.0
@weather_type_target = 0
@weather_max_target = 0.0
@weather_duration = 0
end
#--------------------------------------------------------------------------
# * Start Changing Color Tone
# tone : color tone
# duration : time
#--------------------------------------------------------------------------
def start_tone_change(tone, duration)
@tone_target = tone.clone
@tone_duration = duration
if @tone_duration == 0
@tone = @tone_target.clone
end
end
#--------------------------------------------------------------------------
# * Start Flashing
# color : color
# duration : time
#--------------------------------------------------------------------------
def start_flash(color, duration)
@flash_color = color.clone
@flash_duration = duration
end
#--------------------------------------------------------------------------
# * Start Shaking
# power : strength
# speed : speed
# duration : time
#--------------------------------------------------------------------------
def start_shake(power, speed, duration)
@shake_power = power
@shake_speed = speed
@shake_duration = duration
end
#--------------------------------------------------------------------------
# * Set Weather
# type : type
# power : strength
# duration : time
#--------------------------------------------------------------------------
def weather(type, power, duration)
@weather_type_target = type
if @weather_type_target != 0
@weather_type = @weather_type_target
end
if @weather_type_target == 0
@weather_max_target = 0.0
else
@weather_max_target = (power + 1) * 4.0
end
@weather_duration = duration
if @weather_duration == 0
@weather_type = @weather_type_target
@weather_max = @weather_max_target
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
if @tone_duration >= 1
d = @tone_duration
@tone.red = (@tone.red * (d - 1) + @tone_target.red) / d
@tone.green = (@tone.green * (d - 1) + @tone_target.green) / d
@tone.blue = (@tone.blue * (d - 1) + @tone_target.blue) / d
@tone.gray = (@tone.gray * (d - 1) + @tone_target.gray) / d
@tone_duration -= 1
end
if @flash_duration >= 1
d = @flash_duration
@flash_color.alpha = @flash_color.alpha * (d - 1) / d
@flash_duration -= 1
end
if @shake_duration >= 1 or @shake != 0
delta = (@shake_power * @shake_speed * @shake_direction) / 10.0
if @shake_duration <= 1 and @shake * (@shake + delta) < 0
@shake = 0
else
@shake += delta
end
if @shake > @shake_power * 2
@shake_direction = -1
end
if @shake < - @shake_power * 2
@shake_direction = 1
end
if @shake_duration >= 1
@shake_duration -= 1
end
end
if @weather_duration >= 1
d = @weather_duration
@weather_max = (@weather_max * (d - 1) + @weather_max_target) / d
@weather_duration -= 1
if @weather_duration == 0
@weather_type = @weather_type_target
end
end
if $game_temp.in_battle
for i in 51..100
@pictures[i].update
end
else
for i in 1..50
@pictures[i].update
@pictures_2[i].update #Add SpBT
end
end
end
end
Spriteset_Map
После строчки:
@viewport3 = Viewport.new(0, 0, 640, 480)
После строчек:
for i in 1..50
@picture_sprites.push(Sprite_Picture.new(@viewport 2, $game_screen.pictures[i]))
end
Добавляем:
for i in 1..50 # Add SpBT
@picture_sprites.push(Sprite_Picture.new(@viewport 4, $game_screen.pictures_2[i]))
end
После строчки:
@viewport3.dispose
Добавляем:
@viewport4.dispose
После строчки:
@viewport3.update
Добавляем:
@viewport4.update
СпойлерSpriteset_Map:
#================================================= =============================
# ** Spriteset_Map
#------------------------------------------------------------------------------
# This class brings together map screen sprites, tilemaps, etc.
# It's used within the Scene_Map class.
#================================================= =============================
class Spriteset_Map
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
# Make viewports
@viewport1 = Viewport.new(0, 0, 640, 480)
@viewport2 = Viewport.new(0, 0, 640, 480)
@viewport3 = Viewport.new(0, 0, 640, 480)
@viewport4 = Viewport.new(0, 0, 640, 480) # Add SpBT
@viewport2.z = 400
@viewport3.z = 5000
@viewport4.z = -100 # Add SpBT
# Make tilemap
@tilemap = Tilemap.new(@viewport1)
@tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
for i in 0..6
autotile_name = $game_map.autotile_names[i]
@tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name)
end
@tilemap.map_data = $game_map.data
@tilemap.priorities = $game_map.priorities
# Make panorama plane
@panorama = Plane.new(@viewport1)
@panorama.z = -1000
# Make fog plane
@fog = Plane.new(@viewport1)
@fog.z = 3000
# Make character sprites
@character_sprites = []
for i in $game_map.events.keys.sort
sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
@character_sprites.push(sprite)
end
@character_sprites.push(Sprite_Character.new(@view port1, $game_player))
# Make weather
@weather = RPG::Weather.new(@viewport1)
# Make picture sprites
@picture_sprites = []
for i in 1..50
@picture_sprites.push(Sprite_Picture.new(@viewport 2,
$game_screen.pictures[i]))
end
for i in 1..50 # Add SpBT
@picture_sprites.push(Sprite_Picture.new(@viewport 4, # Add SpBT
$game_screen.pictures_2[i])) # Add SpBT
end # Add SpBT
# Make timer sprite
@timer_sprite = Sprite_Timer.new
# Frame update
update
end
#--------------------------------------------------------------------------
# * Dispose
#--------------------------------------------------------------------------
def dispose
# Dispose of tilemap
@tilemap.tileset.dispose
for i in 0..6
@tilemap.autotiles[i].dispose
end
@tilemap.dispose
# Dispose of panorama plane
@panorama.dispose
# Dispose of fog plane
@fog.dispose
# Dispose of character sprites
for sprite in @character_sprites
sprite.dispose
end
# Dispose of weather
@weather.dispose
# Dispose of picture sprites
for sprite in @picture_sprites
sprite.dispose
end
# Dispose of timer sprite
@timer_sprite.dispose
# Dispose of viewports
@viewport1.dispose
@viewport2.dispose
@viewport3.dispose
@viewport4.dispose # Add SpBT
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# If panorama is different from current one
if @panorama_name != $game_map.panorama_name or
@panorama_hue != $game_map.panorama_hue
@panorama_name = $game_map.panorama_name
@panorama_hue = $game_map.panorama_hue
if @panorama.bitmap != nil
@panorama.bitmap.dispose
@panorama.bitmap = nil
end
if @panorama_name != ""
@panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)
end
Graphics.frame_reset
end
# If fog is different than current fog
if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue
@fog_name = $game_map.fog_name
@fog_hue = $game_map.fog_hue
if @fog.bitmap != nil
@fog.bitmap.dispose
@fog.bitmap = nil
end
if @fog_name != ""
@fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)
end
Graphics.frame_reset
end
# Update tilemap
@tilemap.ox = $game_map.display_x / 4
@tilemap.oy = $game_map.display_y / 4
@tilemap.update
# Update panorama plane
@panorama.ox = $game_map.display_x / 8
@panorama.oy = $game_map.display_y / 8
# Update fog plane
@fog.zoom_x = $game_map.fog_zoom / 100.0
@fog.zoom_y = $game_map.fog_zoom / 100.0
@fog.opacity = $game_map.fog_opacity
@fog.blend_type = $game_map.fog_blend_type
@fog.ox = $game_map.display_x / 4 + $game_map.fog_ox
@fog.oy = $game_map.display_y / 4 + $game_map.fog_oy
@fog.tone = $game_map.fog_tone
# Update character sprites
for sprite in @character_sprites
sprite.update
end
# Update weather graphic
@weather.type = $game_screen.weather_type
@weather.max = $game_screen.weather_max
@weather.ox = $game_map.display_x / 4
@weather.oy = $game_map.display_y / 4
@weather.update
# Update picture sprites
for sprite in @picture_sprites
sprite.update
end
# Update timer sprite
@timer_sprite.update
# Set screen color tone and shake position
@viewport1.tone = $game_screen.tone
@viewport1.ox = $game_screen.shake
# Set screen flash color
@viewport3.color = $game_screen.flash_color
# Update viewports
@viewport1.update
@viewport3.update
@viewport4.update # Add SpBT
end
end
Под сплоерами весь текст, там где в комментариях стоит # Add SpBT - это и есть мною вышеописанные изменения!
Благодаря этим манипуляциям мы создали 2-ю функцию для вывода картинок но, картинки будут лежать под героями! Обычными средствами её вызвать не получится, поэтому когда необходимо в эвенте пишешь следующую команду:
$game_screen.pictures_2[n].show('name', 0, x, y, zoom_x, zoom_y, 255, 0)
n - номер картинки не долже превышать 50-ти и не должен пересекаться с номером картинки выведенной обычным способом!
'name' - имя файла в папке Picture
0 - забыл
x, y - координата верхней левой точки картинки в пикселях
zoom_x, zoom_y - обычно 100 (т.е. 100%, выводит картинку 1 к 1)
255 - прозрачность
0 - непомню :)
06.02.2011, 18:47
Всесонный Феникс
Цитата:
Сообщение от Space
Тогда слушай внимательно:
Game_Screen
После строчки:
@pictures = [nil]
Добавляем:
@pictures_2 = [nil]
После строчки:
@pictures.push(Game_Picture.new(i))
Добавляем:
@pictures_2.push(Game_Picture.new(i))
После строчки:
@pictures[i].update
Добавляем:
@pictures_2[i].update
СпойлерGame_Screen:
#================================================= =============================
# ** Game_Screen
#------------------------------------------------------------------------------
# This class handles screen maintenance data, such as change in color tone,
# flashing, etc. Refer to "$game_screen" for the instance of this class.
#================================================= =============================
class Game_Screen
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :tone # color tone
attr_reader :flash_color # flash color
attr_reader :shake # shake positioning
attr_reader :pictures # pictures
attr_reader :pictures_2 # pictures
attr_reader :weather_type # weather type
attr_reader :weather_max # max number of weather sprites
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
@tone = Tone.new(0, 0, 0, 0)
@tone_target = Tone.new(0, 0, 0, 0)
@tone_duration = 0
@flash_color = Color.new(0, 0, 0, 0)
@flash_duration = 0
@shake_power = 0
@shake_speed = 0
@shake_duration = 0
@shake_direction = 1
@shake = 0
@pictures = [nil]
@pictures_2 = [nil] #Add SpBT
for i in 1..100
@pictures.push(Game_Picture.new(i))
@pictures_2.push(Game_Picture.new(i)) #Add SpBT
end
@weather_type = 0
@weather_max = 0.0
@weather_type_target = 0
@weather_max_target = 0.0
@weather_duration = 0
end
#--------------------------------------------------------------------------
# * Start Changing Color Tone
# tone : color tone
# duration : time
#--------------------------------------------------------------------------
def start_tone_change(tone, duration)
@tone_target = tone.clone
@tone_duration = duration
if @tone_duration == 0
@tone = @tone_target.clone
end
end
#--------------------------------------------------------------------------
# * Start Flashing
# color : color
# duration : time
#--------------------------------------------------------------------------
def start_flash(color, duration)
@flash_color = color.clone
@flash_duration = duration
end
#--------------------------------------------------------------------------
# * Start Shaking
# power : strength
# speed : speed
# duration : time
#--------------------------------------------------------------------------
def start_shake(power, speed, duration)
@shake_power = power
@shake_speed = speed
@shake_duration = duration
end
#--------------------------------------------------------------------------
# * Set Weather
# type : type
# power : strength
# duration : time
#--------------------------------------------------------------------------
def weather(type, power, duration)
@weather_type_target = type
if @weather_type_target != 0
@weather_type = @weather_type_target
end
if @weather_type_target == 0
@weather_max_target = 0.0
else
@weather_max_target = (power + 1) * 4.0
end
@weather_duration = duration
if @weather_duration == 0
@weather_type = @weather_type_target
@weather_max = @weather_max_target
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
if @tone_duration >= 1
d = @tone_duration
@tone.red = (@tone.red * (d - 1) + @tone_target.red) / d
@tone.green = (@tone.green * (d - 1) + @tone_target.green) / d
@tone.blue = (@tone.blue * (d - 1) + @tone_target.blue) / d
@tone.gray = (@tone.gray * (d - 1) + @tone_target.gray) / d
@tone_duration -= 1
end
if @flash_duration >= 1
d = @flash_duration
@flash_color.alpha = @flash_color.alpha * (d - 1) / d
@flash_duration -= 1
end
if @shake_duration >= 1 or @shake != 0
delta = (@shake_power * @shake_speed * @shake_direction) / 10.0
if @shake_duration <= 1 and @shake * (@shake + delta) < 0
@shake = 0
else
@shake += delta
end
if @shake > @shake_power * 2
@shake_direction = -1
end
if @shake < - @shake_power * 2
@shake_direction = 1
end
if @shake_duration >= 1
@shake_duration -= 1
end
end
if @weather_duration >= 1
d = @weather_duration
@weather_max = (@weather_max * (d - 1) + @weather_max_target) / d
@weather_duration -= 1
if @weather_duration == 0
@weather_type = @weather_type_target
end
end
if $game_temp.in_battle
for i in 51..100
@pictures[i].update
end
else
for i in 1..50
@pictures[i].update
@pictures_2[i].update #Add SpBT
end
end
end
end
Spriteset_Map
После строчки:
@viewport3 = Viewport.new(0, 0, 640, 480)
После строчек:
for i in 1..50
@picture_sprites.push(Sprite_Picture.new(@viewport 2, $game_screen.pictures[i]))
end
Добавляем:
for i in 1..50 # Add SpBT
@picture_sprites.push(Sprite_Picture.new(@viewport 4, $game_screen.pictures_2[i]))
end
После строчки:
@viewport3.dispose
Добавляем:
@viewport4.dispose
После строчки:
@viewport3.update
Добавляем:
@viewport4.update
СпойлерSpriteset_Map:
#================================================= =============================
# ** Spriteset_Map
#------------------------------------------------------------------------------
# This class brings together map screen sprites, tilemaps, etc.
# It's used within the Scene_Map class.
#================================================= =============================
class Spriteset_Map
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
# Make viewports
@viewport1 = Viewport.new(0, 0, 640, 480)
@viewport2 = Viewport.new(0, 0, 640, 480)
@viewport3 = Viewport.new(0, 0, 640, 480)
@viewport4 = Viewport.new(0, 0, 640, 480) # Add SpBT
@viewport2.z = 400
@viewport3.z = 5000
@viewport4.z = -100 # Add SpBT
# Make tilemap
@tilemap = Tilemap.new(@viewport1)
@tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
for i in 0..6
autotile_name = $game_map.autotile_names[i]
@tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name)
end
@tilemap.map_data = $game_map.data
@tilemap.priorities = $game_map.priorities
# Make panorama plane
@panorama = Plane.new(@viewport1)
@panorama.z = -1000
# Make fog plane
@fog = Plane.new(@viewport1)
@fog.z = 3000
# Make character sprites
@character_sprites = []
for i in $game_map.events.keys.sort
sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
@character_sprites.push(sprite)
end
@character_sprites.push(Sprite_Character.new(@view port1, $game_player))
# Make weather
@weather = RPG::Weather.new(@viewport1)
# Make picture sprites
@picture_sprites = []
for i in 1..50
@picture_sprites.push(Sprite_Picture.new(@viewport 2,
$game_screen.pictures[i]))
end
for i in 1..50 # Add SpBT
@picture_sprites.push(Sprite_Picture.new(@viewport 4, # Add SpBT
$game_screen.pictures_2[i])) # Add SpBT
end # Add SpBT
# Make timer sprite
@timer_sprite = Sprite_Timer.new
# Frame update
update
end
#--------------------------------------------------------------------------
# * Dispose
#--------------------------------------------------------------------------
def dispose
# Dispose of tilemap
@tilemap.tileset.dispose
for i in 0..6
@tilemap.autotiles[i].dispose
end
@tilemap.dispose
# Dispose of panorama plane
@panorama.dispose
# Dispose of fog plane
@fog.dispose
# Dispose of character sprites
for sprite in @character_sprites
sprite.dispose
end
# Dispose of weather
@weather.dispose
# Dispose of picture sprites
for sprite in @picture_sprites
sprite.dispose
end
# Dispose of timer sprite
@timer_sprite.dispose
# Dispose of viewports
@viewport1.dispose
@viewport2.dispose
@viewport3.dispose
@viewport4.dispose # Add SpBT
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# If panorama is different from current one
if @panorama_name != $game_map.panorama_name or
@panorama_hue != $game_map.panorama_hue
@panorama_name = $game_map.panorama_name
@panorama_hue = $game_map.panorama_hue
if @panorama.bitmap != nil
@panorama.bitmap.dispose
@panorama.bitmap = nil
end
if @panorama_name != ""
@panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)
end
Graphics.frame_reset
end
# If fog is different than current fog
if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue
@fog_name = $game_map.fog_name
@fog_hue = $game_map.fog_hue
if @fog.bitmap != nil
@fog.bitmap.dispose
@fog.bitmap = nil
end
if @fog_name != ""
@fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)
end
Graphics.frame_reset
end
# Update tilemap
@tilemap.ox = $game_map.display_x / 4
@tilemap.oy = $game_map.display_y / 4
@tilemap.update
# Update panorama plane
@panorama.ox = $game_map.display_x / 8
@panorama.oy = $game_map.display_y / 8
# Update fog plane
@fog.zoom_x = $game_map.fog_zoom / 100.0
@fog.zoom_y = $game_map.fog_zoom / 100.0
@fog.opacity = $game_map.fog_opacity
@fog.blend_type = $game_map.fog_blend_type
@fog.ox = $game_map.display_x / 4 + $game_map.fog_ox
@fog.oy = $game_map.display_y / 4 + $game_map.fog_oy
@fog.tone = $game_map.fog_tone
# Update character sprites
for sprite in @character_sprites
sprite.update
end
# Update weather graphic
@weather.type = $game_screen.weather_type
@weather.max = $game_screen.weather_max
@weather.ox = $game_map.display_x / 4
@weather.oy = $game_map.display_y / 4
@weather.update
# Update picture sprites
for sprite in @picture_sprites
sprite.update
end
# Update timer sprite
@timer_sprite.update
# Set screen color tone and shake position
@viewport1.tone = $game_screen.tone
@viewport1.ox = $game_screen.shake
# Set screen flash color
@viewport3.color = $game_screen.flash_color
# Update viewports
@viewport1.update
@viewport3.update
@viewport4.update # Add SpBT
end
end
Под сплоерами весь текст, там где в комментариях стоит # Add SpBT - это и есть мною вышеописанные изменения!
Благодаря этим манипуляциям мы создали 2-ю функцию для вывода картинок но, картинки будут лежать под героями! Обычными средствами её вызвать не получится, поэтому когда необходимо в эвенте пишешь следующую команду:
$game_screen.pictures_2[n].show('name', 0, x, y, zoom_x, zoom_y, 255, 0)
n - номер картинки не долже превышать 50-ти и не должен пересекаться с номером картинки выведенной обычным способом!
'name' - имя файла в папке Picture
0 - забыл
x, y - координата верхней левой точки картинки в пикселях
zoom_x, zoom_y - обычно 100 (т.е. 100%, выводит картинку 1 к 1)
255 - прозрачность
0 - непомню :)
Ты точно все правильно написал? Дело в том, что у меня выбивает ошибку. Сперва я подумал - ошибся где-то сам, скопировал целым текстом твой код, вставил скрипт в меню вызовом - тоже самое. Ссылается на ошибку в Spriteset_Map.
Кстати, ребята, еще один вопрос. Мне доводилось видеть спрайты с анимацией не на 4 движения, а более. На днях попробовал понять принцип - сделал спрайт на 6 движений в стороны (то есть, 4 ряда по 6 движений), после чего, по экрану стал бегать уже ни один герой, а целых два :-))
В принципе, хотелось бы понять принцип этого безобразия.
06.02.2011, 20:07
Space
Цитата:
Сообщение от Всесонный Феникс
Ты точно все правильно написал? Дело в том, что у меня выбивает ошибку. Сперва я подумал - ошибся где-то сам, скопировал целым текстом твой код, вставил скрипт в меню вызовом - тоже самое. Ссылается на ошибку в Spriteset_Map.
Может где-то и ошибаюсь, но метод работоспособен, проверено. Сделай скрин ошибки!
Цитата:
Сообщение от Всесонный Феникс
Кстати, ребята, еще один вопрос. Мне доводилось видеть спрайты с анимацией не на 4 движения, а более. На днях попробовал понять принцип - сделал спрайт на 6 движений в стороны (то есть, 4 ряда по 6 движений), после чего, по экрану стал бегать уже ни один герой, а целых два :-))
В принципе, хотелось бы понять принцип этого безобразия.
Кстати, ребята, еще один вопрос. Мне доводилось видеть спрайты с анимацией не на 4 движения, а более. На днях попробовал понять принцип - сделал спрайт на 6 движений в стороны (то есть, 4 ряда по 6 движений), после чего, по экрану стал бегать уже ни один герой, а целых два :-))
В принципе, хотелось бы понять принцип этого безобразия.