2010-06-23 13 views
5

Po prostu zaczynam programowanie w C++ i chcę spróbować utworzyć klon najeźdźców przestrzeni w C++, chcę uniknąć używania bibliotek gier i rzeczy, które rozwiązałyby wiele problemów (jak pętle gry i matematyka wektorowa itd.) więc sam mogę sobie z tym poradzić, ale nie mam pojęcia, jak zacząć rysować rzeczy na ekranie.Czy istnieje prosta biblioteka dla C++ do narysowania na ekranie?

Zastanawiam się, czy istnieje dobra biblioteka, której powinienem użyć, aby po prostu pozwolić sobie na narysowanie linii lub grafiki na ekranie lub czy mogę to zrobić bez korzystania z biblioteki?

bym wdzięczni za wszelkie rady,

Dzięki.

+2

Jaki system operacyjny? –

+4

C++ nie może zrobić * niczego * bez biblioteki. Podaje bardzo niewiele założeń dotyczących maszyny, na której będzie działać; w szczególności nie zakłada, że ​​ma jakąkolwiek możliwość graficzną. –

+0

Może to być przypadek, w którym iteracyjny rozwój jest lepszym podejściem, zaczynając od biblioteki, która rozwiązuje większość problemów dla ciebie, po to, aby uzyskać minimalną funkcjonalność gry, a następnie powoli zastępując każdy element dostarczony przez bibliotekę czymś, co sam napisałeś . Wadą jest to, że twoja ostateczna struktura będzie bardzo podobna do konstrukcji oryginalnej biblioteki, ale pozytywem jest to, że zawsze będziesz miał funkcjonalny program, do którego będziesz mógł wrócić. –

Odpowiedz

6

polecam albo Allegro czy SDL, chociaż są one głównie 2D:

Allegro:
http://alleg.sourceforge.net/

SDL:
http://www.libsdl.org/

+0

Użyłem obu i oba są dość łatwe w użyciu, jeśli znasz C++. – daveangel

+0

To jest najlepsza książka do używania Allegro do gier: http://www.amazon.com/Game-Programming-All-Jonathan-Harbour/dp/1598632892/ref=ntt_at_ep_dpi_1 – daveangel

2

PixelToaster (był OpenPTC/TinyPTC) jest jednym z moich ulubionych. Jest to dość minimalistyczne i bardzo łatwe do rozpoczęcia.

3

Przypuszczam, że SDL to prosta biblioteka, której szukasz. Jeśli chcesz, możesz z grubsza pracować z ekranem jako framebufferem, gdzie modyfikujesz piksel po pikselu, jeśli naprawdę chcesz. Jest to biblioteka C, ale jest zorientowana obiektowo, więc dobrze jest pracować także w C++.

0

Czy nie byłoby ciekawiej zrobić to, drukując 80x? znaki ASCII na ekranie co x. sekundy?

1

Moim zdaniem, rozpoczęcie od razu z biblioteką GUI, jak wxWidgets (www.wxwidgets.org) jest dobrym pomysłem, ponieważ często są one niezależne od platformy i zapewniają dobre mechanizmy rysowania - plus wszystkie inne elementy GUI, które możesz przydatne później.

2

Istnieje wiele prostych bibliotek. SDL i Allegro zdobyć dużo wspomina już, ale istnieje wiele innych, a także:

  • OpenGL
  • DirectX (tak, tak, wiem, nie jest „proste”, ale na pewno dostaje zadanie)
  • Cairo (dla wektorowej)
  • SFML (AN SDL-alike że ma jakieś prymitywy ciągnienia)
  • GGI
  • Qt (który robi dużo więcej niż Widżety i jest wysoce modułowe)
  • DirectFB (który działa bez GUI gospodarza jak X.org)

i wiele innych będę kopać siebie zapominając.

+0

OpenGL jest jednak bardzo niskiego poziomu, Nie jestem pewien, czy facet, który chce stworzyć grę, chce to wszystko przejrzeć. SDL już działa na OpenGL, więc myślę, że to może być substytut. Również DirectX to platforma wyłącznie dla systemu Windows, OpenGL jest wieloplatformowy. :) –

+0

@Johannes Jensen: SDL nie działa * na * OpenGL, o ile wiem. To * ułatwia * OpenGL, ale tak naprawdę * nie używa * go. Rzeczywiście, jeśli nie było jakiejś poważnej zmiany w API, nie jestem świadomy, nie ma nawet rysunków podstawowych. Daje ci tylko powierzchnię rastra do rysowania. Powiedziałbym nawet, że SDL jest * niższy * - poziom niż OpenGL z tego powodu. (I wspominam o DirectX tylko dla kompletności). – greyfade

+0

SDL może tworzyć konteksty OpenGL, ale czysty SDL używa (bardzo powolnego) renderera oprogramowania. – orlp

Powiązane problemy