Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 11
1

Управление фигурами Shape

04.11.2015, 20:14. Показов 1218. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
если один игрок зажимает одну из кнопок то второй игрок не может управлять своей фигурой.
Можно ли решить проблему?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
case Key of
VK_UP: begin
       BoardL.Top:=BoardL.Top - 8;
       Exit;
       end;
VK_DOWN: begin
         BoardL.Top:=BoardL.Top + 8;
         Exit;
         end;
 
end;
Case Key of
VK_NUMPAD8: begin
            BoardR.Top:=BoardR.Top - 8;
            Exit;
            end;
VK_NUMPAD5: begin
            BoardR.Top:=BoardR.Top + 8;
            Exit;
            end;
end;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2015, 20:14
Ответы с готовыми решениями:

Тетрис в консоли. Как реализовать управление фигурами
Приветствую. Препод в универе пошутил и предложил написать тетрис в консоли, так вот, столкнулся с...

shape, управление границей
<shape xmlns:android="http://schemas.android.com/apk/res/android" ...

Сохранить свой shape как нормальный shape
Создаю свой shape в MS Office Word 2007 Скажите, есть ли возможность сохранить его как shape для...

shape/ layer shape в по заданному изображению
Не могу shape для использования в приложении: background Может кто поможет. <?xml...

10
843 / 738 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
04.11.2015, 21:55 2
В таком случе Shape- ми лучше мышкой управлять, если мышка у одного игрока то у другого ее нет.
0
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 11
04.11.2015, 22:00  [ТС] 3
даже в таком случае один из shape - ов не управляем
0
843 / 738 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
04.11.2015, 22:11 4
Arman228,
Тогда держи такой код:

Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = 37 then
  begin
    ShowMessage('Нажата стрелка влево');
    //блокируем нажатие стрелки повторно
  end;
end;
Смысл его такой- если нажали на одну кнопку то на нее больше нельзя нажимать пока другой игрок ненажмет другую кнопку.
1
243 / 193 / 94
Регистрация: 01.05.2015
Сообщений: 732
04.11.2015, 22:18 5
Arman228, если правильно понял, что нужно, то можно так
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var
  Form1: TForm1;
  Turn: Boolean=True;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 case Key of
  VK_UP,VK_NUMPAD8:
   if Turn
    then shp1.Top:=shp1.Top - 8
    else shp2.Top:=shp2.Top - 8;
  VK_DOWN,VK_NUMPAD5:
   if Turn
    then shp1.Top:=shp1.Top + 8
    else shp2.Top:=shp2.Top + 8;
 end;
 Turn := not Turn;
end;
1
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 11
04.11.2015, 22:18  [ТС] 6
не) это совсем не то но всё равно спасибо)
0
243 / 193 / 94
Регистрация: 01.05.2015
Сообщений: 732
04.11.2015, 22:25 7
Цитата Сообщение от Arman228 Посмотреть сообщение
не) это совсем не то
Цитата Сообщение от Arman228 Посмотреть сообщение
если один игрок зажимает одну из кнопок то второй игрок не может управлять своей фигурой
именно так - есть если ход Turn первого игрока то управляется фигура №1, если второго, то управляется фигура №2, ну и проверку на прочие клавиши забыл...
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if Key in [VK_UP,VK_NUMPAD8,VK_DOWN,VK_NUMPAD5] then
  begin
   case Key of
    VK_UP,VK_NUMPAD8:
     if Turn
      then shp1.Top:=shp1.Top - 8
      else shp2.Top:=shp2.Top - 8;
    VK_DOWN,VK_NUMPAD5:
     if Turn
      then shp1.Top:=shp1.Top + 8
      else shp2.Top:=shp2.Top + 8;
   end;
   Turn := not Turn;
  end;
end;
1
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 11
04.11.2015, 22:33  [ТС] 8
VladWH
ну почти) только фигуры тогда начинают двигаться рывками приходится по несколько раз нажимать на кнопку.
Мяч не отбить
0
243 / 193 / 94
Регистрация: 01.05.2015
Сообщений: 732
04.11.2015, 22:47 9
Arman228, я же не знаю в чем суть вашей игры.... предположил что нужно пошагово игрокам ходить.
0
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 11
04.11.2015, 22:54  [ТС] 10
VladWH, в таком случае проблему не решить?
0
5784 / 4526 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
04.11.2015, 23:24 11
события стоят в очереди
и очередь вызывает обработчик
пока мы в обработчике ничего не должно ЕЩЕ происходить

тут поможет простой таймер и GetAsyncKeyState
в поиске по форуму много раз
https://msdn.microsoft.com/ru-... s.85).aspx
0
04.11.2015, 23:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.11.2015, 23:24
Помогаю со студенческими работами здесь

Shape на Shape перемещение
Есть форма на котором 2 Shape (ну может и больше)) управление стрелочками, помогите доделать код...

Работа с фигурами
Доброго вам времени суток. У меня возникла следующая проблема: Я составлял таблицы в 2010 версии...

Игра с фигурами
Я пишу сюда первый раз, хотя он может стать последним. Мне необходимо запрограммировать одну игру в...

График с фигурами
Помогите создать график с фигурами как на рисунке. С комментариями было бы еще лучше!


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru