Главная | Описание языка | FXD | API | Примеры | Инструменты Разработки | Новости | Ресурсы | Форум
Движок[]
GalaxyFX Deep Space - это движок, написанный на JavaFX, который позволяет описывать космические корабли, базы и планеты.
На базе движка можно разработать свою игру. Для этого нужно:
- Придумать сюжет и разбить его на карты и миссии
- Описать каждую карту, задав расположение кораблей, планет и определив цели.
Сайт разработки:
Исходный код[]
Исходный код движка можно скачать из репозитория:
> svn checkout https://svn.kenai.com/svn/galaxyfx~master
Игра Alien Threat[]
Прототип игры Alien Threat был разработана на HackDay 2 вместе с Алексеем.
Игра состоит из 3х карт.
- Уничтожить зонд иноплянетян
- Уничтожить зонд и конвой иноплянетян
- Уничтожить материнский корабль иноплянетян
Игра[]
Main файл[]
import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.paint.*;
import javafx.scene.input.*;
import galaxyfx.deepspace.design.*;
Stage {
fullScreen: true
title: "Alien Threat"
scene: Scene {
width: DeepSpace.WIDTH
height: DeepSpace.HEIGHT
fill: Color.BLACK
content: DeepSpace {
missions: [
"alienthreat.mission.AlienMission"
]
options: Options {
autoplay: true
systemKeyboad: SystemKeyboard {}
playerKeyboads: [
PlayerKeyboard {
acceleration: KeyCode.VK_UP
deceleration: KeyCode.VK_DOWN
left: KeyCode.VK_LEFT
right: KeyCode.VK_RIGHT
}
PlayerKeyboard {
acceleration: KeyCode.VK_W
deceleration: KeyCode.VK_S
left: KeyCode.VK_A
right: KeyCode.VK_D
}
]
}
}
}
}
Описание миссий[]
import galaxyfx.deepspace.mission.*;
Mission{
name: "Alien Threat"
maps: [
"alienthreat.mission.ZondMap",
"alienthreat.mission.ZondConvoyMap",
"alienthreat.mission.MotherShipMap",
]
}
Описание карт[]
Map {
name: "Destroy Alien Zond"
spacecrafts: [
HumanShuttle {
flags: Flag.HUMANITY
direction: Math.PI
target: DestroyObjectTarget{flag: Flag.ALIEN}
center: Vector {x: x - 50 y: -y - 100 }
}
AlienZond {
flags: Flag.ALIEN
showEnergy: true
direction: Math.atan2(x, y)
target: LandObjectTarget {flag: Flag.PLANET}
center: Vector {x: -x y: -y}
velocity: Vector {x: vx y: vy}
}
]
space: NewtonSpace {
objects: [
HumanPlanet {
flags: Flag.PLANET
direction: - Math.PI / 2
center: Vector {x: x y: y}
}
]
}
}
Описание Кораблей[]
public class AlienSpacecraft extends Spacecraft{
override var name = "alien spacecraft";
override var radius = 80;
override var operationSystem = OperationSystem{
program:Program.load("alienthreat.alien.AlienProgram");
}
override var guns = Gun{
//center: Vector{ x: 0.6 * radius y: 0 }
maxEmittedTime: 4.5
shape: GameResource.EMPRTY
};
override var engines = [
Engine{
maxEmittedTime: 2
center: Vector{ x: -radius y: radius / 2 }
shape: GameResource.EMPRTY
}
Engine{
maxEmittedTime: 2
center: Vector{ x: -radius y: -radius / 2 }
shape: GameResource.EMPRTY
}
];
override var hull = Hull{
radius: radius
shape: Group {
content: [
SVGComponent{
radius: radius
content: GameResource.ALIEN_SPACECRAFT
}
]
}
}
}