Gra 2D, część 11: Edytor poziomów cz. 1

15.03.2011 - Marcin Milewski
TrudnośćTrudność

Uruchamianie edytora

Skoro klasa Editor jest gotowa, to zobaczmy jak należy utworzyć jej instancję. Tworzenie nowego poziomu rozpoczynamy zainicjowania zmiennej level szablonem poziomu, który jest w pliku data/new.lvl. Następnie ustawiamy aktualny stan na instancję klasy Editor. Poniższy kod dotyczy pliku App.cpp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "HallOfFame.h"
#include "LevelChoiceScreen.h"
#include "editor/Editor.h"         // NOWE
(...)
void App::Run() {
(...)
    // m_app_state.reset(new MainMenu());
 
    LevelPtr level(new Level());
    level->LoadFromFile("data/new.lvl");
    m_app_state.reset(new Editor(level));
 
    m_app_state->Init();
    m_app_state->Start();
  

Podsumowanie

Kolejny artykuł z cyklu tworzenie gry w stylu Mario dobiegł końca. Powstał w nim podstawowy edytor, dzięki któremu dodawanie nowych poziomów do gry jest tak proste jak klikanie myszką na ekranie. Prace zaczęliśmy od utworzenie klasy Vector2 reprezentującej dwuwymiarowy wektor matematyczny, który później wykorzystaliśmy do utworzenia typów Position oraz Size. Następnie pracowaliśmy nad metodami klasy Level tak, aby dało się nie tylko odczytywać poziom z pliku, ale także zapisywać go na dysk. Usprawniwszy tę klasę zabraliśmy się za zmiany w Game, aby i ją nieco doszlifować. Po zakończeniu prac wstępnych przyszedł czas na klasę Editor.

Poniżej znajduje się film przedstawiający efekt prac w tym artykule.

Masz pytanie, uwagę? A może zauważyłeś błąd? Powiedz o tym na forum.

Pobierz końcowy kod źródłowy do tego artykułu.

Zadania dla dociekliwych

  1. Przełączanie się między grą a edytorem wymaga znajomości "tajnego" klawisza. Podobnie zresztą jak wyłącznie GUI. Stwórz pomoc, która będzie wyświetlała się podczas włączania edytora oraz będzie dostępna pod klawiszem "h".
  2. Po uruchomieniu załączonego kodu, program od razu przechodzi do edytora. Dodaj do głównego menu opcję "Edytuj poziom", wyzwalającą tę akcję.
  3. Dodaj napis "EDYTOR" pojawiający się na sekundę na ekranie po powrocie z gry do edytora poziomów.
0
Twoja ocena: Brak

Copyright © 2008-2010 Wrocławski Portal Informatyczny

design: rafalpolito.com