Воскресенье, 28 Апреля 2024, 12:24

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Записи участника » Lertmind [593]
Результаты поиска
LertmindДата: Вторник, 08 Марта 2016, 00:19 | Сообщение # 481 | Тема: Нужна моделька человека с анимацией
заслуженный участник
Сейчас нет на сайте
К этой статье есть моделька с анимацией ходьбы, справа есть кнопка Download Attachment.
LertmindДата: Понедельник, 07 Марта 2016, 14:57 | Сообщение # 482 | Тема: [2D] - Фейковая Новелла: Симулятор Девушек 16+
заслуженный участник
Сейчас нет на сайте
Из Торадоры не узнал, хотя смотрел.
Цитата KVinS ()
Статья на Хабре опубликована.

Круто, заранее плюсанул, думаю прочту позже.
LertmindДата: Понедельник, 07 Марта 2016, 03:28 | Сообщение # 483 | Тема: Оптимизация сцены
заслуженный участник
Сейчас нет на сайте
Для начала прочитай документацию: английский, русский.
Я думаю в первую очередь уменьши количество вершин и поставь на всех неподвижных объектах свойство Static, если ещё не сделал.
LertmindДата: Понедельник, 07 Марта 2016, 03:16 | Сообщение # 484 | Тема: [2D] - Фейковая Новелла: Симулятор Девушек 16+
заслуженный участник
Сейчас нет на сайте
Узнал персонажей, вторая слева из Dagashi Kashi, а последняя из Mirai Nikki.
LertmindДата: Воскресенье, 06 Марта 2016, 23:21 | Сообщение # 485 | Тема: jump
заслуженный участник
Сейчас нет на сайте
Кстати, от массы ничего не изменилось, потому что в вакууме пёрышко и мяч для боулинга падают одинаково, здесь так же нет сопротивления воздуха.
Просто прилагаешь дополнительную силу к гравитации. Например так:

Код
using UnityEngine;

public class MyForce : MonoBehaviour
{
    Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    void FixedUpdate()
    {
        rb.AddForce(Vector3.down * 30f);
    }
}


Сообщение отредактировал Lertmind - Воскресенье, 06 Марта 2016, 23:21
LertmindДата: Воскресенье, 06 Марта 2016, 23:04 | Сообщение # 486 | Тема: jump
заслуженный участник
Сейчас нет на сайте
А силу пробовал применять?:)
LertmindДата: Воскресенье, 06 Марта 2016, 01:06 | Сообщение # 487 | Тема: [2D] - Agent Green - [Action / Platformer]
заслуженный участник
Сейчас нет на сайте
Цитата Volk16 ()
Я уже в курсе о этой ошибке, пытаюсь исправить. Но не смотря на эту ошибку, данное место можно пройти.
Я позже смог пройти когда нажал Cancel вместо OK, тогда ошибки игнорятся:)
Цитата Volk16 ()
Не то что бы прям не умный, просто у врагов нет возможности ничего сделать в данной ситуации. Над этим тоже уже работаю, что нибудь придумаю.
Они могут стрелять чуть ниже, если видят, что игрок присел.
Цитата Volk16 ()
Еще конечно хотел бы узнать про плюсы игры
Остальное сделано нормально. Падение вертолёта запомнилось и испытание газа на человеке) До конца игры я так и не прошёл.
LertmindДата: Суббота, 05 Марта 2016, 17:57 | Сообщение # 488 | Тема: [2D] - Agent Green - [Action / Platformer]
заслуженный участник
Сейчас нет на сайте
Ошибки:
* Невозможно прыгать если близко стоять с коробками, иногда происходит застревание, например на ступеньках в уровне где Грин в заложниках.
* Для смены оружия приходится несколько раз крутить колесо мышки.
* Когда спускаешься на этой лестнице, то после отпускания кнопки S персонаж принимает неправильную позу

* Это место не смог пройти из-за окон с ошибками, после закрытие которых я труп


Недостатки:
* Плохо выделены коробки за которыми можно спрятаться, они сливаются с фоном.
* ИИ не очень умный, некоторые убиваются ножом сидя, пока они стреляют выше.
* Голова у Грина странно поворачивается, хотя это забавно.
* Когда персонаж идёт, некоторые кадры анимации размыты. С колёсами поезда вроде тоже бывает.


Сообщение отредактировал Lertmind - Суббота, 05 Марта 2016, 18:05
LertmindДата: Пятница, 04 Марта 2016, 23:58 | Сообщение # 489 | Тема: При попытке унаследоваться от button ошибка.
заслуженный участник
Сейчас нет на сайте
Ты бы приложил код класса, чтобы людям было яснее. По тексту ошибки можно сказать только то, что ты возвращаешь другой тип и что возможно тебе надо привести UMyButton * к UObject *. И тебе точно надо наследоваться?

Добавлено (04 марта 2016, 23:58)
---------------------------------------------
Нашёл ответ, ты просто забыл подключить заголовочные файлы. Вот ссылка на решение https://answers.unrealengine.com/questio....on.html. Там упоминается эта статья
https://wiki.unrealengine.com/UMG,_How_to_extend_a_UUserWidget::_for_UMG_in_C++. (копируй вместе с точкой в конце, тупой парсер не делает ссылку),
про расширение виджетов, где как раз указано, что надо подключить это в "(YourProjectName.h)":
Код
#include "Runtime/UMG/Public/UMG.h"
#include "Runtime/UMG/Public/UMGStyle.h"
#include "Runtime/UMG/Public/Slate/SObjectWidget.h"
#include "Runtime/UMG/Public/IUMGModule.h"
#include "Runtime/UMG/Public/Blueprint/UserWidget.h"

Хотя вот здесь есть обновлённая версия статьи https://wiki.unrealengine.com/Extend_UserWidget_for_UMG_Widgets, где вроде как не надо подключать эти заголовочные файлы, прочитай статью внимательней.


Сообщение отредактировал Lertmind - Суббота, 05 Марта 2016, 00:00
LertmindДата: Четверг, 03 Марта 2016, 22:11 | Сообщение # 490 | Тема: (PC) Grizzly Valley [Indie, Horror, Stealth, Action]
заслуженный участник
Сейчас нет на сайте
Чей женский голос в трейлере? И кто занимался локализацией?
LertmindДата: Четверг, 03 Марта 2016, 02:22 | Сообщение # 491 | Тема: Угол объекта
заслуженный участник
Сейчас нет на сайте
Когда реализуешь Breakout нет необходимости использовать физику через приложения силы или изменения Rigidbody.velocity, можно сделать шар isKinematic = true для коллизий и тригеров и двигать его вручную, только придётся просчитывать удары и отражать векторы, зато будет точнее. В любом случае, тебе всего лишь надо менять направление движения через векторы. Если ты изменяешь velocity, то тебе надо повернуть этот вектор. Скорость объекта это длина вектора velocity, т. е. velocity.magnitude, которую ты должен всегда держать неизменяемой для одинаковой скорости. Задать вектор velocity можно по-разному, чтобы повернуть на определённый градус можно написать так:
Код
void OnCollisionExit(Collision other)
{
    if (other.transform.CompareTag("Доска"))
    {
        // Поворачиваем вектор на 10 градусов
        rb.velocity = Quaternion.AngleAxis(10f, transform.up) * rb.velocity;
    }
}


В общем ты должен сам определять на основании чего менять угол. В случае с доской - определяешь скорость движения доски для влияния на угол или как делают иногда в Breakout в зависимости от места удара доски, чем дальше от центра тем больше угол.
Посмотри готовый проект с Breakout, там контролируется макс. и мин. скорость:
Код
public class Ball : MonoBehaviour {

    public float maxVelocity = 20;
    public float minVelocity = 15;

    void Awake () {
        GetComponent<Rigidbody>().velocity = new Vector3(0, 0, -18);
    }

    void Update () {
        //Make sure we stay between the MAX and MIN speed.
        float totalVelocity = Vector3.Magnitude(GetComponent<Rigidbody>().velocity);
        if(totalVelocity>maxVelocity){
            float tooHard = totalVelocity / maxVelocity;
            GetComponent<Rigidbody>().velocity /= tooHard;
        }
        else if (totalVelocity < minVelocity)
        {
            float tooSlowRate = totalVelocity / minVelocity;
            GetComponent<Rigidbody>().velocity /= tooSlowRate;
        }

        //Is the ball below -3? Then we're game over.
        if(transform.position.z <= -3){            
            BreakoutGame.SP.LostBall();
            Destroy(gameObject);
        }
    }
}

Но здесь лучше вместо Update() использовать FixedUpdate() где изменяется скорость и если скорость всегда константная, то можно написать:
Код
void Start() {
    rb = GetComponent<Rigidbody>();
}
void FixedUpdate() {
    rb.velocity = rb.velocity.normalized * speed; // speed - это float с заданной скоростью
}


И в зависимости от центра доски немного смещается шар:
Код
public class Paddle : MonoBehaviour {

    public float moveSpeed = 15;
  
    void Update () {
        float moveInput = Input.GetAxis("Horizontal") * Time.deltaTime * moveSpeed;
        transform.position += new Vector3(moveInput, 0, 0);

        float max = 14.0f;
        if (transform.position.x <= -max || transform.position.x >= max)
        {
            float xPos = Mathf.Clamp(transform.position.x, -max, max); //Clamp between min -5 and max 5
            transform.position = new Vector3(xPos, transform.position.y, transform.position.z);
        }
    }

    void OnCollisionExit(Collision collisionInfo ) {
        //Add X velocity..otherwise the ball would only go up&down
        Rigidbody rigid = collisionInfo.rigidbody;
        float xDistance = rigid.position.x - transform.position.x;
        rigid.velocity = new Vector3(rigid.velocity.x + xDistance/2, rigid.velocity.y, rigid.velocity.z);
    }
}


Сообщение отредактировал Lertmind - Четверг, 03 Марта 2016, 05:26
LertmindДата: Вторник, 01 Марта 2016, 03:12 | Сообщение # 492 | Тема: Scrollbar
заслуженный участник
Сейчас нет на сайте
Специальные обработчики - это кривовато. Есть метод IsPointerOverGameObject(). По ссылке есть пример. Вставляешь такую проверку в скрипт на камере, если условие выполняется, то курсор над UI и значит не надо вертеть твой объект:
Код
if(EventSystem.current.IsPointerOverGameObject())
{
    Debug.Log("Clicked on the UI");
}

И не забудь дописать using UnityEngine.EventSystems;
LertmindДата: Вторник, 01 Марта 2016, 02:26 | Сообщение # 493 | Тема: Внутриигровые покупки Google Play
заслуженный участник
Сейчас нет на сайте
Нагуглил такой ответ http://www.gamedev.ru/code/forum/?id=205813#m5.
LertmindДата: Среда, 03 Февраля 2016, 05:07 | Сообщение # 494 | Тема: Dead Defence [PC, в дальнейшем и моб. платформы] Greenlight
заслуженный участник
Сейчас нет на сайте
Думаю, что придётся убрать всю сцену "выбор уровня", даже если будет низкополигональная - это слишком для мобильных устройств.
GUI - разрозненное, меню "установка башни" и "информация/улучшение башни" должны быть повёрнуты к экрану, как обычно делают, на своём слое интерфейса. Передвижение камеры желательно сделать перетаскиванием курсора (пальца), так тоже обычно делают. Узнал куски интерфейса из Evil Defenders)
Могу похвалить только 3D-модельки, они сделаны достаточно хорошо.
LertmindДата: Суббота, 30 Января 2016, 17:44 | Сообщение # 495 | Тема: Правильное передвижение объектов в Pascal ABC
заслуженный участник
Сейчас нет на сайте
Вот код без структуры векторов, получается не очень красиво... Проверил в Lazarus, он был под рукой. В остальном разбирайтесь сами, в гугле легко найти информацию и о векторах, и о другом.
Код
procedure TForm1.FormCreate(Sender: TObject);
var
posx, posy, destx, desty: Real;
dirx, diry: Real;
d: Real;
speed: Real;
begin
posx := 1; posy := 2; // Позиция объекта
destx := 4; desty := 3; // Позиция места назначения
speed := 3;

dirx := destx - posx; diry := desty - posy; // Направление движения
d := Sqrt(dirx*dirx + diry*diry);
dirx := dirx / d; diry := diry / d; // Делаем вектор единичным

posx := posx + dirx * speed;
posy := posy + diry * speed;
end;


Сообщение отредактировал Lertmind - Суббота, 30 Января 2016, 17:46
LertmindДата: Суббота, 30 Января 2016, 17:26 | Сообщение # 496 | Тема: Правильное передвижение объектов в Pascal ABC
заслуженный участник
Сейчас нет на сайте
Цитата Nikstoun ()
Lertmind, Пишет ошибку недопустимый параметр в последнем действии . Однако я не преобразовал вектор , из-за этого ? Как его преобразовать в pascal`e?

Это псевдокод, нужно реализовать класс вектор. Сейчас попробую на паскаль перенести.
LertmindДата: Суббота, 30 Января 2016, 17:12 | Сообщение # 497 | Тема: Правильное передвижение объектов в Pascal ABC
заслуженный участник
Сейчас нет на сайте
На всякий случай запишу в векторном виде:
Код
Vector2 pos;  // Позиция объекта
Vector2 dest; // Позиция места назначения

Vector2 direction = dest - pos;     // Направление движения
direction = direction.normalized(); // Делаем вектор единичным

pos += direction * speed; // Если в игровом цикле есть время, то ещё умножить на дельту времени


Чтобы остановиться, можно либо считать пройденное расстояние и сравнивать с расстоянием до места назначения, либо каждый раз высчитывать вектор движения и проверять не поменял ли знак какой-нибудь компонент вектора direction (т. е. x или y).


Сообщение отредактировал Lertmind - Суббота, 30 Января 2016, 17:14
LertmindДата: Четверг, 28 Января 2016, 20:12 | Сообщение # 498 | Тема: Python26.dll Classic
заслуженный участник
Сейчас нет на сайте
Я бы советовал вообще не пользоваться Construct Classic, он давно устарел и не поддерживается, даже wiki удалена почему-то, только через archive.org можно посмотреть. Вот документация по скриптингу, там кроме DLL ничего не сказано, возможно крашится из-за неправильно написанного скрипта. Могли бы написать как именно крашится, а то вариантов много, в том числе неустановленный DirectX 9.

Сообщение отредактировал Lertmind - Четверг, 28 Января 2016, 20:14
LertmindДата: Среда, 27 Января 2016, 22:42 | Сообщение # 499 | Тема: Python26.dll Classic
заслуженный участник
Сейчас нет на сайте
В гугле говорят, что надо из папки где установлен Construct скопировать Python26.dll в папку с игрой.
LertmindДата: Четверг, 02 Апреля 2015, 18:08 | Сообщение # 500 | Тема: Склейка спрайтов в реальном времени
заслуженный участник
Сейчас нет на сайте
QNicolya, чтобы не создавать кучу Animator Controller можно попробовать в начало каждого AnimationClip добавить AnimationEvent, который будет вызывать функцию, проигрывающую соответствующие клипы для доспехов. На счёт этого не уверен, просто предположение.

Это тема, где обсуждается как не делать кучу AnimationClip вручную, если изменяются только спрайты. Что интересно, один из разработчиков Unity там сообщил, что нет нормального способа для этого в движке и похоже с того сообщения ничего не изменилось. Один человек предлагает отказаться от Mecanim (что является одним из логичных способов) и использовать SpriteManager.


Сообщение отредактировал Lertmind - Четверг, 02 Апреля 2015, 18:33
Форум игроделов » Записи участника » Lertmind [593]
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг