cool20141 cool20141

<a href= http://mosros.flybb.ru/viewtopic.php?f=2&t=635>Процесс получения диплома стоматолога: реально ли это сделать быстро?</a>

danilaxxl danilaxxl

CollectableItemData.cs

[CreateMenuItem(fileName = "newItem", menuName = "Data/Items/Collectable", order = 51]

GoloGames GoloGames

vadya_ivan, рад, что вам игра показалась интересной : )

P.S. Кстати уже доступна бесплатная демо-версия в Steam

vadya_ivan vadya_ivan

Визуал, задумка, музыка , механики, все в цель

GoloGames GoloGames

Ato_Ome, спасибо за позитивные эмоции, будем стараться : )

Ato_Ome Ato_Ome

Потрясающий результат, все так четенько, плавненько)
То ли саунд, то ли плавность напомнили мне игрушку World of Goo, удачи вам в разработке и сил побольше дойти до релиза!)

Cute Fox Cute Fox

Graphics are a little cool, good HD content. But this game doesn't cause nary interest me.
However the game is well done.

GMSD3D GMSD3D

Почему действие после всех условий выполняется?
[step another object]

Zemlaynin Zemlaynin

Jusper, Везде, но наугад строить смысла нет. Нужно разведать сперва территорию на наличие ресурсов.

Jusper Jusper

Zemlaynin, а карьеры можно будет везде запихать?
Или под них "особые" зоны будут?

Zemlaynin Zemlaynin

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

Jusper Jusper

А ссылка есть?

Jusper Jusper

Я не оч понял из скриншота, как вообще работает стройка. У игрока будет как бы поле строительства?

split97 split97

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

split97 split97

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

ViktorJaguar ViktorJaguar

Почему я нигде не могу найти нормальный туториал, где покажут как экипировать предмет (например, меч) в определенную (выделенную под оружие) ячейку???

Логотип проекта Unreal Engine

Пилим платформер на UE4 - часть 8 (C++)

Пилим платформер на UE4 - часть 8 (C++)

Делаем летающую платформу, используя C++ вместо блюпринтов. Платформа умеет летать между набором фиксированных точек, замирая на каждой на указанный интервал времени.

Исходники из видео

CPP:

#include "FloatPlatform.h"
#include <EngineGlobals.h>
#include <Runtime/Engine/Classes/Engine/Engine.h>

FVector spos;
FVector cpos;
FVector tpos;
FVector k;
int32 cpoint=0;
int32 tpoint = 1;
float pointtimer = 0;



// Sets default values
AFloatPlatform::AFloatPlatform()
{
     // Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
    PrimaryActorTick.bCanEverTick = true;

}

// Called when the game starts or when spawned
void AFloatPlatform::BeginPlay()
{
    Super::BeginPlay();
    if (lpts > 1)
    {
        cpoint = 0;
        tpoint = 1;
        cpos = points[cpoint];
        SetActorLocation(cpos);
        spos = cpos;
        tpos = DefTPOS(tpoint);
    }

}

// Called every frame
void AFloatPlatform::Tick(float DeltaTime)
{
    Super::Tick(DeltaTime);
    MovePlatf(DeltaTime);
    

}

void AFloatPlatform::MovePlatf(float dt)
{
    int32 ckx;
    int32 ckz;

    cpos = GetActorLocation();

    //вектор дистанции
    FVector dv = tpos - spos;
    float dst=FMath::Abs(dv.FVector::Size());

    //коэффициент направления по Х
    if (tpos.X > cpos.X)
    {
        ckx = 1;
    }
    else
    {
        ckx = -1;
    }
    k.X = (FMath::Abs(dv.X)*ckx) / dst;
    GEngine->AddOnScreenDebugMessage(-1, 0.01f, FColor::Red, FString::Printf(TEXT("ckx=%d; kx=%f; dvX=%f"), ckx, k.X,dv.X));
    
    //у нас 2д игра, нет движения по У
    k.Y = 0;

    //то же для Z
    if (tpos.Z > cpos.Z)
    {
        ckz = 1;
    }
    else
    {
        ckz = -1;
    }
    k.Z = (FMath::Abs(dv.Z)*ckz) / dst;

    //собственно движение
    if (pointtimer <= 0)
    {
        cpos += k * spd*dt;
    }
    else
    {
        pointtimer -= dt;
    }

    //расстояние от текущей точки до активной цели
    float dd = (tpos - cpos).FVector::Size();

    //если платформа возле точки
    if (dd <= (spd * dt * 2))
    {
        //смещаемся на точку вперед
        cpoint++;
        tpoint++;

        //если дошли до номинального конца массива точек, съезжаем на начало
        if (cpoint > (lpts - 1))
        {
            cpoint = 0;
        }
        if (tpoint > (lpts - 1))
        {
            tpoint = 0;
        }
        spos = cpos;
        tpos = DefTPOS(tpoint);

        //принудительно помещаем платформу на заданную точку
        cpos = DefTPOS(cpoint);

        pointtimer = pointtime;
    }    
    
    SetActorLocation(cpos,true);

    if (GEngine) {
        GEngine->AddOnScreenDebugMessage(-1, 0.01f, FColor::Yellow, FString::Printf(TEXT("cp=%d; tp=%d; dd=%f"), cpoint, tpoint, dd));
    }
}

FVector AFloatPlatform::DefTPOS(int32 pnt)
{
    return points[pnt];
}

H:

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "FloatPlatform.generated.h"

UCLASS()
class GENEPRINCESS_API AFloatPlatform : public AActor
{
    GENERATED_BODY()
    
public:    
    AFloatPlatform();

protected:

    //объявления функций
    virtual void BeginPlay() override;
    void MovePlatf(float dt);
    FVector DefTPOS(int32 pnt);

    //объявления свойств
    UPROPERTY(EditAnywhere)
        float spd = 250;
    UPROPERTY(EditAnywhere)
        float lpts = 2;
    UPROPERTY(EditAnywhere)
        float pointtime = 1;
    UPROPERTY(EditAnywhere)
        TArray <FVector> points;
    
    //основные переменные
    FVector spos;
    FVector cpos;
    FVector tpos;
    FVector k;
    int32 cpoint;
    int32 tpoint;
    float pointtimer;
    

public:    
    // Тик
    virtual void Tick(float DeltaTime) override;

    
};

Смотрите также:


Комментарии



Дарин, наконец-то добрался до просмотра! Вступление огонь! вот только звук речи очень тихий, приходится вслушиваться. С 10 минуту чуть получше стало со звуком.

В целом годно, спасибо за материал!)

Справка