RedziQ

Junior Administrator
  • Zawartość

    1594
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    15

Ostatnia wygrana RedziQ w Rankingu w dniu 5 Marzec

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

Reputacja

382 Lubiany

O RedziQ

  • Tytuł
    Space Boy

Informacje

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

Ostatnie wizyty

6745 wyświetleń profilu
  1. 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
  2. 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.
  3. RedziQ

    Wstęp - GameDev

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

    Wstęp - GameDev

    Za moje miejsce kwota to 150 Dolarów amerykańskich. W przybliżeniu 600 zł.
  5. Cześć, na początku tego roku, a dokładniej przez cały styczeń uczestniczyłem w Gynvael's Winter GameDev Challenge 2018/19 - konkursie na najlepszą grę napisaną w JavaScript/WebAssembly. Zasady tego konkursu były dość nietypowe: cały pakiet musiała liczyć maksymalnie 125 kilobajtów, co uniemożliwiało użycie dużych bibliotek pomagających w tworzeniu gier (na przykład silnik grafiki trójwymiarowej [3D]) obowiązkowym elementem, który musiał zostać dodany do gry, był także baner symulujący dwa ekrany komputera (na szczęście rozmiar tej grafiki nie był wliczany w limit rozmiaru) cała gra mogła w sumie wykorzystywać 20 folderów lub plików (to znaczy, mogła mieć 2 foldery i 18 plików na przykład). nazwa każdego pliku nie mogła przekraczać 8 liter długości. standardowo, cała gra musiała być po angielsku gra musi być przystosowana do grania na ekranie o rozdzielczości 1920 na 1080 Swój projekt można było wysłać do 31 stycznia. Najważniejszą zasadą był temat gry - nierealistyczny symulator hakowania. Główne założenie było takie, że gracz jest hakerem/technikiem kosmicznej floty, której pomaga podczas eksplorowania przez nią opuszczonej stacji kosmicznej. Oczywiście, nie mogło obyć się bez nagród. Za pierwsze miejsce można było zgarnąć 250 dolarów amerykańskich. Za ostatnie, 6 miejsce - 75 dolarów. O konkursie dowiedziałem się około drugiego stycznia, więc miałem prawie miesiąc na przygotowanie gry. Mówiąc szczerze, brałem udział w konkursie tego typu po raz pierwszy i kompletnie nie wiedziałem, od czego zacząć. Na moje szczęście, termin w którym miałem ferie zimowe, wypadał w połowie stycznia, więc zyskałem dużo cennych godzin, w których mogłem poświęcić czas na rozwijanie gry. W tym wstępnym wpisie nie będę opowiadał o tym jak przebiegało tworzenie gry, natomiast skończyłem 4 dni przed terminem - w mojej opinii to duży zapas czasu. Do czego zmierzam - zająłem trzecie miejsce w tym konkursie i oceniający polecili mi lekkie podrasowanie gry i wstawienie jej na jakąś platformę cyfrowej dystrybucji, mam zamiar tak zrobić, natomiast problem polega na tym, że gra była pisana tak, aby plik z grą ważył jak najmniej, każdy znak to już jeden bajt, a takich bajtów mogło być w sumie 128000, więc postanowiłem napisać ją od nowa. Chciałbym dzielić się z wami najnowszymi usprawnieniami, które zostały dodane do gry oraz problemami napotkanymi podczas implementacji ich do gry. Myślę, że będzie to na swój sposób oryginalny temat bloga na tym forum i zaciekawię nim kilka osób. Jeśli macie jakieś pytania na temat gry, konkursu, czy czegokolwiek innego związanego z tym tematem, chętnie na nie odpowiem.
  6. Jeden zasadniczy plus, który powinieneś tutaj wymienić, to możliwość wchodzenia na serwery premium. W przypadku kupienia premium mamy też przecież przywilej, że nasz nick nie zostanie zarejestrowany (w sensie, wiele serwerów resetuje hasło, gdy ktoś zarejestrowal ci twój nick.) Snapshoty są dostępne dla launcherów nonpremium. Tylko takie mniej zaawansowane ich nie mają.
  7. RedziQ

    ajj ten internet...

    Tak, tylko piszesz, że na telefonie jest wszystko okej, a na komputerze nie. Skoro tak, to pytam jak diagnozujesz to, że na telefonie jest okej, ponieważ na ogół nawet jak masz wolniejszy internet to i tak jest w miarę normalnie. Może to nie wina komputera, tylko całej sieci - routera.
  8. RedziQ

    ajj ten internet...

    Jak diagnozujesz, czy na telefonie jest wszystko okej? Przecież nie masz na nim zainstalowanego Minecrafta.
  9. Xiaomi: Lepsza bateria (o 700mAh) Obsługuje standard Quick Charge 3.0 (Samsung nie obsługuje) Na start co najmniej 6 Gb RAMu, możliwość wybrania 8 Gb (Samsung na start 4 Gb, możliwość 6 Gb) Android 8.1 (Samsung Android 8.0) Lepszy Procesor Dwie lampy błyskowe LED z tyłu Większa rozdzielczość wideo (4k) (Samsung: FullHD) Samsung: Trochę Większy (o 4mm) Chudszy (o 1.30mm) Lżejszy (o 14 gramów) Lepszy tylny aparat (24Mpx) (Xiaomi 12Mpx) Trzy tylne aparaty Lepszy przedni aparat (24Mpx) (Xiaomi 20Mpx) Lampa błyskowa z przodu Komunikacja NFC (zbliżeniowe m.in. płacenie) Źródło: serwis mgsm.pl
  10. Cześć. Chciałbym się zapytac czy masz czas?

     

  11. RedziQ

    Gta 5

    Dlaczego? Przecież gra zanim wyjdzie na jakąkolwiek konsolę jest uwaga, testowana. Jeśli pojawi się jakiś błąd, to chyba po to są aktualizacje?
  12. RedziQ

    Pomóżcie

    Kilka propozycji gier Forza Horizon 3 lub 4 Need for Speed: Payback My Memory of Us Outlast 2 Call of Duty: Black Ops 4 Firewatch Rocket League The Escapists 2 Może wystarczą jakieś klocki, na przykład Lego Technic dla bardziej zaawansowany? Takie zestawy często składa się dłużej niż kilka minut. Na przykład model jakiegoś samochodu. Może przydałby ci się nowy pad? Nie lubisz czasem pograć na padzie w gry na komputer? -> Bezprzewodowy adapter dla padów od xboxa Może lepiej kupić sobie jakąś fajną książkę?
  13. Wiadomość wygenerowana automatycznie. Propozycja została odrzucona
  14. Była wcześniej podobna propozycja, została odrzucona, więc tą też pozwolę sobie odrzucić.
  15. Ej jak zdobyć uprawnienia żeby zmienić profilowe w zdjęcie animowane

    1. RedziQ

      RedziQ

      Zdjęcie animowane nie może być zdjęciem profilowym.

    2. vDreams

      vDreams

      Jak chciałem zmienić to pisało mi że nie mam uprawnien

    3. RedziQ

      RedziQ

      Więc mówię Ci, że nie ma takiej możliwości.