Skocz do zawartości
  • Ogłoszenia

  • Gdzie świętować urodziny GMCLANu   31 użytkowników zagłosowało

    1. 1. Gdzie świętować urodziny GMCLANu


      • Warszawa (bo w centrum)
      • Szczecin (bo tam mieszka Ranma i narodził się GMCLAN)

    Żeby zagłosować w tej ankiecie, prosimy się zalogować lub zarejestrować. Zobacz temat
Markar

Pytania Markara

Rekomendowane odpowiedzi

Siemka, będę tutaj zamieszczał swoje pytania dotyczące Xenona.

 

Okej, pytanie number łan: jak zarejestrować jakiś obiekt do aktorów? Mam funkcje render() i update() napisane już, ale kody z tutków jakby troszkę nieaktualne :(

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

class Player : public XE_ACTOR2D
{
public:
Player();
~Player();
void Render();
void Update();
};

Player::Player( XE_VECTOR pos )
{
// Game.Describe( this, "Player" ); // cos takiego powinno tu trafic, aby okreslic jakiej klasy jest aktor. aktualnie nie moge zajrzec do dokumentacji ani kodu, wiec sam sprawdz
Position = pos;
}

Player::~Player()
{
Game.Message( "Object: killed :<" );
}

Player::Render()
{
DrawSprite();
}

Player::Update()
{
Direction.Alpha += 90 * XE_EVENTS::Use().DeltaTime;
}

 

Game.RegisterActor( "Player", new Player( XE_VECTOR( 100, 100 ) ) );

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Działa, dzięki. Aktor sam się kasuje kiedy robimy Game.Cleanup()?

Pytanie namber two: Kiedy zmieniam sprita obiektu

 Sprite = Game.Sprites.Access( "Firework" );

i wyłączę później grę, raczy mnie tym przykrym errorem.

Co robić?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

mechanizm zarzadzania sprajtami aktora jest nie do konca ukonczony (nie jest polaczony z automatem, przez to, ze XE_ACTOR2D dziedziczy po glownym abstrakcyjnym XE_ACTOR bez sprajta itp.), wiec w destruktorze daj:

Sprite = XE_SPRITE();

 

i owszem, Game.Cleanup() niszczy aktorow automatycznie.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Ok, wszystko pięknie działa.

Ale jest pytanie namber tri: jak ustawić te kolizje dla boxów, nie czaję tego.

Na kółkach wszystko pięknie ładnie działa ale nie wiem jak zrobić żeby na boxach też działało.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Trzeba wtedy zaktualizowac bounding boxa sprajta po zmianie jego wartosci zmiennych 'Bbox*', bo one odpowiadaja za prostokat kolizji.

Sprite.BboxUpdate();

A jesli chcesz uzyc lepszej kolizji ksztaltow (bierze pod uwage takze obrot i skale sprajta) to masz gotowy najnowszy przyklad: 'Polygon Collision Detection', z ktorego bierzesz kod z aktora, a w grze zamiast Game.Collision2D() z parametrem XEF_BOX dajesz XEF_SHAPE.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jak zrobić żeby tło obrazka(w tym przypadku kolor różowy) było przezroczyste?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Obrazek wtedy musi byc w formacie png lub przekonwertowany z png z przezroczystością. W gimpie lub ps możesz usunąć kolor, zostawiając jego miejsce jako przezroczyste.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×