...: Strona :...
News
Archiwum
Redakcja
Chat ( 31 )
Forum
Księga Gości
Imprezy
Linki
Wymiana
Radio

- Download -
Programy
Gry
Zasoby
Music
Sound
Inne

- RPG Maker -
RPGUNITE
RPGMZ
RPGMV
RPGVXAce
RPGVX
RPGXP
RPGME
SimRPG95
RPG95
WRPGE

- Projekty -
Commander
Eden Universe
Pogromca II
Virtua Twierdza

- Krypta -
Kompendium
Scenariusze
Questy
Artykuły

...: Buttony :...
Goniec RM (Archiwum)
Dragon Ball Nao
M.U.G.E.N Samouczek
Pokemon Crystal PBF
Pillars of Eternity POLSKA - największy portal Pillars of Eternity (Project Eternity)
Kroniki Fallathanu - Prawdziwy mmoRPG w przeglądarce



Modules -  the greatest and ultimate place for every tracked-music sympathizer
Dragon Ball Great


Informacje || Problemy z RPGMV || Zglos nowe materialy
RPG Maker :: RPG Maker MV

Zmiana współrzędnych kamery


Wstęp

Hej,
Pomyślałem, że się podzielę skryptami, które wymyśliłem podczas tworzenia mojej gry FloppyCat. Dla przypomnienia. Skrypty w MV są tworzone w języku JavaScript (skrótowo JS) i można je implementować (czyli wrzucać) do własnego pluginu ( Jak tworzyć plugin? ) (kliknij) albo wykorzystać na zdarzeniach. Ten w moim przypadku najlepiej sprawdził się, gdy używany był w pluginie, ale jeśli chcecie to możecie probować to ustawiać na zdarzeniach.

Opis
Czasami (a przeważnie w platformówkach) przydaje się przesunąć na stałe współrzędne kamery, tak aby postać była widoczna bardziej w rogu ekranu lub w innym miejscu.



Kod
Tak na prawdę to sprawa jest prosta. Wystarczy podmienić zwracaną wartość w Game_Player.prototype.centerX, które domyśłnie robi wyśrodkowanie w osi X oraz zmienić wartość w Game_Player.prototype.centerY, który robi to samo, ale w osi Y.

Obie funkcje domyślnie wyglądają tak:


W razie czego $gameMap.tileWidth() oraz $gameMap.tileHeight() domyślnie zwracają wartość 48 (to jest wielkość kratki 48x48) Dla X bierze szerokość graficzną dzieli ją przez szerokość kratki po czym to zmniejsza o 1, a na końcu to wszystko dzieli przez 2; Dla Y w zasadzie dzieje się to samo tylko że zamiast szerokości mamy wysokość.

Domyślne działanie tych funkcji jest takie, aby kamera zawsze starała się być na środku ekranu;

Ja w FloppyCat zrobiłem bardzo prostą rzecz, dzięki, której uzyskałem efekt taki, że kotek jest widoczny 3 kratki od lewej części ekranu. W moim pluginie wpisałem to:



Czyli dosłownie zamieniłem (Graphics.width / $gameMap.tileWidth() - 1) / 2.0; na liczbę 3 i ta cyferka oznacza ilość klatek od lewej. Jeśli chodzi o centerY to tego nie ustawiałem, ale jestem winny powiedzenia jak to działa.

Co z centerX nie ma prolemu że to działa od lewej strony, co z centerY musze powiedzieć, że to działa od góry. Czyli punkt najwyżej położyny jest równy 0, a ten najniżej... no w sumie każdy może mieć inaczej, Także jeśli chcecie ustawić centerY to pamiętajcie, że to liczy od góry.

Jeśli chcecie uzyskać, aby efekt był zapisany wzorem to najłatwiej będzie pobawić się tym co już domyślnie mamy. Np. zmieniając dzielnik 2.0 na inne liczby np. 3.0 aby liczyło po "jednej-trzeciej", albo 4.0 aby kamera była w ćwiartce. itd. - możliwości jest dużo.



Zakończenie
Myślę, że ten skrypt to nic skomplikowanego, a może okazać sie pomocny przy tworzeniu różnych mini gier albo platformówek.


Autor: EnterVPL
Email: entervpl@gmil.com


Twierdza RPG Maker || RPG Maker Polska
2002-2024