[Hướng Dẫn] [Hướng dẫn] Event Touch Event

TkTsTkTs Posts: 482Registered
[align=center]Dĩ nhiên là tạo event đầu tiên rồi.[/align]

[align=center]gYpL0MV.png[/align]
[align=center]Hay còn gọi là [Event Đụng] và [Event Bị đụng][/align]
[align=center]Cách setup sơ bộ cho cả 2 event. *khoan để ý tới 1234[/align]

[align=center]v9G1Zz1.png[/align]
[align=center]Vì là [Event Đụng] nên để kiểu Trigger là Parallel để nó có thể thực hiện việc kiểm tra khi đang di chuyển[/align]


[align=center]peRA7Eh.png[/align]
[align=center]Vì là [Event Bị đụng] nên nó vô dụng, chỉ cần setup 2 trang (1 di chuyển ngẫu nhiên, 2 sau khi bị đụng)[/align]


[align=center]TZI88JD.png[/align]
[align=center]Trang 2 của cả 2 event[/align]
[align=center]Giờ tới phần 1234. Trước khi vào giới thiệu sơ cái. [/align]
[align=center][Event Đụng]id là 2[/align]
[align=center][Event Bị đụng]id là 1 [/align]

[align=center]
$game_map.events[@event_id].x


$game_map.events[@event_id].y
-Hai Script Call này dùng để xác định vị trí X và Y của event trên map. Thay @event_id = id của event. (nếu để nguyên @event_id thì nó sẽ lấy id của event đang chứa cái Script Call này)
$game_map.events[@event_id].direction
-Script Call này dùng để định hướng mà event đang quay mặt về, giá trị của nó là 8246 như trên bàn phím Numpad
.abs
-lấy trị tuyệt đối
&& 
-so sánh và
||
-so sánh hoặc
[/align]

[align=center]Vì ETE cần dùng đến vị trí của 2 event trên map nên ta sẽ dùng điểm X,Y để xác định. Hãy nhìn đi!!![/align]
[align=center]q3TMdtP.png[/align]
[align=center]Hình hơi bị sai lol quay lại 90 độ mới đúng (X tăng từ trái sang phải, Y tăng từ trên xuống)[/align]


[align=center]Hãy tưởng tượng 2 chấm đen là 2 event của mình, thế thì để tụi nó đụng nhau thì 2 thằng phải nằm trên cùng một đường thẳng (cùng X hoặc cùng Y) và cách nhau một khoảng <= 1.[/align]
[align=center]Ta sẽ kiểm tra cả 2 trường hợp là cùng nằm trên X hoặc cùng nằm trên Y[/align]
[align=center]
$game_map.events[2].x == $game_map.events[1].x || $game_map.events[2].y == $game_map.events[1].y

[/align]
[align=center]Khi tụi nó đã nằm cùng hàng thì ta tiếp tục kiểm tra khoảng cách giữa 2 event, vì đang làm đụng nhau nên khoảng cách <= 1 nhé.
Nếu như 2 event đều nằm trên X thì ta sẽ dựa vào Y để tính khoảng cách:
($game_map.events[2].y - $game_map.events[1].y).abs <= 1
Nếu như 2 event đều nằm trên Y thì ta sẽ dựa vào X để tính khoảng cách
($game_map.events[2].x - $game_map.events[1].x).abs <= 1
[/align]
[align=center]Lý do tại sao lại có hàm abs ở đây là vì bỏ ra trường hợp [1] đứng sau [2] hoặc đứng trước [2].[/align]

[align=center]CODE HOÀN CHỈNH CHO PHẦN 1[/align]
[align=center]
$game_map.events[2].x == $game_map.events[1].x && ($game_map.events[2].y - $game_map.events[1].y).abs <= 1 || $game_map.events[2].y == $game_map.events[1].y && ($game_map.events[2].x - $game_map.events[1].x).abs <= 1

[/align]
[align=center]Phần 2 là kiểm tra xem thằng [2] có đụng thằng [1] không.[/align]


[align=center]Sau khi tính được vị trí và khoảng cách của [1] và [2], ta sẽ xác định xem hướng của [2] để coi [2] có đang quay mặt về phía [1] không. Xem phần Spoiler ở trên có lệnh .direction để xác định hướng, ta sẽ dùng cái đó để xác định hướng của event.[/align]

[align=center]Lấy ví vụ là [2] đang nằm trên Y = 2 và quay mặt xuống (2), và [1] cũng phải nằm trên Y và Y phải = 3 thì [2] mới thấy được [1]
~> Y của [2] < Y của [1][/align]
[align=center]
$game_map.events[2].direction == 2 && $game_map.events[2].y < $game_map.events[1].y
[/align]
[align=center]CODE HOÀN CHỈNH CHO PHẦN 2 GỒM 4 HƯỚNG
[/align]
[align=center]
$game_map.events[2].direction == 2 && $game_map.events[2].y < $game_map.events[1].y || $game_map.events[2].direction == 8 && $game_map.events[2].y > $game_map.events[1].y || $game_map.events[2].direction == 4 && $game_map.events[2].x > $game_map.events[1].x ||  $game_map.events[2].direction == 6 && $game_map.events[2].x < $game_map.events[1].x


[/align]
[align=center]VẬY LÀ XONG 2 CÁI KIỂM TRA[/align]
[align=center]3 và 4 là các lệnh sẽ chạy khi 2 event đụng nhau. Mình cho 2 event sang trang 2 (còn bạn thì sao?)[/align]

[align=center]
$game_self_switches[[MAP ID, EVENT ID, 'self switch name']] = true/false
- dùng để ON/OFF self switch từ xa
self switch name là A, B, C hoặc D
[/align]
[align=center]Nguồn: rpgmakervxace.net[/align]
[align=center]Edit: tui[/align]

Comments

Sign In or Register to comment.