[C# XNA] Seeker of Truth (pracovní název)

Váš rozpracovaný projekt v Clickteam Fusion, Constructu, Unity a ve všem ostatním.

Moderátor: Moderátoři

Uživatelský avatar
 
Příspěvky: 1282
Registrován: duben 27, 2009, 6:54 pm
Bydliště: SR

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od JKlena » červenec 29, 2014, 5:15 am

Nic nepokazíš pokud se pokusíš to vylepšit. Aspoň uvidíme co je z toho opravdu lepší, ale mne osobne tohle víc než vyhovuje. Mne se to líbí.

Uživatelský avatar
 
Příspěvky: 1282
Registrován: duben 27, 2009, 6:54 pm
Bydliště: SR

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od JKlena » červenec 29, 2014, 4:08 pm

Já sem začal dělat na tom obrázku pro YT :D Takže pokud to deš dávat na YT zatím počkej.

OBRÁZEK

Uživatelský avatar
 
Příspěvky: 881
Registrován: srpen 25, 2008, 9:01 pm

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od Sorc » červenec 29, 2014, 4:37 pm

To já s tím počkám, neboj :) Ale už teď můžu říct, že to bude vypadat skvěle!

Uživatelský avatar
 
Příspěvky: 528
Registrován: květen 21, 2012, 7:28 pm
Bydliště: Ústecký kraj

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od feryk » červenec 29, 2014, 7:32 pm

Když člověku dochází inspirace, tak je nejlepší si něco pustit, na něco kouknout nebo si něco zahrát. Většinou se člověku vyčistí hlava a nabere novou sílu. :P
Aktuální projekty v RM VXA:
: Bludný holanďan ... 100 % hotovo : http://uloz.to/xptFokkX/bludny-holandan-v1-03-exe
: TOW I: Escape from The Chaos ... 25 % hotovo

Více na https://www.feryk.cz
Fb: https://www.facebook.com/feryk.cz

Uživatelský avatar
 
Příspěvky: 1282
Registrován: duben 27, 2009, 6:54 pm
Bydliště: SR

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od JKlena » červenec 29, 2014, 7:39 pm

Možná by sme to pak mohli hodit i jako main screen, uvidím jak to vyjde, jeste dodělám mága a draka a chci před to dát mlhu.

Uživatelský avatar
 
Příspěvky: 1282
Registrován: duben 27, 2009, 6:54 pm
Bydliště: SR

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od JKlena » červenec 30, 2014, 3:46 pm

Tak a je to hotovo :)

OBRÁZEK

Uživatelský avatar
 
Příspěvky: 881
Registrován: srpen 25, 2008, 9:01 pm

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od Sorc » červenec 30, 2014, 3:50 pm

Je to super :) A skladbu teda mám na YT dát jako Fallen Heroes? Jenom aby se to nepletlo s Forgotten Heroes :D

Uživatelský avatar
 
Příspěvky: 1282
Registrován: duben 27, 2009, 6:54 pm
Bydliště: SR

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od JKlena » červenec 30, 2014, 3:54 pm

Ten Fallen Hereos jak si to jednou nazval se mi zalíbil víc než Seeker Of Thruth tak sem to tam dal :D

Uživatelský avatar
 
Příspěvky: 881
Registrován: srpen 25, 2008, 9:01 pm

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od Sorc » červenec 30, 2014, 4:05 pm

Ani si nepamatuju, že bych to tak někdy nazval :D

Každopádně, tady to je :)

Uživatelský avatar
 
Příspěvky: 1282
Registrován: duben 27, 2009, 6:54 pm
Bydliště: SR

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od JKlena » prosinec 19, 2014, 2:23 am

Len aby si nikto nemyslel že projekt je u ledu, pracuju na nem, jen nemám tolik času kolik bych chtěl.
Tady je krátké video z testu základních funkcí hráče a NPCs. Následovat bude jejich vzájemná interakce skrze boj.


Uživatelský avatar
 
Příspěvky: 528
Registrován: květen 21, 2012, 7:28 pm
Bydliště: Ústecký kraj

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od feryk » prosinec 19, 2014, 8:47 pm

Supr, už se těšim, až se budu procházet pulsujícím městem.
Aktuální projekty v RM VXA:
: Bludný holanďan ... 100 % hotovo : http://uloz.to/xptFokkX/bludny-holandan-v1-03-exe
: TOW I: Escape from The Chaos ... 25 % hotovo

Více na https://www.feryk.cz
Fb: https://www.facebook.com/feryk.cz

Uživatelský avatar
 
Příspěvky: 1282
Registrován: duben 27, 2009, 6:54 pm
Bydliště: SR

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od JKlena » prosinec 20, 2014, 2:09 am

Spíš chci teď rozběhat nelagujíci bojový systém, následne HUD a inventář, pak equipment (viditelnej ale jednoduchej na grafiku i zobrazení) a pak udělám asi neco jako mini mlátičku ala diablo o 1 dunu, a to pak dám do verejnýho testovaní. Až pak začnu dělat hlubší interakci NPC a questy a tak...

Uživatelský avatar
 
Příspěvky: 1282
Registrován: duben 27, 2009, 6:54 pm
Bydliště: SR

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od JKlena » prosinec 22, 2014, 12:28 am

Nemáte nekto vhodnej Collision Detection kód, ideálne přes obdélníky a jejich natočení?
Neco sem našel na netu, ale neni to zrovna 2x funkční. Kontroluje to kolizi přes Scalar-y ale sem z toho na zufání. Nedokážu odhalit co spúsobuje tento problém:
Obrázek
Oranžový obdélník je colisionRectangle meče, modré sou colisionRectangle postav a každá postava které colisionRectangle koliduje s colisionRectangle meče je červená.

Pokud se chce někomu nad tím koumat se mnou, pomoc by se opravdu hodila.
Používám nasledující kód:
http://pastebin.com/0G7DzaVL

A pak jen volám kontrolu:
Kód: Vybrat vše
if (ColisionRectangle.Intersects(Main.Bodies[i].ColisionRectangle))

Kde obydva ColisionRectangle sou typu RotatedRectangle.

Nejaké nápady? Ktokoliv? :(

PS: Ješte bych mnel poznamenat že používám XNA framework takže s tým treba počítat.
Případne máte li nekto lepší colision detection kód, šup sem s nim!

Uživatelský avatar
 
Příspěvky: 692
Registrován: červen 6, 2007, 7:26 pm
Bydliště: Liberecký kraj

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od Rebel » prosinec 22, 2014, 12:33 am

nj, to asi těžko kdo tady mít bude, podle mě jsi jediněj, kdo tu dělá přímo v Cčku. Ale zkus se na to poptat třeba na ceskych hrach v nějakejch těch help sekcích. ceske-hry.cz

Ale když padla řeč na diablo, tady je jedno indie isometrický pixelart - WIP

((random(1)*2)-1)*(rrandom(1,x)) ;
((random(1)*2)-1) will give you -1 or 1
(rrandom(1,x))

Uživatelský avatar
 
Příspěvky: 528
Registrován: květen 21, 2012, 7:28 pm
Bydliště: Ústecký kraj

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od feryk » prosinec 22, 2014, 1:30 am

Abych řekl pravdu, tak přesně nevím, jaký problém ti ten kód způsobuje, nějak jsem to asi nepochopil, ale ohledně toho meče, nebylo by to lepší dělat na kruh? a poloměr kruhu by byla velikost toho meče? ale nevím jak přesně máš dělaný útoky třeba. :)
Aktuální projekty v RM VXA:
: Bludný holanďan ... 100 % hotovo : http://uloz.to/xptFokkX/bludny-holandan-v1-03-exe
: TOW I: Escape from The Chaos ... 25 % hotovo

Více na https://www.feryk.cz
Fb: https://www.facebook.com/feryk.cz

Uživatelský avatar
 
Příspěvky: 881
Registrován: srpen 25, 2008, 9:01 pm

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od Sorc » prosinec 22, 2014, 9:30 am

Ten kód je dost dlouhý, nevíš alespoň přibližně, ve které části to nefunguje? Jen co jsem si všimnul, máš tam dvě metody s názvem Intersects. Možná jsem jenom moc neznalý C#, ale je tohle vůbec možné?

Uživatelský avatar
 
Příspěvky: 1282
Registrován: duben 27, 2009, 6:54 pm
Bydliště: SR

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od JKlena » prosinec 22, 2014, 10:49 am

Ano Sorci je to možné:

public bool Intersects(RotatedRectangle theRectangle)
public bool Intersects(Rectangle theRectangle)

Jak si můžeš povšimnout každá metoda má jiné parametry, podle toho jaké parametry zadáš je volaná daná metoda.
___________________________________________________________________________

Problém je jak se zdá právě s samotné Intersects metodě, jelikož jak je vidět na obrázku víše, oranžový a modrý obdélník (definované jako RotatedRectangle) se nedotýkají no Intersects i tak vrací true a postavy na to proto reagují (zrudnou).

Uživatelský avatar
 
Příspěvky: 881
Registrován: srpen 25, 2008, 9:01 pm

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od Sorc » prosinec 22, 2014, 11:04 am

No aspoň jsem se něco dověděl :) ale bohužel ti asi nepomůžu :(

Uživatelský avatar
 
Příspěvky: 1282
Registrován: duben 27, 2009, 6:54 pm
Bydliště: SR

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od JKlena » prosinec 22, 2014, 1:06 pm

Uvažuju že si udělám vlastní Collision Detection založený na vectorech a ne rectangloch. Problém je že neznám žádný vhodný spúsob jak detekovat prolinutí vektorú.
Vím že na to v matematice existuje nejaký vzoreček, ale už si ho asi fakt nespomenu... :/ A google zrovna taky moc nepomáhá když nevim co hledam.

Obrázek

Uživatelský avatar
 
Příspěvky: 881
Registrován: srpen 25, 2008, 9:01 pm

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od Sorc » prosinec 22, 2014, 1:13 pm

Z mých (špatných) znalostí matematiky asi vím, jak by to šlo udělat. Musel bys z vektoru nějak dostat parametrické vyjádření přímky, takže bys potřeboval jeho dva konce. Potom už by to bylo jednoduché.

Uživatelský avatar
 
Příspěvky: 1282
Registrován: duben 27, 2009, 6:54 pm
Bydliště: SR

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od JKlena » prosinec 22, 2014, 1:27 pm

To není problém, každý vector má Origin Point který je vlastne taky vyjadřený Vectorem.
Napr.:
Vector A [3,5] => Origin P. [15,20]
Znamená že vector A začína v bode 15,20 a končí v 18,25.
Otázkou je jak zjistíš na které strane vectoru B, leží vector A?
Kdybysme Vector B definovali nasledovne:
Vector B [1,30] => Origin P. [16,10]

Je jasné že Origin Point Vectoru A leží na levé strane obrazovky od Vectoru B a jeho koncový bod na pravé strane.
Ale vyjádři to matematicky!

Uživatelský avatar
 
Příspěvky: 881
Registrován: srpen 25, 2008, 9:01 pm

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od Sorc » prosinec 22, 2014, 1:32 pm

Tak to už máš vyhráno :)
Řekněme, že máme vektor "v" daný body A a B. Chceme zjistit, jestli protíná vektor "u" daný body C a D.
Parametrické vyjádření úsečky AB:
x1 = A.x + v.x*t
y1 = A.y +v.y*t
pro přímku t musí být mezi 0 a 1

To samé uděláš pro druhý vektor.
x2 = C.x + u.x*t
y2 = C.y +u.y*t
opět t je mezi 0 a 1

Potom porovnáš x1 s x2 a y1 s y2. Pokud dostaneš z obou rovnic stejné t a pokud t leží mez 0 a 1, vektory se protínají.

EDIT: Abych tu myšlenku dotáhnul do konce, potřebuješ dvě rovnice:
A.x + v.x*t = C.x + u.x*t
A.y + v.y*t = C.y + u.y*t

S obouma uděláš to samý, tak ukážu jenom na jedný. (pro jistotu píšu celej výpočet, abys zkontroloval jestli tam není chyba :D)
A.x + v.x*t = C.x + u.x*t //Převedeme členy
A.x - C.x = u.x*t - v.x*t //Vpravo toho vytkem t
A.x - C.x = t(u.x - v.x) //Už jenom vydělíme a máme t
t = (A.x - C.x)/(u.x - v.x)

S druhou rovnicí to samý a potom jenom srovnat jestli jsou t stejná a zároveň jestli leží mezi 0 a 1 :)

Aspoň doufám, že si to pamatuju dobře :D
Naposledy upravil Sorc dne prosinec 22, 2014, 1:42 pm, celkově upraveno 5

Uživatelský avatar
 
Příspěvky: 528
Registrován: květen 21, 2012, 7:28 pm
Bydliště: Ústecký kraj

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od feryk » prosinec 22, 2014, 1:33 pm

Z toho obrázku jsem to pochopil tak, že postavy zrudnou, protože se dotýkají sebe navzájem, kdy jak píšeš, jsou oba objekty rotatedrectangle, tak to bere colisi jak meče, tak jiné postavy, nebo ne??
Aktuální projekty v RM VXA:
: Bludný holanďan ... 100 % hotovo : http://uloz.to/xptFokkX/bludny-holandan-v1-03-exe
: TOW I: Escape from The Chaos ... 25 % hotovo

Více na https://www.feryk.cz
Fb: https://www.facebook.com/feryk.cz

Uživatelský avatar
 
Příspěvky: 1282
Registrován: duben 27, 2009, 6:54 pm
Bydliště: SR

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od JKlena » prosinec 22, 2014, 7:57 pm

Sorci nechápu to ale testnu to v praxi s nejakými reálnými čísly a snad to pude.
EDIT:
Nesedí mi to:
Kód: Vybrat vše
t = (A.x - C.x)/(u.x – v.x)

A [2, 5]
B [10, 7]

C [5, 3]
D [7, 10]


t = (2 – 5) / (10 – 7);
t = -3 / 3 = -1;

t = (5 – 3) / (7 – 10);
t = 2 / -3 = -0,6666


EDIT2:
Odpoveď nájdená:
Kód: Vybrat vše
public bool isLeft(Point a, Point b, Point c){
     return ((b.x - a.x)*(c.y - a.y) - (b.y - a.y)*(c.x - a.x)) > 0;
}


pokád je >0 tak je bod nalevo od prímky, pokád je <0 je napravo, pokád je 0 tak leží na prímke

Feryku, reaguje to jen na to na co chci aby to reagovalo. A mam tam jen kontrolu mece voci vsem potavam.

Uživatelský avatar
 
Příspěvky: 1282
Registrován: duben 27, 2009, 6:54 pm
Bydliště: SR

Re: [C# XNA] Seeker of Truth (pracovní název)

Příspěvek od JKlena » prosinec 23, 2014, 12:58 am

Takže štastlivo oznamujem že nový collision detection je super a vychytaný :)
Práce na bojovem systéme možú započat. ^^

Tady máte kód, keby ste ho nekto chceli v budúcnosti využit.
Kód: Vybrat vše
public class CollisionLine
    {
        public Vector2 Origin;
        public Vector2 Length;
        public float X { get { return Length.X; } set { Length.X = value; } }
        public float Y { get { return Length.Y; } set { Length.Y = value; } }

        public CollisionLine(Vector2 originPoint, Vector2 lenght)
        {
            Origin = originPoint;
            Length = lenght;
        }

        public bool Collides(CollisionLine colLine)
        {
            Vector2 A = colLine.Origin;
            Vector2 B = colLine.Origin + colLine.Length;
            Vector2 C = Origin;
            int firstPoint = (int)((B.X - A.X) * (C.Y - A.Y) - (B.Y - A.Y) * (C.X - A.X));

            C = Origin + Length;
            int secondPoint = (int)((B.X - A.X) * (C.Y - A.Y) - (B.Y - A.Y) * (C.X - A.X));

            A = Origin;
            B = Origin + Length;
            C = colLine.Origin;
            int thirdPoint = (int)((B.X - A.X) * (C.Y - A.Y) - (B.Y - A.Y) * (C.X - A.X));

            C = colLine.Origin + colLine.Length;
            int fourthPoint = (int)((B.X - A.X) * (C.Y - A.Y) - (B.Y - A.Y) * (C.X - A.X));

            if ((firstPoint == 0) || (secondPoint == 0))
            {
                if ((thirdPoint < 0) && (fourthPoint > 0))
                    return true;
                else if ((thirdPoint > 0) && (fourthPoint < 0))
                    return true;
            }
            else if ((thirdPoint == 0) || (fourthPoint == 0))
            {
                if ((firstPoint < 0) && (secondPoint > 0))
                    return true;
                else if ((firstPoint > 0) && (secondPoint < 0))
                    return true;
            }
            else if ((firstPoint < 0) && (secondPoint > 0))
            {
                if ((thirdPoint < 0) && (fourthPoint > 0))
                    return true;
                else if ((thirdPoint > 0) && (fourthPoint < 0))
                    return true;
            }
            else if ((firstPoint > 0) && (secondPoint < 0))
            {
                if ((thirdPoint < 0) && (fourthPoint > 0))
                    return true;
                else if ((thirdPoint > 0) && (fourthPoint < 0))
                    return true;
            }

            return false;
        }
    }

PředchozíDalší

Zpět na Projekty ve všem ostatním

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník