Conversation
| return []; | ||
| } | ||
|
|
||
| return JSON.parse(data || '[]'); |
There was a problem hiding this comment.
data || '[]' это лишнее, тк если data nullish , то она провалится в if.
There was a problem hiding this comment.
Понял, поправлю) Двойная перестраховочка
| interface IAxisProps { | ||
| isLightTheme: boolean; | ||
| direction: string; | ||
| quantity: null[]; |
There was a problem hiding this comment.
Это не опечатка? Что выражает этот тип?
There was a problem hiding this comment.
IAxisProps - оси, хотя до меня позже дошло что можно назваит Line
isLightTheme - что бы им цвет задавать
direction - что бы им задавать направление
quantity - первое что выдал переводчик на слово "количество"
Это недоделанный момент в целом, изначально я готовил этот компонент к возможным настройкам, вроде убрать линии, как-то анимировать, сменить цвет и тд. А по итогу ничего не успел и осталось как осталось(
There was a problem hiding this comment.
Я имею ввиду 13 строку. Коммент начинается под строкой, которую комментируешь. Что выражает тип null[]?
There was a problem hiding this comment.
Понятно) Не очень правда понятно для чего нужен массив, заполненный null) Но раз используешь, видимо нужен)
There was a problem hiding this comment.
Как и написал выше, это недоделанный компонент, в массиве планировалось транспортировать какие-нить данные, возможно ссылки на текстуры, а что бы все завелось с хотя бы обычными полосками, накидал null
| const GameOverScreen: React.FunctionComponent<IGameOverScreenProps> = (props) => { | ||
| const classes = useStyles(); | ||
| const { score, resetGame } = useGameContext(); | ||
| const [name, setName] = useState<string>(''); |
There was a problem hiding this comment.
Разве ts сам не выводит тип из передаваемого значения?
There was a problem hiding this comment.
Выводит, честно я без понятия до конца зачем, но везде где видел этому хуку так вот в ручную его пишут, вот и появилась привычка
| } else if (code === KEY_S && direction !== UP) { | ||
| this.commandQueue.push(DOWN); | ||
| } else if (code === KEY_A && direction !== RIGHT) { | ||
| this.commandQueue.push(LEFT); |
There was a problem hiding this comment.
Для чего нужно commandQueue? Почему сразу не менять состояние тут?
There was a problem hiding this comment.
Без этого змейка сама себя убивает) Очередь не позволяет сделать два действия одновременно, если убрать ее, то к примеру когда змейка ползет вверх, и быстро нажать ВПРАВО ВНИЗ то она просто умрет.
Долго с этим сидел, через простой setState никак этого поправить не получалось, что с колбеком, что без.
Предпологаю что это из за ассинхрона самого стейта
| } | ||
|
|
||
| if (stoneCords.length > 0) { | ||
| stones = stoneCords.map((stone: number[], i) => { |
There was a problem hiding this comment.
Ты бы мог мемоизировать результат вне функции render и сэкономить на лишних перерендерах
There was a problem hiding this comment.
С этим еще не до конца разобрался, нужно ковырять)
Так как видео по ряду причин сделать возможности не было, прошу ознакомится с описанием в ветке develop - https://github.com/johnneon/react-game/tree/develop
Basic scope (+30)
Advanced scope (+50)
Hacker scope (+20)