Comments (7)
Ничего не понятно, но очень интересно :)
мне как раз нужно понять как накодить высокоуровневую тайлмапу, но проблема в том, что я могу получать информацию если знаю id тайла, но мне нужно будет чтото придумать чтобы его получить не привязывая при отрисовки его.
На вопрос ты ответил так что можно дальше пытаться и закрывать issue.
Спасибо!
from tilemap.
Please explain more
from tilemap.
Если не возражаешь на русском мне будет проще объяснить (если будет нужно переведу)
Я использвую viewport и tilemap и хочу по клику получить id тайла. в tilemap не реализовано клик по тайлам, но как я понял можно containsPoint расписать для этого. Но у viewport есть клик и т.к. он контейнер для карты то x y он получает верные и containsPoint не нужен. Теперь когда я кликаю на тайл мне нужно получить информацию об этом тайле возможно его тип id или что нибудь еще. Могу я как то на этапе отрисовки тайлов поставить им id ? Возможно мне нужно переопределить метод tile
.
Мой вопрос похож на этот https://www.html5gamedevs.com/topic/33706-pixisprite-on-click-weird-isssue/, только как вы и посоветовали я использую tilemap для этого.
from tilemap.
containsPoint просто проверяет все тайлы на пересечение. Можешь написать метод который будет выдавать UV конкретного тайла, к сожалению айдишника там нету, сейчас объясню почему:
обычно люди хранят тайлы где-то у себя в двумерном массиве. Алгоритм высокого уровня, будь то чанки или окошко, передает это в tilemap двумя форами. Без отделения логики от графики там много что может пойти плохо, и если я дам людям какие-то высокоуровневые функции они начнут просить больше и будут лажать, поскольку эта часть всем нужна разная.
Если знаешь координаты, то по ним можешь определить где эта штука у тебя в массиве.
from tilemap.
Грубо говоря, @pixi/tilemap это только одна половина тайлмапы, универсальная низкоуровневая. Вторую, высокоуровневую, все пишут сами.
from tilemap.
ну да я использую tilemap чтобы отрисовать первый слой карты который не меняется на протяжении игры. У меня логика такая, чтобы получить информацию о втором слое карты мне нужно знать id тайла первого слоя. у меня массив 15к айтемов и по нему искать преобразованные пиксели в координаты в этом массиве думаю будет непроизводительно и нецелесообразно.
Чтобы отрисовать вторую, высокоуровневую стоит лучше использовать обычные спрайты?
from tilemap.
Высокоуровневая в смысле кода а не которая выше первой на экране.
Например:
Высокий уровень: если камера вышла за некоторое окошко - делаем новое окошко чуть больше камеры (раза в полтора), и проходимся двойным FOR-ом чтобы "нарисовать" тайлмапу (на самом деле сгенерить новые визуальные тайлы)
Низкий уровень : pixi-tilemap или PIXI.Graphics.beginTextureFill
Если у тебя в логическом представлении карты неупорядоченный массив а не чанки или какое-нибудь quad-tree - ну поздравляю, в pixi-tilemap тоже массив и ничего она тебе быстрее не сделает :)
from tilemap.
Related Issues (20)
- CompositeTilemap has no `add` method, despite the example HOT 1
- tileAnim does not work for negative offsets HOT 1
- Tiles are reset to original, after x amount of changes HOT 2
- collision
- Update to newer PIXI version HOT 1
- Not working with new `cullable` property from `PIXI 6.3.0`. HOT 4
- Not working since PIXI 6.4.0 HOT 2
- Not compatible with Pixi 7 HOT 9
- Importing pixi tilemap does not work HOT 4
- Missing dependencies
- Texture ID is only set when composite parent is true.
- Request for the updating of rpgmaker.js
- Demos aren't loading
- `Cannot find module '@pixi/tilemap' or its corresponding type declarations` HOT 4
- Position doesn't follow parent, when parent is using isRenderGroup : true HOT 2
- tileWidth and tileHeight doens't seems to work
- Question: Is there a way to use this with `@pixi/spritesheet`? HOT 7
- Cleaning or updating Tilemap is not working without running renderGroup.onChildUpdate `PIXI 8` HOT 2
- `PIXI 8` Tilemap doesn't apply `roundPixels` renderer settings HOT 1
- `PIXI 8` Multiple Tilemap movement interfere eachother on `webgpu` HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tilemap.