Создать игру, создание игр, конструктора игр, игровые движки, разработка игр, сделать игру
Приветствую Вас Гость · Вход · Регистрация  ·  Новые сообщения · Участники · Правила · Поиск · RSS
Страница 1 из 11
Форум разработчиков игр » Программирование » Java » Уроки по Java от JavaMan'а (Все мои уроки будут тут)
Уроки по Java от JavaMan'а
Продолжать писать уроки?
MrIncrof Дата: Понедельник, 07.11.2011, 14:37 | Сообщение # 1
( Приченить добро! )
Просмотр профиля: MrIncrof

Сообщений: [1553]
Здесь я буду выкладывать свои уроки по языку Java.

Содержание:


Урок первый. Выводим строку на экран;


Урок второй. Операции с числами;


Урок третий. Создание точек. Первое знакомство с IDE;


Урок четвёртый. Просмотр кода интернет страницы;


Урок пятый. Фрейм и метка;


Урок шестой. Кнопка и события;


Урок седьмой. Знакомимся с движком JGame.




Урок первый. Выводим строку на экран


Здравствуйте, как гласит вики, Java это объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems. Дата официального выпуска — 23 мая 1995 года. Язык Джава очень простой язык программирования, его не стоит путать с JavaScript, который предназначен для улучшения страниц на сайтах (и не только). По мне, Джава легче чем ДжаваСкрипт.
Итак, приступим. Для начала мы создадим программу, которая будет писать Hello World! Что для этого нужно, нам надо скачатb Java SDK или JDK, всё это можно скачать с официального сайта. После установки, нам необходимо задать путь до JDK, для этого:
Windows xp: мой комп. - свойства - дополнительно - переменные среды
Windows 7: мой комп. - свойства - дополнительные параметры - дополнительно - переменные среды
И ищем в таблице Системные переменные, переменную PATH, добавляем точку с запятой и прописываем путь до папки Bin нашего JDK. Всё готово. Теперь открываем блокнот, и пишем:
Code
public class newclass {
      public static void main(String[] args) {
          System.out.println("Hello World!");
      }
}

Сейчас я вам всё объясню, команда public class создаёт новый класс с именем, команда public static void main(String[] args) публикует то, что мы сделали на экран и создаёт массив строк, команда System.out.println("Hello World!"); записывает строку "Hello World!" на экран, давайте проверим, сохраняем файл с расширением *.java , * должно равняться названию класса, в данном случае, это newclass.java. Теперь нам надо откомпилировать программу в командной строке, для этого пишем путь до newclass.java и далее javac newclass.java всё, теперь запустим нашу программу, для этого пишем путь до newclass.class java newclass. См. следующие уроки.

Урок второй. Операции с числами


Это мой второй урок, в этом уроке, мы будем проходить различные операции с числами. Для начала откроем блокнот, публикуем класс командой public class, назовём его Addition. Теперь делаем вывод сообщений, командой public static void main (String [] args) и ставим скобки {} в них пишем:
Code
int fn = 6, sn = 3; //Запоминаем два числа
int op1, op2, op3, op4; //Запоминаем операции

op1 = fn+sn; //Складываем два числа
op2 = fn-sn; //вычитаем
op3 = fn*sn; //умножаем
op4 = fn/sn; //делим
System.out.println("Результат сложения: "+op1+" | Результат вычитания: "+op2+" | Результат умножения: "+op3+" | Результат деления: "+op4);//Выводим строку с результатами

Сохраняем как Addition.java, компилируем в командной строке через javac Addition.java и запускаем через java Addition. См. следующие уроки

Урок третий. Создаём точки. Знакомство с IDE


Здравствуйте, сегодня я вас научу как создать плавающую точку в нашей программе, чтобы это сделать, необходимо скачать специальную IDE машину, самые лучшие это: NetBeans IDE и Eclipse IDE, Я вам расскажу о каждой. Начнём с NetBeans IDE. NetBeans IDE — свободная интегрированная среда разработки приложений (IDE) на языках программирования Java, JavaFX, Python, PHP, JavaScript, C++ и ряде других. Но мы остановимся на Java, то что он поддерживает много языков-это плюс, но он много занимает места на винчестере, людям со слабым интернетом это будет долго. За то в NetBeans IDE легко подключить дополнительные библиотеки (Libraries) я вам советую LWJGL. Создание приложений в NetBeans IDE не составит труда, вы просто добавляете новый проект, добавляете класс и там всё пишете. Скачать его можно с http://netbeans.org/downloads/index.html .Теперь поговорим о Eclipse IDE. Это хорошая интегрированная среда разработки приложений, такая же как и NetBeans IDE. Он очень мало весит (50 мб) скачать его можно с: http://www.eclipse.org/downloads/
Мы остановимся на выборе NetBeans IDE, так как он лучше и удобнее. После того как мы установили программу, откроем её, создадим новый проект: File>new>Java Project, вводим желаемое имя проекта, например, PointExample, вот мы увидели рабочее место, для начала, удалим класс Main и создадим новый, под названием Point, удаляем всё кроме
Code
package pointexaple;

Это нужно для совместимости с проектом. Далее пишем:
Code
class Point {
      int x,y; //Создаём две точки
      Point(int x,int y){ //Функция Point
      this.x=x;
      this.y=y;//x=x, y=y
      }
      Point(){
          this(99,77);//Координата точки
      }
}
class My11{ //Создаём новый класс
      public static void main(String args[]){ //Наша "Любимая" функция
      Point p1=new Point();//Первая точка
      Point p2=new Point(77,88);//Вторая точка
      Point p3=new Point();//Третья точка
      p1.x=131;//Координата х первой точки
      p1.y=232;//Координата у первой точки

      System.out.println("p1.x="+p1.x+" p1.y="+p1.y);//Выводим координату первой точки
      System.out.println("p2.x="+p2.x+" p2.y="+p2.y);//Выводим координату второй точки
      System.out.println("p3.x="+p3.x+" p3.y="+p3.y);//Выводим координату третьей точки
}

Мы всё сделали, теперь жмём F11, программа откомпилировалась и теперь жмём F6, мы запустили проект. См. след. уроки.

Урок четвёртый. Просмотр кода интернет страницы


Привет всем. Открываем наш NetBeans (или Eclipse) создаём новый проект, называем ReadHTML, создаём класс SimpleURL. Теперь приступим к коду, пишем (удаляя всё кроме package ReadHTML;):

Code
import java.net.*; //Импортируем две библиотеки, 1-ая
import java.io.*; //2-ая

class SimpleURL{ //Создаём класс
      public static void main(String[] args){ //Массив строк          
      try{ // Смотрим ниже...
          URL bhv = new URL(" http://www.bhv.ru/ "); //Открываем сайт http://www.bhv.ru/
          BufferedReader br = new BufferedReader(new InputStreamReader(bhv.openStream()));//Читаем страницу
          String line;//Создаём строковое значение
          while ((line = br.readLine()) != null)//повторяем много раз, если есть ещё строка, тогда записываем её...
          System.out.println(line); //...выводим на экран...
          br.close(); //...и закрываем буффер
      }
      catch(MalformedURLException me){ //Если же такого хоста, сайта, не существует
          System.err.println("Unknown host: " + me); //Пишем ошибку
          System.exit(0); //И выходим
      }
      catch(IOException ioe){//Если невозможно присоединиться к хосту
      System.err.println("Input error: " + ioe); //и пишем ошибку
      }            
}            
}

Теперь поговорим о try и catch. Есть условие if/else, но они не могут обробатывать ошибки и будут пытаться работать в любом случае. На помощь приходит try и catch. Если ошибок не будет, тогда будут выполняться действия в блоке try, иначе в catch.
Надеюсь вам помог мой урок

Урок пятый. Фрейм и метка


Привет всем! Сейчас мы создадим фрейм и метку. Для начала необходимо открыть NetBeans IDE (Eclipse IDE) и создать новый проект, назовём его MyGUI (Graphical User Interface) и в нашем главном классе пишем код:
Code
package mygui; //Наш пакет
import java.awt.event.*; //ОБЯЗАТЕЛЬНО нужно съимпортировать эту библиотеку
public class Main {  //Класс
            public static void main(String[] args) {  //Массив строк
                MyFrame m = new MyFrame("Test",300,100);  //Потом пройдём
                    m.addWindowListener(new WindowAdapter(){  //Добавляем слушателя событий
                    public void windowClosing(WindowEvent e){  //Если мы закрываем окно
                        System.exit(0);  //Выходим из программы
                }
                });
            }
}

Далее мы создадим новый класс MyFrame, в нашем коде он обозначен как
Code
MyFrame m = new MyFrame("Test",300,100);  

То есть как m. Пишем в новый класс:
Code
package tests;
public class MyFrame extends javax.swing.JFrame{
            public MyFrame() {
            }
}

Если мы запустим, ничего не произоёдйт, потому что окно невидимое. Чтобы это исправить в паблик пишем:
Code
setSize(width,height);
setVisible(true);

setSize(w,h); w - ширина, h - высота задаёт размер окну
setVisible(bool); bool - true\false. - задаёт видимость окна на экране

Будет ошибка, потому что мы не указали аргументы в объявлении, пишем между скобками ()
Code
int width, int height

Но когда мы создавали фрэйм мы писали ещё текстувую строчку. Перед только что записанным кодом мы пишем:
Code
String str

А в самом паблике перед всем пишем:
Code
setTitle(str);

setTitle(string); string - текстовая переменная - задаёт назване окну
Уже почти всё готово, почти. Для того чтобы создать метку мы должны сделать контейнер, в котором всё будет храниться. Создаётся контейнер командой Container. В паблике, после команды setTitle пишем код:
Code
Container c = getContentPane();

Мы, в этот раз, не пользовались конструктором, а нашли контейнер в самом фрейме. Для работы контейнера нам необходимо импортировать библиотеку awt:
Code
import java.awt.*;

Далее нам нужно создать саму метку. Она создаётся командой Label и имеет только один аргумент - сам текст. После создания контейнера пишем:
Code
Label label = new Label("TEXT");

Вот и всё. Осталось только добавить непосредственно саму метку в контейнер. Для этого пишем после создания метки:
Code
c.add(label);

Включаем, проверяем. Всё работает. Также мы можем, режиме реального времени, изменять находящийся в метке текст. Делается это командой
setText(str); - str - текстовая строка
Мы можем изменить метку как нам угодно. Для этого существует огромное множество команд. Всем пока!

Урок шестой. Кнопки и события


Привет! Сейчас я расскажу как сделать кнопку и если нажать на неё выводилось сначала окошко ввода имени, потом фамилии, потом возраста, а потом в сообщении всё это выводилось на экран. Начнём. В паблик нашего класса MyFrame мы пишем:
Code
JButton button = new JButton("Press me!");

У кнопки, также как и у метки, аргументом является строка и она задаёт текст на самой кнопке. Далее мы должны импортировать библиотеку swing:
Code
import javax.swing.*;

Потом, после создания кнопки, мы добавляем её в наш контейнер:
Code
c.add(but1);

Если мы запустим исходник всё будет работать, но если нажимать на кнопочку ничего происходить не будет. Для исправления этого недоразумения создадим класс Handler в самом фрейме(не в паблике) пишем:
Code
public class Handler implements ActionListener{
public void actionPerformed(ActionEvent e){
if (e.getSource()==button){
String firstname = JOptionPane.showInputDialog("Введи имя");
String lastname = JOptionPane.showInputDialog("Введи фамилию");       
String age = JOptionPane.showInputDialog("Введи возраст");
JOptionPane.showMessageDialog(null, "Имя: "+firstname+" | Фамилия: "+lastname+" | Возраст:"+age);
}
}
}
Осталось только добавить само событие для кнопки. Для этого, после добавления кнопки в контейнер, пишем следующее:
Code
Handler handler = new Handler();

Мы создали событие для кнопки. Далее:
Code
button.addActionListener(handler);

Добавляем слушателю событий само событие. Компилируем, запускаем, всё работает.

Урок седьмой. Знакомство с движком JGame


Привет всем! Я решил добавить новый урок и на этот раз о джава движке - JGame. Он лёгкий, быстрый, функциональный и кросс платформенный. Вся информация как и откуда скачать движок, как поставить вы можете почитать на официальном сайте движка. Также там есть туториалы, но на английском. Ставим JGame на Netbeans:
Идём в Tools->Libraries;
Создаём новую библиотеку: "New Library";
Введите, к примеру, имя "Jgame", выберите "Class Library" из drop-down меню, если меню не появилось попробуйте проделать операцию заново;
Нажмите "Ok";
Выберите "Classpath";
Нажмите на кнопку "Add Jar/Folder";
Перейдите в папку, куда вы установили JGame и выберите Jar файл: jgame-all.jar;
Нажмите на "Sources";
Нажмите "Add Jar/Folder";
Перейдите в папку, куда вы установили JGame и выберите папку: src-base and нажмите "Add Jar/Folder"
Повторите шаги 9-10 для добавления нужных файлов JGame: src-jogl и src-midp
Нажмите Javadoc;
Перейдите в папку, куда вы установили JGame и выберите папку: javadoc и кликните "Add Jar/Folder"
Теперь нажмите "Okay" и Library Manager выключится сам.
Далее нужно поставить саму библиотеку, для этого на проекте жмём ПКМ => Properties => Libraries. Жмём кнопочку "Add Library" и ищем в списке JGame. Создаём класс, назовём его, например, Example1. Пишем код (весь код в комментариях):
Code
package Lessons; // Наш пакет

import jgame.*; // Импортируем пакет jgame
import jgame.platform.*; // Импортируем под-пакет jgame.platform

public class Example1 extends JGEngine {  // Создаём класс с использованием движка

  public static void main(String [] args) { // Массив строк
   new Example1(new JGPoint(640,480)); // Создаём точку с координатами 640-х и 480-у (это необходимо для создания окна)
  }
  public Example1() { // Публикуем создание апплета
   initEngineApplet(); // Инициализируем апплет
  }
  public Example1(JGPoint size) { // Так мы создаём окно
   initEngine(size.x,size.y); // Инициализируем движок с координатами точек
  }
  public void initCanvas() { // Создаём "холст"
   setCanvasSettings(
    20,  // высота холста в тайлах
    15,  // ширина холста в тайлах
    16,  // высота одного тайла
    16,  // ширина одного тайла
         //    (на заметку: полный размер = 20*16=320  x  15*16=240)
    null,// цвет переднего плана -> используем белый
    null,// цвет заднего плана -> используем чёрный
    null // стандартный шрифт -> используем обычный Arial шрифт
   );
  }
  public void initGame() // Инициализируем игру
   setFrameRate(// Задаём частоту смены кадров
    35,// 35 = частота кадров, 35 кадров в секунду
    2  //  2 = пропускаем кадры, пропустить не более 2 кадров перед отображением
       //      кадра снова
   );
  }

  double texttimer=0; // Таймер (значение) положения текста
  public void doFrame() { // Выполняем  
   texttimer += 0.05; // Прибавляем к таймеру 0.05
  }
  public void paintFrame() {// Рисуем текст
   setColor(JGColor.yellow); // Цвет текста
   drawString("Hello world",
    viewWidth()/2  + 50*Math.sin(texttimer), // x положение
    viewHeight()/2 + 50*Math.cos(texttimer), // y положение
    0 // положение текста
      // (-1 слева, 0 по середине, 1 справа)
   );
  }
}

В итоге мы получили текст, который движется по кругу. Урок окончен.


Пока только 7 уроков, но я может продолжу их писать. Плюс ко всему я изучаю движок JGame, поэтому я могу писать уроки по созданию игр на джава.


Сообщение отредактировал: JavaMan - Пятница, 25.11.2011, 14:27
MrIncrof Дата: Понедельник, 07.11.2011, 19:25 | Сообщение # 2
( Приченить добро! )
Просмотр профиля: MrIncrof

Сообщений: [1553]
Добавил ещё один урок
NIK-name Дата: Понедельник, 07.11.2011, 22:41 | Сообщение # 3


Сообщений: [229]
Читабельность кода в уроках просто ужасна. Новиче, мало того, что в языке не ориентируется, так еще и не строчки не поймет. Ты слышал о таких клавишах, как Tab или пробел? Если да, тогда изучи самую начльную часть теории "хорошего стиля программирования", и оформи код нормально. Поверь, будет гораздо лучше!

Добавлено (07.11.2011, 22:41)
---------------------------------------------
Четвертый урок

Quote (JavaMan)
try{ //Не знаю как объяснить, но команда важная


Я под столом smile . Как можно писать уроки, если ты сам не понимаешь, что там написано? Код, наверное, с книжки содрал? Ладно wink

Если что, эта команда означает обработку исключений. Ключевые слова try и catch служат обработчиками ошибок. Если твой сайт существует, то выполняется действие в блоке try, если же нет, тогда выскакивает ошибка, которую ты прописал в блоке catch. Учи язык, для начала wink
MrIncrof Дата: Вторник, 08.11.2011, 12:07 | Сообщение # 4
( Приченить добро! )
Просмотр профиля: MrIncrof

Сообщений: [1553]
NIK-name, это давний урок, а создать тему захотел из-за 2-х новых (и в будущем ещё больше) уроков.
Quote (NIK-name)
Ключевые слова try и catch служат обработчиками ошибок

Я это знаю, но как объяснить...
NIK-name Дата: Среда, 09.11.2011, 20:08 | Сообщение # 5


Сообщений: [229]
Ну вот, теперь гораздо лучше! А на счет

Quote (JavaMan)
как объяснить...


Как вариант, скажи чтло есть такая логическая функция, типа if/else. Но она обрабатывает условие вызова ошбки. Т.е. если ошибки в работе программы нет (в нашем случае сайт найден), тогда выполняется код, прописанный в блоке try. Иначе, если ошибка всет-таки найдена, тогда выполняется код в блоке catch. Что-то типа такого
MrIncrof Дата: Пятница, 25.11.2011, 14:29 | Сообщение # 6
( Приченить добро! )
Просмотр профиля: MrIncrof

Сообщений: [1553]
Добавил новый урок и изменил оформление biggrin
Форум разработчиков игр » Программирование » Java » Уроки по Java от JavaMan'а (Все мои уроки будут тут)
Страница 1 из 11
Поиск:

При полном или частичном копировании материалов сайта ссылка на Make-Games.ru обязательна. Make-Games.ru © 2008 - 2016 Хостинг от uWeb
Топ Разработка игр Рейтинг@Mail.ru