Było blisko…

1 kryzys za  nami oby ostatni 😀

ładna pogoda szkoła i wciągniecie się w grę sprawiły ze czasu na projekt było mało do tego doszły problemy z kodem, ale mam teraz miesiąc praktyk przez co ilość czasu się zwiększy

co do projektu zacząłem od menu i udało mi się  przysiąc skupić i  ukończyć je

bandicam 2017-03-13 21-59-13-439

może wynik nie jest powalający ale jest to dopiero koncepcja i po uzyskaniu takiego efektu pokazał się banan a to jest najważniejsze 😀

teraz trochę kodu :

warstwa fizyczna( struktura obiektu) dzieli sie na 2 czesci

  1. pasek menu

class menu
{
   public:
 RectangleShape ramka;
   vector < tytul_menu > elementy;
};

2.elementy menu

class tytul_menu
{
public:

bool wysuniete, ptaszek;
Text tytul;

//element menu może posiadać kolejne elementy
vector < tytul_menu > elementy;

//
FloatRect kolizja;
RectangleShape ramka;
RectangleShape tlo;
RectangleShape zaznaczenie;
};

co do konstruktorów to nic specjalnego ot zwykle instrukcje konfigurujace elementy dla zainteresowanych :

kod konstruktorów

oraz warstwa logiczna(odpowiedzialna za kolizje )

tu był wielki problem i nadal jest ponieważ wygląd kodu nie zadowala i brak wsparcia dla bardziej zaawansowanego menu z więcej niż 1 podmenu jednak na dzień dzisiejszy mamy to

for (size_t i = 0; i < elementy->glowne_menu->elementy.size(); i++)
{

if (elementy->glowne_menu->elementy[i].kolizja.contains(mysz2))
{

elementy->glowne_menu->elementy[i].wysuniete = true;
elementy->glowne_menu->elementy[i].tlo.setFillColor(Color::Red);
kolizja_menu = true;
}else
{

elementy->glowne_menu->elementy[i].tlo.setFillColor(Color::Blue);

}

        if (jeżeli elementy są wysunięte i mysz nie jest na pasku menu)
{

             for (size_t j; j = 0; j < elementy->glowne_menu->elementy[i].elementy.size(); j++)
{
if (elementy->glowne_menu->elementy[i].elementy[j].kolizja.contains(mysz2))
{

elementy->glowne_menu->elementy[i].elementy[j].wysuniete = true;
elementy->glowne_menu->elementy[i].elementy[j].tlo.setFillColor(Color::Red);
kolizja_menu = true;

j = elementy->glowne_menu->elementy[i].elementy.size();
}else
{
elementy->glowne_menu->elementy[i].elementy[j].wysuniete = false;                                     elementy->glowne_menu->elementy[i].elementy[j].tlo.setFillColor(Color::Blue);
kolizja_menu = false;
}

}

}
if (!kolizja_menu && !elementy->glowne_menu->elementy[i].kolizja.contains(mysz2))
{
elementy->glowne_menu->elementy[i].wysuniete = false;
}

bardziej czytelna wersja

 

 

 

Reklamy

Wymyślam Kolo na nowo

1470991820_46kbtw_fb_plus

Pomyśleć by można ze wymyślam kolo na nowo i tak poniekąd jest bo w internecie znaleźć można kilkanaście takich programów jest tez biblioteka qt i creator.Jednak żaden program nie będę mógł przystosować pod siebie poza tym jest to świetny pomysł zęby dogłębnie poznać sfml choć co prawda obawiam się ze wraz z czasem ilość kodu może przerosnąć moja osobę i okres tworzenia programu może się strasznie przedłożyć

Dziś przedstawię początek początku 😀
a jest nim klasa odpowiedzialna za wypisywanie informacji do pliku w czasie działania programu


class Konsola
{
SYSTEMTIME st;
string nazwa;

public:
ofstream plik;
Konsola();
void log(string tekst);
void log(int b);
void log(double b);
void log(string tekst, double b);
};

klasa otwiera lub tworzy plik zapisuje date uruchomienia oraz po wywolaniu funkcji wybrana treść

reszta kodu:

consola.cpp

Dam Się Poznać

Wypadało by się przywitać. więc cześć wszystkim

2371850819_przybij_piatke

Natrafiłem na Konkurs Daj się poznać i postanowiłem ze będzie to najlepszy sposób aby motywować się do pisania projektu 😀 bo aby pisać muszę mieć o czym pisać
dsp2017_fb_cover-1024x379

A o czym to ja będę pisał ? o wszystkim i o niczym :

1.Podstawą będą posty o Projekcie a czym jest no własnie wszystkim i niczym :D.Tworząc programiki do grafiki używam biblioteki SFML .Pisanie grafiki zajmuje trochę czasu przez co skupiam się na grafice a nie na samym programie. Spróbowałem przenieść się na jakiś builder ale nie dawał on mi swobody i nie przypadł do gustu. Dlatego postanowiłem napisać coś na podobe painta ,w którym będę mógł rysować obiekty a on będzie przetwarzał je na kod. Kiedyś już próbowałem ugryźć ten problem ale należałem wtedy do ludzi którzy nie robią jeszcze backupu.Nie będzie to jakiś rozbudowany program (jak builder)ale wystarczający by spełniać swoja funkcje stąd nazwa Buldier 😀

2.jakieś ciekawostki z mojego życia i moich zainteresowań.

3. z poligonu na którym będę ,poprzez pisanie małych często bezsensownych programów , testował biblioteki do c++:

-słyszałem o bibliotece boost podobno ma ułatwić mi życie nwm przekonam  się.

– przydatna może się okazać jakaś biblioteka sieciowa .

-coś do przetwarzania danych chociaż by xml .