Рубрика «java» - 143

Доброго времени суток всем!

В этой статье будет описываться создание 2D игры на Java. Сразу предупреждаю, вы должны хотя бы базово знать язык Java, поскольку на подробное объяснение каждой строки у меня нету времени. И очень прошу вас, не списывать просто код, а пытаться понять что означает каждая строка, и писать со смыслом. И еще, я использую Eclipse, но вы можете использовать любой IDE.

Задача:

Я планирую создать игру, напоминающую шутер с видом от 3 лица.

Начало:

Ну что, приступим!

Для начала создадим проект. Назовем его «Just game». И сразу создаем класс Display.java. В него пишем:

public static void main(String[] args) {
		JFrame frame = new JFrame(/* название нашей игры */);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
		frame.setUndecorated(true);
		frame.setVisible(true);
	}

Теперь разберемся, что мы сделали.
Читать полностью »

В Java 8 появился новый класс CompletableFuture, который позволяет удобно писать асинхронный код.
При использовании CompletableFuture из нескольких потоков я столкнулся с его неочевидным поведением, а именно с тем, что callbacks на нём могут выполнятся совсем не в тех потоках, как ожидалось. Об этом и о том, как мне удалось решить проблему — я и расскажу в этой статье.

Мною разрабатывался асинхронный, неблокирующийся однопоточный клиент к серверу, который использовал потоконебезопасные структуры данных. Тесты проходили без проблем, но benchmarks иногда падали c ConcurrentModificationException на внутренних структурах однопоточного клиента.
Читать полностью »

Научно технический прогресс постепенный по своей природе. Никто не берет горсть песка с пляжа и делает из нее компьютер. Мы берем грубые инструменты и создаем с помощью них более качественные. Затем с помощью последних еще более точные и так далее. Каждое малое усовершенствование — это ступенька прогресса и все они должны быть пройдены.

Председатель Шенчжи Ян.

image
В сознании каждого человека есть одна простая мысль: космические технологии — это сложно. На самом деле это не так. Не все технологии, применимые в космической отрасли — это Rocket science. И последние успехи в космонавтике, ренессанс космической тематики сподвигли меня на поиск проблемных областей, которые простой Enterprise Java разработчик может улучшить.
Читать полностью »

Всем привет! В прошлом году на Joker 2016 мы делали открытую трансляцию главного зала. В тот раз не обошлось без технических заминок, но в целом зашло хорошо. Мы решили продолжать славную традицию и сделать это еще раз – сегодня с 10 утра мы начинаем бесплатную YouTube-трансляцию первого трека JPoint 2017! Первый трек – самый большой и хардкорный, будут доклады Алексея Шипилёва, Евгения EvgenyBorisov Борисова, Arun Gupta, Сергея Walrus Куксенко и не только

Бесплатная трансляция главного трека JPoint 2017. Сейчас! Без регистрации и смс - 1

Если кто не в курсе, вчера успешно прошел первый день международной Java-конференции JPoint 2017: 1200 участников, 25 докладчиков, 20 докладов, 4 трека, – все серьезно. Но пост будет не о прошедшей конференции, а о том, что нам (и некоторым из вас) еще предстоит.

Под катом – список докладов и ссылка на YouTube.
Читать полностью »

Пишите на Java и ждёте асинхронные вызовы API прямо во фрагменте или Activity? Используя анонимные классы? В этой статье я расскажу, как Kotlin позволяет это сделать без вреда для GC и возможных IllegalStateException.

image

В данной статье приведёна работа со слабыми ссылками на примере ожидания асинхронных вызовов из компонентов Android приложения. Однако данный опыт применим и для других ситуаций, когда требуется использовать слабые ссылки.

Читать полностью »

Являясь Unity разработчиком, я со временем дошёл до того этапа, когда возникла необходимость написания сервера. Передо мной стояло много неизведанных троп сетевого программирования, в котором я потом повяз по голову. Прыгал между C++, C# и Java. После долгий скитаний я нашёл то, чему я сейчас говорю спасибо. Об этом я и хочу поведать.
Читать полностью »

Одиноким пятничным вечером в поисках вдохновения вы решаете припомнить свои былые победы на программистском фронте. Архив со старого жесткого диска неторопливо открывается и вот перед вами разворачивается код славных далеких времен…

О нет. Это совсем не то, что вы ожидали увидеть. Правда, что ли, все было настолько плохо? Почему вам никто не сказал? Как можно было до такого докатиться? Такое количество операторов go-to в одной-единственной функции – это вообще законно? Вы поспешно закрываете проект. На секунду вас одолевает искушение удалить файл, и всё содержимое жёсткого диска заодно.

13 лет плохого кода в играх - 1

Ниже вы найдете коллекцию уроков, поучительных примеров и предостережений, которые я вынес из собственного путешествия в прошлое. Все имена приводятся без изменений, чтобы обличить виновных.
Читать полностью »

Когда мы программируем, отлаживаем код, ищем пресловутый «баг», зачастую возникает ситуация, когда приходится перезапускать сервер приложений, что бы увидеть наши изменения. Это приводит к тому, что нам приходится выходить из «потока», разрушать наш хрупкий песочный замок нейронных связей. Отвлекаться от текущей задачи и ждать-ждать-ждать, когда на сервере приложений будут доступны наши изменения. Порой это так утомительно… Как было бы здорово, сделать «горячую» замену измененных классов и сразу увидеть результат.

image
Читать полностью »

«Apache Ignite — наукоёмкий продукт»: GridGain Systems о in-memory computing, open source, российском рынке и не только - 1

О проекте Apache Ignite слышно всё чаще. Но, как ранее заметил на Хабре один из его разработчиков Владимир Озеров, в двух словах описать проект сложно — а в результате у многих остаются вопросы, начиная с самых базовых. Что проект вообще представляет собой? Как соотносятся Apache Ignite и компания GridGain? Как соотносятся понятия «in-memory data grid» и «in-memory data fabric»?

В программу JBreak и JPoint 2017 вошли доклады спикеров из GridGain, а сама компания стала спонсором обеих конференций — и прямо перед JBreak мы задали накопившиеся у многих вопросы. А ответили на них:

  • Владимир devozerov Озеров (архитектор)
  • Алексей Дмитриев (генеральный директор российского отделения / VP of Engineering)
  • Ирина Тищенко (HR-директор)

Читать полностью »

Статья родилась из этого ответа на StackOverflow и переросла в этот блог пост (на английском), но я думаю она не утратила актуальность.

Сейчас очень много шума вокруг Reactive Programming. Я потратил какое-то время на изучение этой дисциплины применимо к JavaScript и Node.js и сложил свое мнение о самых, на мой взгляд, интересных библиотеках.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js