| помогите с разработкой алгоритма на java | 
|  | 
| 
| d3mk | Дата: Пятница, 30 Марта 2012, 17:24 | Сообщение # 1 |  |   был не раз Сейчас нет на сайте | Здравствуйте. Вот недавно начал создавать игру и получилось так что, в игре надо сделать расстановку квадратов. Делать циклом плохо потому что, сделал цикл и он крутится и крутится не доходя до нажатий клавиши. Чем заменить цикл? 
 
 Сообщение отредактировал d3mk - Пятница, 30 Марта 2012, 17:25 |  |  |  |  | 
| 
| vasua99 | Дата: Пятница, 30 Марта 2012, 18:44 | Сообщение # 2 |  |   GNU follower Сейчас нет на сайте | А можно кусок кода из нужного момента и вообще вот пример на С++: char c;
 while((c = cin.get())!= 'Q')
 {
 switch©
 {
 case 'W': ....
 case .....
 ....
 default: update(); // или что нужно
 }
 }
 
 Сорри за оформление,пишу со смартфона...)
 
 Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
 |  |  |  |  | 
| 
| d3mk | Дата: Пятница, 30 Марта 2012, 19:46 | Сообщение # 3 |  |   был не раз Сейчас нет на сайте | Code  while(true){
 for(int i=40;i<540;i++){
 i=i+40;
 g.fillRect(i,0 , 40, 40);
 }
 }break;
 
ну вопрос не в ошибке а в на что заменить этот цикл.
 
 
 Сообщение отредактировал d3mk - Пятница, 30 Марта 2012, 19:58 |  |  |  |  | 
| 
| vasua99 | Дата: Пятница, 30 Марта 2012, 21:21 | Сообщение # 4 |  |   GNU follower Сейчас нет на сайте | а зачем заменять,ставишь проверку нажатия клавишы в цикле,если есть клавиша то читаем ее,и делаем свои дела. 
 Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
 |  |  |  |  | 
| 
| d3mk | Дата: Пятница, 30 Марта 2012, 21:29 | Сообщение # 5 |  |   был не раз Сейчас нет на сайте | не с этим все нормально но в идеале квадраты должны двигаться |  |  |  |  | 
| 
| vasua99 | Дата: Пятница, 30 Марта 2012, 21:37 | Сообщение # 6 |  |   GNU follower Сейчас нет на сайте | ну двигаться всмысле по клавише?(вообще совет: в таких ситуациях проанализируй,и построй алгоритм на псевдокоде,или блок схему.иногда очень помогают.) 
 Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
 |  |  |  |  | 
| 
| d3mk | Дата: Воскресенье, 01 Апреля 2012, 13:56 | Сообщение # 7 |  |   был не раз Сейчас нет на сайте | возникла ещё проблема теперь я занялся реализацией движения ГГ. И теперь не могу реализовать остановку ГГ. вот кусок кода сразу извинюсь за табуляцию но почему то она не обрабатывается сайтомCode  boolean mvRight = false, mvLeft = false;
 
 public void keyPressed(KeyEvent ke) {
 if (mvRight == false && ke.getKeyCode() == KeyEvent.VK_RIGHT) {
 if (mvLeft) {
 mvLeft = false;
 // TODO: исправить cancel
 shipTimer.cancel();
 }
 mvRight = true;
 shipTimer.scheduleAtFixedRate(
 Canv.new MoveShip(Canv.getGraphics(), 1), 0, 20);
 }
 
 if (mvLeft == false && ke.getKeyCode() == KeyEvent.VK_LEFT) {
 if (mvRight) {
 mvRight = false;
 // TODO: исправить cancel
 shipTimer.cancel();
 }
 mvLeft = true;
 shipTimer.scheduleAtFixedRate(
 Canv.new MoveShip(Canv.getGraphics(), -1), 0, 20);
 }
 
 }
 
 
 
 Сообщение отредактировал d3mk - Воскресенье, 01 Апреля 2012, 14:09 |  |  |  |  | 
| 
| Red_Squirrel | Дата: Воскресенье, 01 Апреля 2012, 21:27 | Сообщение # 8 |  | участник Сейчас нет на сайте | d3mk, не совсем разобрался в твоём коде, но всё же попробуй так 
 Code if (mvRight == false && mvLeft == false){ player.stop()
 }
 
 Сообщение отредактировал Red_Squirrel - Воскресенье, 01 Апреля 2012, 21:27 |  |  |  |  | 
| 
| d3mk | Дата: Понедельник, 02 Апреля 2012, 12:26 | Сообщение # 9 |  |   был не раз Сейчас нет на сайте | Red_Squirrel, нет это не работает но ты подкинул хорошую идею   |  |  |  |  |