Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
38 / 30 / 8
Регистрация: 10.01.2015
Сообщений: 209
1

Спрайтовая анимация

30.01.2015, 00:28. Показов 2563. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйсто.

Есть класс Sprite

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
import java.awt.Image;                                                        // 5)
import java.awt.event.KeyEvent;
import javax.swing.ImageIcon;
 
 
 
public class Sprite implements Runnable{                            // 1)
 
    public String sprite;                                      // 3)
 
    private int dx;
    private int dy;
    private int x;
    private int y;
    private boolean r = false;
    private Image image;
 
    public Sprite(String b) {
        sprite = b;
        ImageIcon ii = new ImageIcon(this.getClass().getResource(sprite));
        image = ii.getImage();
        x = 40;
        y = 60;
    }
 
 
 
    public void run() {                                                        // 2)
     
     Sprite s1 = new Sprite("images/11.jpg");
       new Thread(s1).start();  
    }
    
        public void move() {              // 1)
        x += dx;
        y += dy;
    }
 
    public int getX() {                   // 2)
        return x;
    }
 
    public int getY() {
        return y;
    }
 
    public Image getImage() {          // 3)
        return image;
    }
    
    public void keyPressed(KeyEvent e) {                       // 1)
 
        int key = e.getKeyCode();                                // 2)
        
        if (key == KeyEvent.VK_SPACE){                 // 3)
         y-=100;
        }
        
        if (key == KeyEvent.VK_SHIFT) {              // 4)
         r = true;
        }
 
        if (key == KeyEvent.VK_LEFT) {
            dx = -1; 
            if (r == true){dx = -3;}
        }
 
        if (key == KeyEvent.VK_RIGHT) {
            dx = 1; 
                        
            if (r == true){dx = 3;}
        }
 
        if (key == KeyEvent.VK_UP) {
            dy = -1;
        }
 
        if (key == KeyEvent.VK_DOWN) {
            dy = 1;
        }
    }
 
    public void keyReleased(KeyEvent e) {                       // 1)
        int key = e.getKeyCode();                                      // 2)
        
        if (key == KeyEvent.VK_SPACE){                      // 3)
      y+=100;
        }
        
        if (key == KeyEvent.VK_SHIFT) {                      // 4)
         r = false;
        }
 
        if (key == KeyEvent.VK_LEFT) {
            dx = 0;
        }
 
        if (key == KeyEvent.VK_RIGHT) {
            dx = 0;
        }
 
        if (key == KeyEvent.VK_UP) {
            dy = 0;
        }
 
        if (key == KeyEvent.VK_DOWN) {
            dy = 0;
        }
    }
    
}
Есть класс GameScreen
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
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.Timer;
import javax.swing.JPanel;
import java.awt.Toolkit;
 
 
public class GameScreen extends JPanel implements ActionListener{
        private static final long serialVersionUID = 1L;
       
         private Timer timer;
         private Sprite sprite;
              public int c;
        public GameScreen(){
                addKeyListener(new TAdapter());
        setFocusable(true);
                setBackground(Color.WHITE);
        setDoubleBuffered(true);
   
        c++;
        if (c%2 == 0)
        {
        sprite = new Sprite("images/11.jpg");
        }
        if (c%2 != 0)
        {
            sprite = new Sprite("images/22.jpg");
        }
        
        
 
        timer = new Timer(5, this);
        timer.start();
        }
       
        public void paint(Graphics g) {
        super.paint(g);
 
        Graphics2D g2d = (Graphics2D)g;
        g2d.drawImage(sprite.getImage(), sprite.getX(), sprite.getY(), this);
 
        Toolkit.getDefaultToolkit().sync();
        g.dispose();
    }
 
        public void run() {
                GameScreen t1 = new GameScreen();
              new Thread((Runnable) t1).start();               
        }
 
        public void actionPerformed(ActionEvent e) {
 
                sprite.move();
        repaint();  
        }      
       
        private class TAdapter extends KeyAdapter {
 
        public void keyReleased(KeyEvent e) {
            sprite.keyReleased(e);
        }
 
        public void keyPressed(KeyEvent e) {
            sprite.keyPressed(e);
        }
        
        
    }
}
И main

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import javax.swing.JFrame;
 
public class Okno {
 
    JFrame frame;
 
        public Okno(){
            frame = new JFrame("Game window");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(800,600);
            frame.setResizable(false);        
            frame.add(new GameScreen());
            frame.setVisible(true);
 
           }
 
        public static void main(String [] args){
             new Okno();
 
           }
    
}

Подскажите как из этого сделать так чтобы была анимация ходьбы состоящая из двух картинок
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.01.2015, 00:28
Ответы с готовыми решениями:

спрайтовая анимация
помогите никак не работает написанная мной функция :( (все по методичке сделано) должна грузить...

спрайтовая анимация
рисую так: void Sprite(HDC hdc, LPCWSTR Path, int x, int y, int Width, int Height, DWORD Param)...

Спрайтовая анимация
Может кто реализовывал такое ?? написал клас спрайт который унаследует Thread. клас в потоке рисует...

Спрайтовая анимация в OpenGL
Здравствуйте. Собственно, вопрос таков: как реализовать спрайтовую (покадровую) анимацию персонажа...

0
30.01.2015, 00:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.01.2015, 00:28
Помогаю со студенческими работами здесь

Спрайтовая анимация с 3 движущимися объектами
Добрый день , есть у кого пример спрайтовой анимации с 3 объектами?можно исходник. Что бы все 3...

Спрайтовая кнопка (XNA)
Как сделать кнопку на C#+XNA спрайтами. А если быть еще точнее, то как сделать чтобы при наведении...

Анимация в OpenGL, а где собсно, анимация?
// Bounce.cpp // Demonstrates a simple animated rectangle program with GLUT // OpenGL SuperBible,...

Анимация
Здравствуйте. Как организовать анимацию с помощью WPF? Если конкретно, то требуется, чтобы модели...


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

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