Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
 Аватар для gdfgdf333
2 / 2 / 2
Регистрация: 23.05.2019
Сообщений: 351

Почему не работает case?

27.09.2019, 22:42. Показов 878. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
<canvas id="myCanvas" width="500" height="500">

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<script>
 
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var x = 0;
var y = 0;
 
document.addEventListener('keydown', someFunc)
 
function someFunc(event) {
  /*   if (event.key == "ArrowDown") {
        drawY()
    } */
switch(event.key)   {
case "ArrowDown":
    drawY();
    break;
case "ArrowUp":
    drawX();
    break;
}
}
 
function drawX(){
    ctx.clearRect(0,0, 400, 400);
    ctx.fillStyle = "red";
    ctx.fillRect(x,y,50,50);
    if (x==200) {x=0}
    else {x++;}
}
function drawY(){
    ctx.clearRect(0,0, 400, 400);
    ctx.fillStyle = "red";
    ctx.fillRect(x,y,50,50);
    if (y==200) {y=0}
    else {y++;}
}
 
</script>
Хотел чтоб квадрат двигался по нажатию на кнопки
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.09.2019, 22:42
Ответы с готовыми решениями:

почему не работает case?
Собственно проблема обозначена в заголовке темы. не проверяется двойное условие var crow = prompt(&quot;Укажите число...

Почему webstorm заменяет case на if/else?
смотрите у меня есть switch..case а вебшторм переделывает его в if..else if.. может я чего то не знаю про свитч или это можно в...

Почему case работает только с выражениями, и не работает с функциями?
и как быть например если хочу действовоть в зависимоти от результатов вызова функции case MyFunc(i) of 3: ...; 4: ...; default;...

3
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
27.09.2019, 22:55
Цитата Сообщение от gdfgdf333 Посмотреть сообщение
Хотел чтоб квадрат двигался по нажатию на кнопки
Так он и двигается вправо и вниз
0
 Аватар для gdfgdf333
2 / 2 / 2
Регистрация: 23.05.2019
Сообщений: 351
28.09.2019, 07:52  [ТС]
да почему то у меня не работало потом заработало)

вот еще вопрос, когда на строке * доходит до границы блока как сделать чтобы при x-- или y-- квадрат обратно шел? т.е. двигался в границах.
А то щас до границы доходит и обратно никак:

HTML5
1
2
<canvas id="myCanvas" class="styletest" width="300" height="300">
</canvas>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
let canvas = document.getElementById("myCanvas");
let ctx = canvas.getContext("2d");
let x = 0;
let y = 0;
let par = document.getElementById('par');
let maxX= canvas.getAttribute('width');
let maxY= canvas.getAttribute('height');
 
 
document.addEventListener('keydown', someFunc)
ctx.fillStyle = "red";
function someFunc(event) {
if (x<maxX-50){                                            //*           ТУТ ПРОВЕРКА ГРАНИЦЫ
switch(event.key)   {
case "ArrowLeft":
x--;draw();break;
case "ArrowRight":
x++;draw();break;
case "ArrowUp":
y--;draw();break;
case "ArrowDown":
y++;draw();break;
}}
par.innerHTML=x + ':' + y + ':' + event.key;
}
 
function draw(){
 
    ctx.clearRect(0,0, maxX, maxY);
    ctx.fillRect(x,y,50,50);
}
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
28.09.2019, 11:08
Цитата Сообщение от gdfgdf333 Посмотреть сообщение
А то щас до границы доходит и обратно никак:
Условие неправильно написано

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
document.addEventListener('keydown', someFunc)
        ctx.fillStyle = "red";
        function someFunc(event) {
        switch(event.key)   {
        case "ArrowLeft":
        x--;draw();break;
        case "ArrowRight":
        if (x+1<maxX-50){ 
          x++;                                           //*           ТУТ ПРОВЕРКА ГРАНИЦЫ
        }
        draw();break;
        case "ArrowUp":
        y--;draw();break;
        case "ArrowDown":
        y++;draw();break;
        }
        par.innerHTML=x + ':' + y + ':' + event.key;
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.09.2019, 11:08
Помогаю со студенческими работами здесь

Почему case не работает со строками?
const d = 'postbutton'; r = 'badbutton'; var s: string; sf: string; begin sf := Button1.name; s := sf + IntToStr(3); case s...

почему не работает case? где ошибка?
uses SysUtils, ConvertRus; var day: integer; month: integer; year: integer; last: boolean; r: integer; ...

Почему внутри case не работает такой код?
Подскажите, пожалуйста, почему внутри кейса не работает такой код? string a; cout&lt;&lt;&quot;Введите исходное...

Почему не только case и if?
В императивных языках распространены конструкции if и case. Почему Haskell не ограничился только этими двумя?

Почему оператор case не хочет работать?
Разве char - это не &quot;односимвольная строка&quot;? foreach var s in ReadAllLines('Setting.txt') do begin var arr :=...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru