ФЭНДОМ


Главная | Описание языка | FXD | API | Примеры | Инструменты Разработки | Новости | Ресурсы | Форум

GalaxyFXDeepSpace

Движок Править

GalaxyFX Deep Space - это движок, написанный на JavaFX, который позволяет описывать космические корабли, базы и планеты.

На базе движка можно разработать свою игру. Для этого нужно:

  • Придумать сюжет и разбить его на карты и миссии
  • Описать каждую карту, задав расположение кораблей, планет и определив цели.


Сайт разработки:

http://kenai.com/projects/galaxyfx/pages/Home

Исходный код Править

Исходный код движка можно скачать из репозитория:

 > svn checkout https://svn.kenai.com/svn/galaxyfx~master

Игра Alien Threat Править

Alien treat

Прототип игры 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
                }
            ]
        }
    }

}