Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
4 / 4 / 4
Регистрация: 16.02.2016
Сообщений: 21

Ошибка в описании движения

22.04.2017, 18:35. Показов 388. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, не могу найти ошибку в движении персонажа (шаг не постоянный). Может кто подскажет?
Кликните здесь для просмотра всего текста
Java
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
package pacman;
 
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
 
/**
 *
 * @author Alex
 */
 
public class PacMan extends JPanel implements ActionListener{
 
    public String[] menuLabel = {"New Game", "About", "Exit"}; 
    public String cursor = "--->                      <---";
       
    int cursor_x = 65;
    int cursor_y = 100;
    int counter = 1; 
    
    Timer timer = new Timer(10, this);
    
    static JFrame frame;
    
    public void paint(Graphics g){
        g.setColor(Color.BLACK);
        g.fillRect(0, 0, 400, 300);
        
        Font font = new Font("",Font.BOLD,30);
        g.setFont(font);
        
        g.setColor(Color.red);
        g.drawString("" + menuLabel[0], 120, 100);
        g.drawString("" + menuLabel[1], 150, 140);
        g.drawString("" + menuLabel[2], 170, 180);
        
        g.setColor(Color.yellow);
        g.drawString("" + cursor, cursor_x, cursor_y);
    }
    
    PacMan(){
        timer.start();
        addKeyListener(new KeyBoard());
        setFocusable(true);
    }
    
    public static void main(String[] args) {
     
        frame = new JFrame("Pac Man");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400,300);
        frame.setResizable(true);
        
        
        frame.add(new PacMan());
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
 
    @Override
    public void actionPerformed(ActionEvent e) {
        
        repaint();
    }
    
    public class KeyBoard extends KeyAdapter{
        public void keyPressed(KeyEvent event){
            int key = event.getKeyCode();
            
            if (key == KeyEvent.VK_DOWN){
                 cursor_y +=40;
                 counter++;
                 if (counter > 3){
                     counter = 1;
                     cursor_y = 100;
                 }
            }
            if (key == KeyEvent.VK_UP){
                cursor_y -=40;
                counter--;
                if (counter < 1){
                    counter = 3;
                    cursor_y = 180;
                }
            }
            if (key == KeyEvent.VK_ENTER){
                if (counter == 1){
                    frame.dispose();
                    Map map = new Map();
                }
                if (counter == 2){
                
                }
                if (counter == 3){
                    System.exit(0);
                }
            }
        }
    }
}

Кликните здесь для просмотра всего текста
Java
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package pacman;
 
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
 
public class Map implements ActionListener{
 
    JFrame frameMap;
    JPanel panel;
    
    final int WIDTH_MAP = 30;
    final int HEIGHT_MAP = 20;
    final int SCALE = 25;
    
    Timer timerMap = new Timer(10, this);
    Player player = new Player(25, 25);
    
    public int[][] map_1 = new int[][]  {{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                     {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                     {1,0,1,0,0,1,1,1,1,0,1,1,0,1,0,0,0,0,1},
                     {1,0,1,0,1,1,0,0,1,0,0,0,0,0,0,1,1,0,1},
                     {1,0,1,0,1,1,0,0,0,0,1,1,1,0,1,1,0,0,1},
                     {1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1},
                     {1,0,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,0,1},
                     {1,0,1,1,0,0,0,0,0,0,1,1,0,0,0,1,1,0,1},
                     {1,0,0,1,0,0,1,1,1,0,0,1,0,0,0,1,1,0,1},
                     {1,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,0,0,1},
                     {1,0,0,0,0,1,1,1,0,0,1,1,0,1,1,1,0,0,1},
                     {1,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1},
                     {1,0,0,1,0,0,1,0,0,1,1,0,1,0,1,1,1,0,1},
                     {1,0,1,1,0,0,1,1,0,1,0,0,1,0,0,1,1,0,1},
                     {1,0,1,0,0,1,1,1,0,0,0,0,1,1,0,0,1,0,1},
                     {1,0,1,0,1,1,1,0,0,1,1,1,1,1,0,0,0,0,1},
                     {1,0,0,0,0,1,1,0,0,0,1,0,0,1,0,1,0,0,1},
                     {1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1},
                     {1,0,1,1,0,1,1,0,0,0,1,0,1,1,0,1,1,0,1},
                     {1,0,1,0,0,1,1,1,0,1,1,0,0,0,0,0,1,0,1},
                     {1,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,1,0,1},
                     {1,0,1,1,1,0,1,0,0,1,1,1,0,0,0,0,1,0,1},
                                         {1,0,0,1,1,0,1,1,0,0,0,1,0,1,0,0,0,0,1},
                     {1,0,0,0,0,0,1,1,0,0,0,1,0,1,1,0,0,0,1},
                     {1,0,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1,0,1},
                     {1,0,1,1,0,1,1,0,0,1,1,1,1,1,1,0,1,0,1},
                     {1,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,1,0,1},
                     {1,0,0,1,0,0,0,0,0,0,1,1,0,0,1,1,1,0,1},
                     {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                     {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};
    
    Map(){
        frameMap = new JFrame("Pac Man");
        frameMap.setSize(WIDTH_MAP *SCALE, HEIGHT_MAP *SCALE);
        frameMap.setResizable(false);
        
          
        panel = new JPanel(){
            Graphics2D g2;
            
            protected void paintComponent(Graphics g){
                super.paintComponent(g);
                
                timerMap.start();
                addKeyListener(new KeyBoardMap());
                setFocusable(true);
                                
                g2 = (Graphics2D)g;
                
                g2.setColor(Color.black);
                g2.fillRect(0, 0, WIDTH_MAP * SCALE, HEIGHT_MAP * SCALE);
                
                //create game map
                for(int i = 0; i < map_1.length; i++){
                    for (int j = 0; j < map_1[i].length; j++){
                        // cerate blue Rect
                        if (map_1[i][j] == 1){
                            g2.setColor(Color.BLUE);
                            g2.fillRect( i * SCALE, j * SCALE, SCALE, SCALE);
                        }
                        
                    }
                }
                
                //create new Player  
                g2.setColor(Color.yellow);
                g2.fillOval(player.getX()/SCALE, player.getY(), SCALE, SCALE);
                
                g2.drawString("x-" + player.getX()/SCALE + "  y - " + player.getY()/SCALE, 1, 10);
            }
        };
        
        frameMap.setContentPane(panel);
        frameMap.setLocationRelativeTo(null);
        frameMap.setVisible(true);
    }
 
    @Override
    public void actionPerformed(ActionEvent e) {
       
        panel.repaint();
    }
    
    public class KeyBoardMap extends KeyAdapter{
        public void keyPressed(KeyEvent event){
            int key = event.getKeyCode();
            
                        
            if (key == KeyEvent.VK_RIGHT){    
                
                player.setX(player.getX() + 1);
                
            }
            if (key == KeyEvent.VK_LEFT){
                
            }
            
        }
    }
    
}

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package pacman;
 
public class Player {
    private int x;
    private int y;
    
    Player(int x, int y){
        this.x = x;
        this.y = y; 
    }
    
    public void setX(int x){
        this.x = x;
    }
    public int getX(){
        return x;
    }
    public void setY(int y){
        this.y = y;
    }
    public int getY(){
        return y;
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.04.2017, 18:35
Ответы с готовыми решениями:

Как сделать так чтобы переменная в описании одной функции была доступна в описании другой?
Как сделать так чтобы переменная в описании одной функции была доступна в описании другой?...

Ошибка в описании структуры
Я новичок. Не могу разобраться как нормально описать структуру(( компилятор пишет ошибку. на...

Ошибка в описании функции
Здравствуйте! По учебе возникла необходимость решить простенькую задачку, но проблема в том, что...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.04.2017, 18:35
Помогаю со студенческими работами здесь

Ошибка в описании функции
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; main() { int i,j,k,*a,n,k2,m; void...

Ошибка в описании коструктора
#ifndef CURSOR_H #define CURSOR_H #include &lt;QObject&gt; #include &lt;QTimer&gt; #include &lt;QDebug&gt;...

Ошибка в описании - коды
Мне нужно срочно, напишите пожалуйста правильно, здесь у меня ошибка скорее всего ...

Ошибка при описании класса
18 и 20 строки: Unresolved attribute reference 'owner' for class 'turn' class turn: ## ход ...

Ошибка в описании объекта notifyIcon
Здравствуйте! Я может тупой вопрос сейчас задам, но я уже не могу думать. Вот код. using...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru