JavaFX
Advertisement

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


Конкурс Tower defence[]

Сайт конкурса Tower Defence

Вы можете принять участие в качестве:

  • Программиста
  • Дизайнера
  • Блоггера

TD

Декларативный синтаксис[]

Создание основного окна:

Пример использования Картинка
import javafx.stage.Stage;
import javafx.scene.Scene;

Stage {
    title: "Tower defence"
    scene: Scene {
        width: 550
        height: 550
        content: []
    }
}
TDStage

Layouts, Controls[]

Пример использования Картинка
HBox {

    spacing: 15

    translateX: 10
    translateY: 10

    nodeHPos: HPos.CENTER
    nodeVPos: VPos.CENTER

    content: [
        Button {
            text: "Play"
            action: function() {}
        }
        Button {
            text: "Pause"
            action: function() {}
        }
        Label {
            text: "Status"
        }
    ]
}
TDLayout

Каскадные таблицы стилей - CSS[]

Пример использования Картинка
Scene {
    stylesheets: "{__DIR__}style.css"
}
.button {
    -fx-text-fill: #e4f3fc;
    -fx-font: 15pt "Tahoma Bold";
    -fx-padding: 10;
    -fx-color: #2d4b8e
}

.button:hover{
    -fx-color: #395bae;
}

.label1 {
    -fx-text-fill: green;
    -fx-font: 20pt "Tahoma Bold";
}
TDCSS

Связывание данных[]

 var a = bind expr<param1,..,paramN>
 Component{
   attribute: bind expr<param1,..,paramN>
 }  


Пример использования Картинка
var status = "initial";

HBox {
    content: [
        Button {
            text: "Play"
            action: function() {
                status = "Played"
            }
        }
        Button {
            text: "Pause"
            action: function() {
                status = "Paused"
            }
        }
        Label {
            styleClass: "label1"
            text: bind "Status: {status}"
        }
    ]
}

TDBind



Дорога[]

Пример использования Картинка
Path {
    stroke: Color.GRAY
    strokeWidth: 20
    elements: [
        MoveTo { x: 50, y: 120 }
        LineTo { x: 250, y: 120 }
        ArcTo {
            x: 250, y: 300, radiusX: 25,
            radiusY: 20, sweepFlag: true
        }
        LineTo { x: 150, y: 300 }
        ArcTo {
            x: 150, y: 480, radiusX: 25,
            radiusY: 20, sweepFlag: false
        }
        LineTo { x: 340, y: 480 }
    ]
}
TDPath



Существо[]

class Creature extends CustomNode {

    public override function create(): Node {
        Group {
            content: []
        }
    }
}
Пример использования Картинка
class Creature extends CustomNode {

    public override function create(): Node {
        ImageView {
            image: Image {
                url: "{__DIR__}star.png"
            }
        }
    }

}
TDCreature


Анимация[]

Пример использования Картинка
PathTransition {
	duration: 15s
	node: creature
	path: AnimationPath.createFromPath(path)
	interpolator: Interpolator.LINEAR
	orientation: OrientationType.ORTHOGONAL_TO_TANGENT
}.play();
TDAnimationPath



Пример использования Картинка
def N = 5;

Timeline {
    keyFrames: for(i in [0..<N])KeyFrame {
        time: 2s.mul(i)
        action: function(){
            insert Creature { path: path  } into creatures;
        }

    }
}.play();
TDAnimationTimeline


Advertisement