Ostatnie wiadomości

Strony: 1 2 3 4 [5] 6 7 8 9 10
41
Warsztat Summer of Code 2018 / Odp: Warsztat Summer of Code 2018
« Ostatnia wiadomość wysłana przez ByerN dnia Lipiec 04, 2018, 11:34:09 »
O, można zgłaszać już rozpoczęte? To się dołączę :)
Projekt rozpoczęty 1 kwietnia. Choć nie ukrywam, że to może być trochę nie fair w stosunku do tych, którzy rozpoczynają teraz. Pisana na własnym silniku (w oparciu o framework Libgdx), ale nie zależy mi na siłowaniu się w tej kategorii :)

Osoba: ByerN
Kategoria: Dowolna gra
Nazwa projektu: TAnima
Link do projektu na warsztat.gd: https://warsztat.gd/projects/tanima

Liczę, że do października to już tam będzie coś fajnego :)
42
Warsztat Summer of Code 2018 / Odp: Warsztat Summer of Code 2018
« Ostatnia wiadomość wysłana przez beermaster dnia Lipiec 04, 2018, 09:41:33 »
Zgłaszam ...

Osoba: Beermaster
Kategoria: Dowolna gra
Nazwa projektu: Isles: Restoration
Link do projektu na warsztat.gd: https://warsztat.gd/projects/Isles_Restoration

... gra na pewno nie będzie w pełni gotowa, ale chciałbym do października przedstawić już coś grywalnego.

43
Projekty zaawansowane / Odp: [Libgdx] TAnima - MMO Rogue-like
« Ostatnia wiadomość wysłana przez ByerN dnia Lipiec 03, 2018, 21:24:07 »
https://www.youtube.com/watch?v=sPT_rTDEBfA
Po długim czasie ruszył serwer TAnimy. Jeśli chcecie zobaczyć jak działa to zapraszam tutaj:

http://tanima-online.com/

Teraz przechodzę do pracy nad zasobami.
Jeśli widzicie jakieś błędy lub macie jakieś uwagi to zapraszam do komentowania :) W ostatniej sekcji na stronie wypisuję błędy i rzeczy do poprawy. Dzięki :)
44
Szkółka / Odp: [Box2D] EdgeShape - problem z definicją/kolizją
« Ostatnia wiadomość wysłana przez cybergod dnia Lipiec 03, 2018, 17:32:31 »
Dzięki za odpowiedź, ale właśnie udało mi się rozwiązać problem.

Więc, rzecz była w tym, że w Box2D współrzędne wierzchołków działają w następujący sposób:
-jeśli kształt (b2PolygonShape, b2EdgeShape, etc.) nie jest dołączony do ciała, to współrzędne traktowane są jako współrzędne świata (globalne)
-jeśli kształt jest dołączony do ciała, to współrzędne wierzchołków traktowane są jako współrzędne lokalne, względem pozycji środka ciała

Wykorzystując powyższe informacje, zmieniłem definicję wierzchołków EdgeShape na następującą (reszta kodu bez zmian):
b2Vec2 v1 = b2Vec2(-size.x/2/32.f, -size.y/2/32.f),
v2 = b2Vec2(size.x/2/32.f, -size.y/2/32.f),
v0 = b2Vec2(-size.x/32.f, -size.y/2/32.f),
v3 = b2Vec2(size.x/32.f, -size.y/2/32.f);

I teraz wszystko działa tak, jak trzeba.
45
Szkółka / Odp: [Box2D] EdgeShape - problem z definicją/kolizją
« Ostatnia wiadomość wysłana przez Avaj dnia Lipiec 03, 2018, 16:36:52 »
Strzał w ciemno, próbowałeś odwrócić kolejność wierzchołków?
46
Szkółka / [Box2D] EdgeShape - problem z definicją/kolizją
« Ostatnia wiadomość wysłana przez cybergod dnia Lipiec 03, 2018, 10:45:13 »
Uczę się właśnie biblioteki Box2D i mam pewien problem. Chcę sobie napisać platformówkę. Udało mi się zrobić ruch gracza po platformach, no ale platformy zdefiniowane jako PolygonShape doprowadzają do tzw. ghost collision, więc powinienem je zdefiniować jako EdgeShape. I tu jest problem: gracz w ogóle nie koliduje z platformą zdefiniowaną jako EdgeShape, ale wyświetla się tam, gdzie ma być. W obu przypadkach platforma ma ustawiony typ b2_staticBody, a pozycję i rozmiar podaję w pikselach i zamieniam później na metry. Nie mam pojęcia co robię nie tak. Do rysowania używam SFML.

Tutaj kod definujący paltformę jako EdgeShape:
void Object::InitAsEdgeBody(b2World *world, sf::FloatRect rect,
b2BodyType type, void *userData, bool originBasedPosition, float friction,
float restitution, bool isSensor)
{
        //parametr rect to pozycja i rozmiar obiektu w pikselach

size = sf::Vector2f(rect.width, 1.f); //rozmiar obiektu w pikselach

b2BodyDef bodyDef;

b2Vec2 bodyPosition;
if (!originBasedPosition) //pozycja liczy się od lewego górnego rogu obiektu
{
bodyPosition.x = (rect.left + size.x / 2) / 32.f; //pixels to meters
bodyPosition.y = (rect.top + size.y / 2) / 32.f; //pixels to meters
}
else //pozycja liczy się od środka obiektu
{
bodyPosition.x = rect.left / 32.f; //pixels to meters
bodyPosition.y = rect.top / 32.f; //pixels to meters
}

bodyDef.position = bodyPosition;
bodyDef.type = type;
body = world->CreateBody(&bodyDef);

b2EdgeShape bodyShape;
b2Vec2 v1 = bodyPosition;
b2Vec2 v2 = b2Vec2((bodyPosition.x*32.f + size.x) / 32.f, bodyPosition.y);

b2Vec2 v0 = b2Vec2((bodyPosition.x*32.f - size.x) / 32.f, bodyPosition.y);
b2Vec2 v3 = b2Vec2((bodyPosition.x*32.f + size.x) / 32.f, bodyPosition.y);

bodyShape.Set(v1, v2);
bodyShape.m_vertex0 = v0;
bodyShape.m_vertex3 = v3;
bodyShape.m_hasVertex0 = true;
bodyShape.m_hasVertex3 = true;

b2FixtureDef fixtureDef;
fixtureDef.friction = friction;
fixtureDef.restitution = restitution;
fixtureDef.isSensor = isSensor;
fixtureDef.userData = userData;
fixtureDef.shape = &bodyShape;
body->CreateFixture(&fixtureDef);
}

Dla porównania kod definiujący działającą platformę jako PolygonShape:
void Object::InitAsRectangularBody(b2World *world, sf::FloatRect rect,
b2BodyType type, void *userData, bool originBasedPosition, float friction,
float restitution, bool isSensor)
{
size = sf::Vector2f(rect.width, rect.height);
b2BodyDef bodyDef;

b2Vec2 bodyPosition;

if (!originBasedPosition)
{
bodyPosition.x = (rect.left + size.x / 2) / 32.f; //pixels to meters
bodyPosition.y = (rect.top + size.y / 2) / 32.f; //pixels to meters
}
else
{
bodyPosition.x = rect.left / 32.f; //pixels to meters
bodyPosition.y = rect.top / 32.f; //pixels to meters
}

bodyDef.position = bodyPosition;
bodyDef.type = type;
body = world->CreateBody(&bodyDef);

b2PolygonShape bodyShape;
bodyShape.SetAsBox(rect.width / 2 / 32.f, rect.height / 2 / 32.f); //pixels to meters

b2FixtureDef fixtureDef;
fixtureDef.friction = friction;
fixtureDef.restitution = restitution;
fixtureDef.isSensor = isSensor;
fixtureDef.userData = userData;
fixtureDef.shape = &bodyShape;
body->CreateFixture(&fixtureDef);
}
47
Warsztat Summer of Code 2018 / Odp: Warsztat Summer of Code 2018
« Ostatnia wiadomość wysłana przez Avaj dnia Lipiec 03, 2018, 00:32:21 »
Osoba: Avaj
Kategoria: Silnik graficzny
Nazwa projektu: Quill3D
Link do projektu na warsztat.gd: https://warsztat.gd/projects/quill3d
48
Warsztat Summer of Code 2018 / Odp: Warsztat Summer of Code 2018
« Ostatnia wiadomość wysłana przez Patrulek dnia Lipiec 02, 2018, 21:58:39 »
Skoro zmienił się regulamin i wchodzą w grę także gry, to zgłaszam udział:

Osoba: Patrulek
Kategoria: Dowolna gra
Nazwa projektu: Fastball
Link do projektu na warsztat.gd: https://warsztat.gd/projects/FastBall
49
Warsztat Summer of Code 2018 / Odp: Warsztat Summer of Code 2018
« Ostatnia wiadomość wysłana przez FilipPlotnicki dnia Lipiec 02, 2018, 20:37:06 »
Zaktualizowałem pierwszy post o szablon zgłoszenia. Co do projektów rozpoczętych, to tak. Kategoria o grach to w zasadzie to co zawsze było WSoC
50
Warsztat Summer of Code 2018 / Odp: Warsztat Summer of Code 2018
« Ostatnia wiadomość wysłana przez beermaster dnia Lipiec 02, 2018, 19:01:05 »
Eeee, a może 4 kategoria "Niedokończone coś co jeszcze nie wiadomo czym będzie ale coś tam działa" ? .... i nie doczytałem ... projekty rozpoczete wcześniej moga brac udział ?

Edit. Jak ma wyglądać zgłoszenie :) ?
Strony: 1 2 3 4 [5] 6 7 8 9 10