feat: add drivable black luxury cars, Apache motorcycles and lane splitting
- Park black BMW, Lamborghini, Mazda and Nissan style cars in the factory yard; Mr Mohammadi now arrives in a Bugatti that becomes drivable once parked; the delivery truck is black. - Add six Apache style motorcycles with a rider, lean and their own handling (BIKE spec, 130 km/h). - Let the player take any traffic car; a garage module owns every drivable vehicle and resets them. - Replace the 3.4 m circle test between vehicles with oriented boxes sized from each model, so contact only happens when bodies touch and bikes can filter between cars; traffic only brakes for its own lane. - Add tests for box collisions, bike handling, traffic lane checks and taking traffic cars. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -28,7 +28,7 @@
|
||||
|
||||
پنج بخش تولید: خمکاری، برش لیزر، رنگکاری، یخچالسازی، مونتاژ؛ ۴۰ کارگر instanced، ابزار و قطعات متحرک، دستگاههای آماده، بستهبندی و بارگیری. کامیون هشت بسته را بار میزند، خارج میشود، مدتی غایب میماند، بازمیگردد و دندهعقب به سکو میرسد. این چرخه تزئینی است؛ امتیاز و موجودی کالا را تغییر نمیدهد.
|
||||
|
||||
مدیر با وانت سفید به سبک KMC T8 وارد میشود، پارک میکند، تا دفتر راه میرود و مینشیند؛ گفتوگوی او بعد از نشستن فعال میشود. گفتوگوی هر محدوده/کارمند معمولاً یک بار در هر عملیات و با نزدیکشدن فعال میشود. برای متن دقیق، `factory.talks` و `greet`/`startMission` در `main.js` مرجعاند.
|
||||
مدیر با بوگاتی مشکی وارد میشود، پارک میکند (از آن به بعد ماشینش سوارشدنی است)، تا دفتر راه میرود و مینشیند؛ گفتوگوی او بعد از نشستن فعال میشود. گفتوگوی هر محدوده/کارمند معمولاً یک بار در هر عملیات و با نزدیکشدن فعال میشود. برای متن دقیق، `factory.talks` و `greet`/`startMission` در `main.js` مرجعاند.
|
||||
|
||||
## خارج از دامنهٔ فعلی
|
||||
|
||||
|
||||
@@ -11,11 +11,13 @@
|
||||
- موبایل joystick و دکمههای F، E و toggle دویدن دارد. E موبایل در مرحلهٔ ready کارت میکشد.
|
||||
- سرعت هدف پیاده ۳٫۴ و دویدن ۶٫۵ متر/ثانیه با نرمسازی است. برخورد دایرهای شخصیت شعاع ۱ متر دارد. مرز جهان با فاصلهٔ ۱۵ متر محدود میشود.
|
||||
|
||||
## ماشین
|
||||
## ماشین و موتور
|
||||
|
||||
همهٔ وسیلههای حیاط کارخانه مشکیاند و سوارشدنی: بیاموی خانواده کنار نقطهٔ شروع، لامبورگینی، مزدا و نیسان در پارکینگ کارکنان، شش موتور آپاچی کنار دفتر، و بوگاتی آقای محمدی پس از اینکه پارک کرد. هر ماشین ترافیک شهر هم با F گرفته میشود و تا reset همانجا که رها شده میماند. کامیون بارگیری تزئینی است و سوار نمیشود. همه در `runtime/garage.js` نگهداری میشوند.
|
||||
|
||||
سوارشدن در فاصلهٔ حداکثر ۴٫۵ متر و خارج پرداخت/مشغولی؛ پیادهشدن در قدرمطلق سرعت حداکثر ۳ متر/ثانیه. UI پیشنهاد پیادهشدن را با شرط محدودتر سرعت زیر ۱ و دستگاه نزدیک نشان میدهد. سمت خروج راننده بررسی برخورد میشود.
|
||||
|
||||
ثابتهای `CAR`: سقف جلو ۵۵٫۶ متر/ثانیه (حدود ۲۰۰ km/h)، عقب ۶، شتاب ۹٫۵، ترمز ۱۴، drag برابر ۱٫۶، فرمان حداکثر ۰٫۵۵ رادیان، wheelBase برابر ۲٫۷. فرمان در سرعت بالا محدودتر میشود. برخورد دیوار دو دایرهٔ جلو/عقب و حرکت زیرگام دارد. تصادف ترافیک سرعت را کم میکند و NPC پس از تماس طولانی حذف/بازپدید میشود. جریمهٔ نقدی، خسارت قابل تعمیر و سوخت وجود ندارد.
|
||||
ثابتهای `CAR`: سقف جلو ۵۵٫۶ متر/ثانیه (حدود ۲۰۰ km/h)، عقب ۶، شتاب ۹٫۵، ترمز ۱۴، drag برابر ۱٫۶، فرمان حداکثر ۰٫۵۵ رادیان، wheelBase برابر ۲٫۷. فرمان در سرعت بالا محدودتر میشود. برخورد دیوار دو دایرهٔ جلو/عقب و حرکت زیرگام دارد. ثابتهای `BIKE`: سقف ۳۶٫۱ (حدود ۱۳۰ km/h)، شتاب ۱۱، wheelBase برابر ۱٫۳۵؛ موتور در پیچ خم میشود. برخورد بین وسیلهها با جعبهٔ جهتدار به اندازهٔ واقعی مدل (SAT در `world/vehicleCollision.js`) است، پس فقط وقتی بدنهها واقعاً به هم برسند سرعت کم میشود و موتور میتواند لایی بکشد. کاهش سرعت به زاویهٔ برخورد بستگی دارد: شاخبهشاخ ۶۰٪، مالیدن کناری تقریباً هیچ. ترافیک فقط برای چیزی که واقعاً در عرض خطش باشد ترمز میکند و NPC پس از تماس طولانی حذف/بازپدید میشود. جریمهٔ نقدی، خسارت قابل تعمیر و سوخت وجود ندارد.
|
||||
|
||||
## پول و محصول
|
||||
|
||||
|
||||
@@ -16,8 +16,12 @@ JavaScript ES Modules، Three.js/WebGL، Vite، HTML و CSS فارسی RTL و Ca
|
||||
| characters.js | createFamily معمولی (پدر/کودک) و robot-only، مفصل و انیمیشن |
|
||||
| factory.js | ساختمان/دکور/کارخانه، کارکنان، موقعیت spawn، talks، مدیر و کامیون |
|
||||
| staff.js | مدل کارکنان مفصلی و crew به شکل InstancedMesh |
|
||||
| car-models.js | سدان خانواده، pickup مدیر و کامیون |
|
||||
| vehicle.js | state و فیزیک آرکید ماشین |
|
||||
| car-models.js | سدان خانواده، کامیون و helperهای مشترک بدنه |
|
||||
| luxuryCars.js | ماشینهای لوکس مشکی به سبک بوگاتی، لامبورگینی، مزدا و نیسان |
|
||||
| motorcycle.js | موتور آپاچی با راکب و بدنهٔ خمشونده |
|
||||
| vehicle.js | state و فیزیک آرکید ماشین (`CAR`) و موتور (`BIKE`) |
|
||||
| vehicleCollision.js | برخورد جعبهٔ جهتدار وسیلهها و هلدادن پیاده از وسیلهٔ پارکشده |
|
||||
| garage.js | فهرست وسیلههای سوارشدنی، سوار/پیاده، برخورد رانندگی و reset |
|
||||
| traffic.js | ماشینهای NPC، spawn و حرکت روی شبکهٔ اصلی و one-way داده |
|
||||
| city.js | مدل شهر، زمین fallback، ساختمان، فضای سبز و chunk visibility |
|
||||
| collision.js | spatial grid چندضلعیها، resolveCircle و clearFraction دوربین |
|
||||
|
||||
Reference in New Issue
Block a user