|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.03.2015, 20:54 | #1 |
Пользователь
Регистрация: 30.03.2015
Сообщений: 19
|
Помогите сделать непроходимою картинку!
Делаю 2d игру сделал земное притяжение и прыжок также движение влево вправо. Но не могу сделать землю (картинки в виде полос) сделать непроходимыми что бы герой мог ходить по них.
|
30.03.2015, 21:06 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
На чем делаете-то? Swing, SWT, AWT, FX, веб, ...
И где код попыток? Что именно не получается?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
30.03.2015, 21:20 | #3 |
Пользователь
Регистрация: 30.03.2015
Сообщений: 19
|
Делаю игру в Эклипс вот код моего класса
import java.awt.BorderLayout; import java.awt.Canvas; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.image.BufferStrategy; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.net.URL; import javax.imageio.ImageIO; import javax.swing.JFrame; public class Game extends Canvas implements Runnable { private static final long serialVersionUID = 1L; private boolean running; public static int WIDTH = 800; public static int HEIGHT = 600; public static String NAME = "TUTORIAL 1"; boolean uppPressed = false; boolean downPressed = false; private boolean leftPressed = false; private boolean rightPressed = false; public Image fon; public Image hero; private static int x = 0; private static int y = 400; private long too; public void start() { running = true; new Thread(this).start(); } public void run() { long lastTime = System.currentTimeMillis(); long delta; init(); while(running) { delta = System.currentTimeMillis() - lastTime; lastTime = System.currentTimeMillis(); render(); update(delta); } } public void init() { addKeyListener(new KeyInputHandler()); try { hero=ImageIO.read(new File("c:\\man.png")); } catch (Exception ex) {} } public void render() { BufferStrategy bs = getBufferStrategy(); if (bs == null) { createBufferStrategy(2); requestFocus(); return; } Graphics gr = bs.getDrawGraphics(); super.update(gr); gr.fillRect(0, 480, 800, 20); gr.drawImage(hero,x,y,null); gr.dispose(); bs.show(); } public void update(long delta) { if (leftPressed == true) { x--; } if (rightPressed == true) { x++; } if((downPressed == true)&&(y!=400)){ y++; } if((uppPressed == true)&&(y>=0)) { y=y-150; uppPressed=false; too+=delta; downPressed=true; } } public static void main(String[] args) { Game game = new Game(); game.setPreferredSize(new Dimension(WIDTH, HEIGHT)); JFrame frame = new JFrame(Game.NAME); frame.setDefaultCloseOperation(JFra me.EXIT_ON_CLOSE); frame.setLayout(new BorderLayout()); frame.add(game, BorderLayout.CENTER); frame.pack(); frame.setResizable(false); frame.setVisible(true); game.start(); } private class KeyInputHandler extends KeyAdapter { public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_LEFT) { leftPressed = true; } if (e.getKeyCode() == KeyEvent.VK_RIGHT) { rightPressed = true; } if(e.getKeyCode()== KeyEvent.VK_DOWN){ downPressed=true; } if(e.getKeyCode()== KeyEvent.VK_UP){ uppPressed=true; } } public void keyReleased(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_LEFT) { leftPressed = false; } if (e.getKeyCode() == KeyEvent.VK_RIGHT) { rightPressed = false; } if(e.getKeyCode()== KeyEvent.VK_DOWN){ } if(e.getKeyCode()== KeyEvent.VK_UP){ } } } } |
30.03.2015, 21:20 | #4 |
Пользователь
Регистрация: 30.03.2015
Сообщений: 19
|
Картинки возьмите любые
|
30.03.2015, 21:29 | #5 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Цитата:
Так и что в этом коде смотреть? Здесь не видно попыток реализовать то, что вы хотели, только просто передвижение.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 30.03.2015 в 21:31. |
|
30.03.2015, 21:53 | #6 |
Пользователь
Регистрация: 30.03.2015
Сообщений: 19
|
Так вот я и обращаюсь за помощью нежен пример где в окне есть главный герой с движением и земля по которой он ходит что то вроде этого
|
30.03.2015, 22:04 | #7 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Так вы просите просто реализовать за вас это, а надо подумать, попытаться что-то сделать самому, рассказать об этом и задать более конкретные вопросы (которые обязательно появятся после этих действия). Программирование это ж не только копипастинг примеров.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
30.03.2015, 22:07 | #8 |
Пользователь
Регистрация: 30.03.2015
Сообщений: 19
|
if((x<x1)&&(x+hero.getWidth()>=x1)
&&(y<y1)&&(y+hero.getHeight()>=y 1) ||(x<x1)&&(x<=x1+figure.getWidth()) &&(y>y1)&&(y<=y1+figure.getHeight() )) { } Вот я проверяю когда главный герой с любой стороны пересекается с картинкой пола а что писать в скобках чтобы он не проходил сквозь эту картинку? |
30.03.2015, 22:09 | #9 |
Пользователь
Регистрация: 30.03.2015
Сообщений: 19
|
hero-главный герой
figure- картинка пола |
30.03.2015, 22:13 | #10 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Ну видимо надо делать эту проверку до выполнения передвижения и не переходить к передвижению (изменению координат): например, с помощью if-else, или return из метода.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как сделать картинку ссылкой? | nazar-com | HTML и CSS | 4 | 06.12.2013 12:18 |
Как сделать всплывающую картинку ? | Anatoluu | Общие вопросы Delphi | 5 | 15.03.2011 08:48 |
Как сделать разрезанную картинку? | psywalker | HTML и CSS | 18 | 03.07.2008 16:25 |
Как сделать картинку фоном фрейма? | C0derr | Компоненты Delphi | 12 | 20.08.2007 00:43 |