1. Напишете първата си игра на двигател за игри
![](https://cdn.codegym.cc/images/article/7e7f4914-7343-4837-b3a0-00516cbaefa6/1080.jpeg)
При внедряването на всяка компютърна игра има три етапа:
- Инициализиране на играта. Това включва различни подготвителни действия: задаване на размера на игралното поле и чертането му, създаване и настройка на игрови обекти в първоначалната им позиция, Howто и всяHowви други действия, които трябва да бъдат извършени в началото на играта.
- Играя играта. Това може да включва движещи се обекти в играта, действия на играча, спечелени точки за отчитане, Howто и всяHowви други действия, които трябва да се извършват на редовни интервали or в отговор на щраквания на бутони и натискане на клавиши.
- Край на играта. Това може да включва спиране на анимации, съобщение за победа/загуба и всяHowви други действия, които трябва да бъдат извършени в края на играта.
Сега ще преминем през всичките три етапа в ред и ще видим How игровият двигател CodeGym може да помогне за улесняването на този процес.
2. Инициализиране на играта
Когато използвате игровия двигател CodeGym, инициализацията на играта се състои само от две стъпки:
Стъпка 1: Създайте основния клас на играта
За да създадете своя собствена игра, базирана на игровия двигател CodeGym, трябва да създадете клас и да го накарате да разшири класа Game (com.codegym.engine.cell.Game). Това ще даде на вашия клас възможността да извиква методи на двигателя на играта , а двигателят ще може да извиква методи на вашия клас . Пример:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
...
}
Стъпка 2: Заменете initialize()
метода
В initialize()
метода извършвате всички действия, необходими за стартиране на играта: създаване на игрално поле, създаване на всички игрови обекти и т.н. Просто трябва да декларирате този метод в класа, който наследява класа Game. Пример:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
@Override
public void initialize() {
// Here we perform all the actions to initialize the game and its objects
}
}
Методът initialize()
е аналогичен на main()
метода. Това е входната точка, от която започва да се изпълнява целият ви code на играта.
3. Създаване на игралното поле
Създаването на игралното поле също е процес в две стъпки:
Стъпка 1: Разделете игралното поле на клетки
Енджинът на играта разделя цялото игрално поле на клетки. Минималният размер е 3×3, а максималният 100×100.
Размерът на игралното поле е постоянен, след като бъде създадено. Не е необходимо хоризонталните и вертикалните размери да са еднакви. Например ширина 7 и височина 9:
Моля, обърнете внимание, че номерирането на клетките започва от горния ляв ъгъл.
За да зададете размера на игралното поле, използвайте void setScreenSize(int width, int height)
метода. Той определя размера на игралното поле. Параметрите му са броят на клетките в хоризонталните ( width
) и вертикалните ( height
) измерения. Обикновено се извиква веднъж, когато играта започне. Пример:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
@Override public void initialize()
{
// Set the field size to 7x9 cells
setScreenSize(7, 9);
...
}
}
Когато пишете игра, може да се наложи да получите текущата ширина и височина на игралното поле. Съответните методи са int getScreenWidth()
и int getScreenHeight()
.
Стъпка 2: Включете/изключете решетката (по избор)
Ако не ви харесва черна решетка, разделяща клетките на вашето игрално поле, тогава можете да я изключите.
Методът void showGrid(boolean isShow)
активира/деактивира мрежата, която разделя клетките. Мрежата се показва по подразбиране. За да го изключите, извикайте този метод и предайте false
като аргумент:
showGrid(false);
Резултат:
За да включите отново мрежата, извикайте метода по следния начин:
showGrid(true);
Резултат:
4. Примитивна програма
Нека напишем много примитивна игра, която използва игровия двигател CodeGym. Ще направи 3 неща:
- Той ще раздели игралното поле на 9 клетки: 3×3
- Това ще деактивира решетката (линиите между клетките)
- Централната клетка ще бъде боядисана в синьо и буквата
X
ще бъде написана в нея.
Крайният code изглежда така:
public class MySuperGame extends Game
{
@Override
public void initialize()
{
// Create a 3x3 playing field
setScreenSize(3, 3);
// Disable displaying the grid
showGrid(false);
// Change the background of the central cell to blue and display "X" in it
setCellValueEx(1, 1, Color.BLUE, "Х", Color.ORANGE, 50);
}
}
В този пример игралното поле е настроено на 3x3, решетката е изключена и оранжева буква X
на половината от височината на клетката е поставена в централната клетка със син фон. Това ще бъде първото нещо, което играчът вижда, когато играта започне.
GO TO FULL VERSION