По образцу из статьи по спрайтам, я наделал из них 2 атласа текстур и собрал 2 дерева смешивания: на передвижение шагом и бегом, назвав их соответственно Move и Run. Одновременно с этим добавив 2 булевых переменных с аналогичным названием и настроив переходы между деревьями по образцу из этой статьи.
Подготовленный Animator Controller.
Подготовленный Animator Controller.
Подготовив всю анимацию, давайте проверим, идет ли переключения между деревьями? Немного доработаем наш код, добавив 2 строчки:
Изменения отмечены красным цветом.
Изменения отмечены красным цветом.
Проверяем...Вуаля, переход между деревьями ничем не отличается от перехода между двумя обычными анимациями. Теперь же давайте подготовим наш объект к перемещению. Для начала давайте добавим к нему компонент по нажатию кнопки Add Component в окне инспектора и выбрав по пути Physics 2D\ Rigidbody 2D. Оттуда же накинем Circle Collider 2D. Т.к. я делаю изометрическую 2D RPG, то дополнительно в настройках Rigidbody 2D параметр Gravity Scale задаем 0, чтобы мой персонаж не падал вниз.
Теперь уже в скрипте добавляем парочку переменных для передвижения нашего персонажа:
Начинаем потихоньку задумываться о передвижении.
Начинаем потихоньку задумываться о передвижении.
После давайте создадим метод FixedUpdate, отличающего от метода Update тем, что он срабатывает только тогда, когда надо обработать саму физику в игре, а не каждый кадр в отличии от Update. Также в той части кода, где мы реагировали на нажатия левой клавиши Shift добавим изменение коэффициента ускорения при беге:
Движение через метод Rigidbody2D.velocity.
Движение через метод Rigidbody2D.velocity.
При нажатии обеих клавиш движения, умножение на 0.75 подобран экспериментальным путем замера времени при движении вдоль планки под разными углами.
#include <iostream>
using namespace std;
int main()
{
setlocale(0,"");
cout<<"Введите размеры";
int n,m;
cin>>m>>n;
int** a = new int*[m];
for (int i = 0; i<m; i++){
a[i] = new int[n];
}
cout<<"Вводите элементы: "<<endl;
for(int i=0; i<m; i++)
{
for(int j=0; j<n; j++)
{
cin>>a[i][j];
}
cout << endl;
}
for(int i=0; i<m; i++)
{
for(int j=0; j<n; j++)
{
cout<<a[i][j]<<" ";
}
cout << endl;
}
cout << "" << endl;
///
int tmax,tmin,t;
for(int j=0; j<n; j++)
{
tmin=0;
tmax=0;
for(int i=0; i<m; i++)
{
if(a[i][j]<a[tmin][j]) tmin=i;
if(a[i][j]>a[tmax][j]) tmax=i;
}
t=a[tmin][j];
a[tmin][j]=a[tmax][j];
a[tmax][j]=t;
}
///
for(int i=0; i<m; i++)
{
for(int j=0; j<n; j++)
{
cout << a[i][j] << " ";
}
cout << endl;
}
for (int i = 0; i <m; i++)
delete[]a[i];
delete[]a;
system("pause");
return 0;
}
Там как-нибудь перепиши в c# они похожи
Объяснение:
По образцу из статьи по спрайтам, я наделал из них 2 атласа текстур и собрал 2 дерева смешивания: на передвижение шагом и бегом, назвав их соответственно Move и Run. Одновременно с этим добавив 2 булевых переменных с аналогичным названием и настроив переходы между деревьями по образцу из этой статьи.
Подготовленный Animator Controller.
Подготовленный Animator Controller.
Подготовив всю анимацию, давайте проверим, идет ли переключения между деревьями? Немного доработаем наш код, добавив 2 строчки:
Изменения отмечены красным цветом.
Изменения отмечены красным цветом.
Проверяем...Вуаля, переход между деревьями ничем не отличается от перехода между двумя обычными анимациями. Теперь же давайте подготовим наш объект к перемещению. Для начала давайте добавим к нему компонент по нажатию кнопки Add Component в окне инспектора и выбрав по пути Physics 2D\ Rigidbody 2D. Оттуда же накинем Circle Collider 2D. Т.к. я делаю изометрическую 2D RPG, то дополнительно в настройках Rigidbody 2D параметр Gravity Scale задаем 0, чтобы мой персонаж не падал вниз.
Теперь уже в скрипте добавляем парочку переменных для передвижения нашего персонажа:
Начинаем потихоньку задумываться о передвижении.
Начинаем потихоньку задумываться о передвижении.
После давайте создадим метод FixedUpdate, отличающего от метода Update тем, что он срабатывает только тогда, когда надо обработать саму физику в игре, а не каждый кадр в отличии от Update. Также в той части кода, где мы реагировали на нажатия левой клавиши Shift добавим изменение коэффициента ускорения при беге:
Движение через метод Rigidbody2D.velocity.
Движение через метод Rigidbody2D.velocity.
При нажатии обеих клавиш движения, умножение на 0.75 подобран экспериментальным путем замера времени при движении вдоль планки под разными углами.