RedziQ

Zasłużony
  • Zawartość

    1599
  • Rejestracja

  • Wygrane w rankingu

    16

Ostatnia wygrana RedziQ w Rankingu w dniu 5 Maj

RedziQ posiada najczęściej lubianą zawartość!

Reputacja

393 Lubiany

O RedziQ

  • Tytuł
    Tripaloski

Informacje

  • Płeć
    Mężczyzna
  • Nick z minecraft
    RedziQ

Ostatnie wizyty

7425 wyświetleń profilu
  1. RedziQ

    Zapowiedź mojej książki

    Moze zamiast straszyc jakims tekstem o zdjeciach, ktorym osoby, ktore chca skopiowac zdjecia i tak sie nie przejma - daj jakis podpis na kazdym z nich albo watermark, to o wiele bardziej skuteczne jesli zostanie zrobione dobrze. Troche niskiej jakosci te rysunki.
  2. elo byłeś fajny :))

  3. Papa RedziQ. Fajnie że byłeś z nami na krainie. Sukcesów w życiu! :D

  4. Baj, powodzenia w życiu i dużo zdrowia i sukcesów mam nadzieję że jeszcze pogramy jeszcze :D! 

  5. Co tu się dzieje wogóle? Whot?

  6. wiem że się spóźniłam ;-;

    ale pomimo tego to powodzonka w życiu, sukcesów, i dziękuję że byłeś z nami na krainie

    1. RedziQ

      RedziQ

      tak naprawdę to każdy sie spoznil o miesiac conajmniej wiec sie nie spoznilas ¯\_(ツ)_/¯

      Dzięki za miłe słowa

    2. Koniek

      Koniek

      ale redssu, ja mialem najwieksze wyczucie ;)

  7. Dzięki, że byłeś z nami Redziu <3

  8. policyjna prowokacja

  9. RedziQ i tak za bardzo nie znam Cie bo ty grales wczesniej ale i tak super ze przyczyniles sie do rozwoju serwerka i za to ze ogolnie byles. 

  10. Kc Bit 😍😍

  11. Tae

    Dziękuje RedziQ za pomoc, bo o ile się nie mylę, od Ciebie taką kiedyś dostałam (#AlzheimerWMłodymWieku u mnie jest serio) 😱 Ogólnie zawsze wszyscy mogliśmy na Ciebie liczyć! Trzymaj się! 😊

  12. dzieki za to ze byles redssu

    1. RedziQ

      RedziQ

      dzieki za mile slowo

  13. RedziQ

    Ucieczka z Auschwitz

    Myślę, że lepiej podać jako źródło wywiad z Kazimierzem Piechowskim, a nie kanał Historii Bez Cenzury. Wywiad jest oprawiony w szczegóły i szczerzę polecam. https://www.youtube.com/watch?v=FZ16mfueK6I
  14. Moim celem w tym "wyzwaniu" było stworzenie najbardziej realistycznego nierealistycznego symulatora hakowania. Poniekąd mi się udało, inne gry bardziej skupiały się na tym, by gameplay był ciekawy, by grafika była na dobrym poziomie. Ja postanowiłem skupić się całkowicie na fabule oraz jednym z najważniejszych narzędzi hakera - terminal. Zauważyłem jednak, że gdy gra będzie tylko terminalem, nie będzie za bardzo przyjazna, więc zrobiłem coś na wzór systemu operacyjnego. Jak powszechnie wiadomo, w większości systemów operacyjnych z GUI, każdy ma swego rodzaju "okna", które są ułatwieniem komunikacji między programem a użytkownikiem. Można je zamykać, minimalizować, maksymalizować i co najważniejsze przeciągać i rozszerzać. Dokładnie takie same funkcje powinny mieć moje okna. Dzisiejszym tematem wpisu będzie obsługa przeciągania i rozszerzania okien. Jako że biblioteki wspomagające takie czynności (na przykład jQuery) są powyżej limitu wielkości plików, musiałem napisać obsługę przeciągania w czystym JavaScript'cie. Jak ja postanowiłem to zrealizować? Po kliknięciu górnej, jaśniejszej części okna, zapisywana jest informacja, które okno jest obecnie przeciągane i punkt zaczepienia - gdzie okno zostało kliknięte. Później, kalkulowane jest przesunięcie względem klikniętego punktu, a lewego górnego rogu okna. Następnie, czeka się na ruch kursora i jeśli nastąpi, oblicza się przesunięcie nowej pozycji względem punktu zaczepienia. W ten sposób powstają dwie linie, a po ich zdublowaniu powstaje równoległobok. Dwa sąsiadujące kąty są odpowiednio: starym punktem lewego górnego rogu i nowy punkt lewego górnego rogu okna. Oczywiście okno jest jednocześnie przesuwane ze starego punktu do nowego. Proces powtarza się tak długo, aż nie zostanie zarejestrowane zdarzenie puszczenia lewego klawisza myszki, wtedy informacja o punkcie zaczepienia jest usuwana. Podczas przeciągania okna może ono nachodzić na obszary, na które nie powinno (czytaj: wyjść poza ekran), żeby tego uniknąć, musimy sprawdzić też, czy żadna z krawędzi nowego położenia okna nie wychodzi poza ekran. Oczywiście nie ma funkcji, która by to sprawdzała, natomiast możemy posłużyć się tutaj prostą matematyką. Jakie informacje znamy? Wiemy, jak wysoki i szeroki jest ekran, wiemy też, gdzie znajduje się jego lewy górny róg. Potrafimy określić również lewy górny róg okna, które jest przeciągane, oraz jego wysokość i szerokość. W ten sposób musimy sprawdzić cztery rzeczy: Czy współrzędna X lewego górnego rogu ekranu jest mniejsza niż współrzędna X lewego górnego rogu okna, jeśli tak nie jest, oznacza to, że lewa krawędź okna wystaje poza lewą krawędź ekranu. Jeśli tak się wydarzy, ustawiamy nową współrzędną X okna na współrzędną X ekranu. Czy współrzędna X prawego górnego rogu ekranu jest większa niż współrzędna X prawego górnego rogu okna, lecz musimy znać współrzędną X prawego górnego rogu okna - obliczamy ją poprzez dodanie współrzędnej X lewego górnego rogu i szerokości elementu. Jeśli współrzędna X prawego górnego rogu ekranu jest mniejsza, prawa krawędź okna wystaje za ekran. Aby temu zapobiec, musimy ustawić współrzędną X lewego górnego rogu okna na różnicę współrzędnej X prawego rogu i szerokości okna. Dokładnie tak samo jest z współrzędną Y, lecz tutaj zamiast szerokości używamy wysokości. Dodatkowo, do współrzędnej Y ekranu dodajemy wysokość paska zadań na górze ekranu, a od jego wysokości, odjąć wysokość paska zadań. Rozszerzanie okien ułatwia nam CSS i właściwość resize. Natomiast musimy ustawić jak bardzo możemy rozszerzyć element właściwościami max-width i max-height. Jak je obliczyć? Zakładając, że okno jest relatywne w stosunku do ekranu, musimy (dla max-width (maksymalna-szerokość)) odjąć sumę przesunięcia w osi X względem lewego boku ekranu a lewego boku okna ( ■ kolor zielony) i szerokości okna od szerokości ekranu. W ten sposób możemy wyliczyć odcinek zaznaczony na zdjęciu kolorem niebieskim ■. Dokładnie tak samo, z uwzględnieniem paska zadań na górze, robimy obliczenia dla osi Y. W ten sposób uzyskujemy zamierzony efekt, okno nie może wyjść poza ekran i nie może być rozciągnięte poza ekran. Pozostaje kwestia obsługi drugiego ekranu i przenoszenia na niego okien. W moim przypadku, do przenoszenia okien na drugi ekran dodałem specjalny przycisk na górnej części okna (niebieskie koło). Gdy okno znajduje się na drugim ekranie, po prostu zmieniamy szerokość i wysokość ekranu, oraz położenie współrzędnych X i Y lewego górnego rogu. Tu pojawia się kolejny problem, gracz może rozciągnąć okno na pierwszym, większym ekranie i przenieść na drugi, mniejszy. Jeśli okno będzie większe niż drugi ekran, wyjdzie poza obszar dozwolony i nasze wyliczenia na dużo się nie przydadzą. Dlatego przy przenoszeniu okna na mniejszy ekran, musimy sprawdzić, czy wysokość okna jest większa niż wysokość ekranu lub czy szerokość okna jest większa niż szerokość ekranu. Jeśli tak jest - oznaczamy okno jako zmaksymalizowane i zmniejszamy je tak, by były wysokością i szerokością ekranu. Mimo że problem ten rozwiązałem dość szybko, w sposób taki jaki tutaj to ukazałem, musiałem wspomóc się kartką z rysunkiem schematycznym ekranu i okien oraz wszystkich współrzędnych wypisanych we właściwych miejscach. Myślę, że wybrałem dość "trudny" problem na początek tej serii, lecz mam nadzieję, że po przeczytaniu dwa razy całego wpisu, będąc skupionym w stu procentach, każdy zrozumie jak rozwiązać ten problem. Jeśli masz jakieś pytania na temat gry, konkursu, czy czegokolwiek innego związanego z tym tematem, chętnie na nie odpowiem w komentarzu pod wpisem.
  15. RedziQ

    Wstęp - GameDev

    W sumie nie zauważyłem, jutro zmienię.