A4 · 1-sahifa

19-dars: Touch Hodisalari va Virtual Joystik

Junior Web & Game Dev · 7–8-sinf · 4-hafta · Mobil Geyming va Multi-Touch
O'quvchi:
Sinf:
Sana:
1. Sensorli Hodisalar va Sichqoncha Farqi (3 ball)
Touch hodisasi Sichqonchadagi analogi Barmoq bilan ishlash xususiyati
touchstart mousedown Barmoq ekranga tegdi. e.touches massivida saqlanadi
touchmove mousemove Barmoq ekranda siljimoqda. e.preventDefault() talab qilinadi
touchend mouseup Barmoq ko'tarildi. e.changedTouches orqali o'qiladi
2. Brauzer Parazit Harakatlarini Bloklash (2 ball)
CSS touch-action qoidasi:

touch-action: none;

Agar bu CSS qoidasi yozilmasa, mobil o'yinda nima sodir bo'ladi?

JS e.preventDefault():

Nega touchstart va touchmove da preventDefault() chaqirilishi shart?

3. Virtual Analog Joystik Matematikasi (3 ball)
const dx = touchX - centerX;
const dy = touchY - centerY;
const dist = Math.sqrt(dx * dx + dy * dy);

1. Tutqichni doira ichida saqlash (Clamping): agar dist > R bo'lsa, knobX qanday hisoblanadi?

knobX = centerX + (dx / dist) *

2. Harakat uchun normalizatsiya formulasi (-1.0 dan +1.0 gacha):

inputX =

4. Amaliyot: Multi-Touch da Barmoqlarni Ajratish (2 ball)
// Har bir barmoqning o'ziga xos ID raqami (identifier):
for (let i = 0; i < e.changedTouches.length; i++) {
const t = e.changedTouches[i];
if (t.clientX < window.innerWidth / 2) {
joyTouchId = t.; // Barmoq ID si
}
}
10-Ballik Baholash Mezoni (Touch va Joystik):
9–10 ball: Touch hodisalari to'liq tushuntirilgan, clamping va normalizatsiya formulasi to'g'ri, multi-touch identifier yozilgan.
7–8 ball: Touch farqi to'g'ri, joystik formulasida 1 ta kamchilik bor.
5–6 ball: Faqat jadval to'ldirilgan, matematik qismlar qolib ketgan.
Target International School · Vibecoding IT Curriculum 2026 Mobile Touch & Virtual Joystick · 7–8-sinf · 19-dars