Как я могу изменить изображение персонажа не Ruby Gosu

Я создаю базовую игру в стиле оригинальных игр про покемонов, используя библиотеку ruby ​​gosu. Мне удалось выяснить, как перемещать изначально загруженный спрайт, но я не могу понять, как очистить этот спрайт и нарисовать новый спрайт, например. вид сзади на своем месте.

Я просматривал документацию и наткнулся на метод «вставки», хотя я не уверен, что это то, что я хочу. Любая помощь?

я создаю переменную в методе инициализации, а затем рисую ее позже так:

def initialize

@character_image = Gosu::Image.new("media/images/char.png", :tileable => false)
end
def draw
    @character_image.draw(@character_location_X, @character_location_Y, 1)
end

person Mr. P-teo    schedule 19.02.2018    source источник


Ответы (1)


Вам нужно создать класс для своего персонажа, который нуждается в функциях update и draw. В функции обновления при получении ввода, такого как WASD, вы можете переключить изображение спрайта. Если у вас нет листа спрайтов, вам придется загрузить несколько изображений и переключаться между ними.

Вот вам в помощь псевдокод ruby:

@back_image = Gosu::Image.new("media/images/back.png")
@front_image = Gosu::Image.new("media/images/front.png")
@left_image = Gosu::Image.new("media/images/left.png")
@right_image = Gosu::Image.new("media/images/right.png")
current_image = front_image

Это входит в вашу функцию обновления:

if up
  current_image = back_image
elsif down
  current_image = front_image
elsif right
  current_image = right_image
elsif left
  current_image = left_image
end

Затем в вашей функции рисования все, что вам нужно сделать, это

def draw
    @current_image.draw(@character_location_X, @character_location_Y, 1)
end

Это довольно простой способ, но если вы используете лист спрайтов, вы можете создать свой собственный класс анимации, который может использовать Госу, который позволяет вам выбирать между определенными диапазонами кадров листа спрайтов вашего персонажа.

person karamazovbros    schedule 19.07.2018