javafx learn

初学javafx 写了个小例子,没有使用图片, 代码较乱 如下:

/**//*
 * JDI.fx
 *
 * Created on 2009-7-22, 19:06:20
 
*/


package gui;

import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.text.Text;
import javafx.scene.text.Font;
import javafx.scene.paint.Color;
import javafx.scene.effect.Reflection;
import javafx.scene.shape.Line;
import javafx.scene.shape.Rectangle;
import javafx.scene.*;
import javafx.scene.effect.*;
import javafx.scene.input.KeyEvent;
import javafx.scene.input.KeyCode;
import javafx.scene.image.*;
import javafx.animation.Timeline;
import javafx.animation.KeyFrame;
import javafx.animation.Interpolator;
import javafx.scene.control.Button;
import javafx.scene.input.MouseEvent;
/** *//**
 * 
@author ericjoe
 
*/

// var k = KeyEvent.CHAR_UNDEFINED.
var complete = false;

var background
=ImageView {
             
              focusTraversable:
true
              onKeyPressed: function( e: KeyEvent ):Void 
{
                  
if(complete==false)move(e);
              }

            }

var logot
=0;
var logarc
=Rectangle {
        x: 
0, y: 0
        width: 
200, height: 80
        fill: Color.BLUEVIOLET
    }

var logoline
=Line {
        startX: 
10, startY:40
        endX: 
690, endY: 40
        strokeWidth: 
1
        stroke: Color.RED
 }

var gamelogo
=Text {
      fill:Color.BLACK
       translateX:bind logot
      effect:Reflection 
{
              fraction: 
0.75
              topOffset: 
0.0
              topOpacity: 
0.4
              bottomOpacity: 
0.0
          }

        font : Font 
{
            size: 
30;
}

        x: 
-120, y: 30
        content: 
"move game"
    }

var goNum
=0;

var state
= bind if(complete)then "complete! use {goNum} steps" else "step:{goNum}";
var statex
=0;
var gamestate
=Text {
      fill:Color.YELLOWGREEN
        font : Font 
{
            size: 
24
        }

        x: 
800, y: 65
        content: bind state;
    }

 

var gameline
=Line {
        startX: 
10, startY:80
        endX: 
690, endY: 80
        strokeWidth: 
1
        stroke: Color.BLUEVIOLET
 }

 
var gameframe
=Rectangle {
        x: 
10, y: 100
        width: 
580, height: 580
        fill: Color.BLACK
        focusTraversable:
true
    }


 var t
=[1..8];
 var r
= new java.util.Random();
 var cards:Card[]
= getCards();
 
 function getCards():Card[]
{
     var n 
= 0;
     var cardsinit:Card[];
    
for(i in [0..7]){
      var card
=Card{
         recX:
10+(580/3)*n
         recY:
100+(580/3)*(i/3)
         cardTextX: 
10+(580/3)*n+70
         cardTextY:
100+(580/3)*(i/3)+120
         cardTextConten:getTextContent();
       }

     insert card into cardsinit;
     n
++;
     
if(n==3)then n=0;
  }

  t
=[1..8];
  cardsinit;
}

var main
=true;
var changeButton
=Button {
        text: 
"change"
        layoutX:
900
        layoutY:
10
        onMousePressed: function( e: MouseEvent ):Void 
{
             cards
=getCards();
              btx
=10+(580/3)*2;
              bty
=100+(580/3)*2;
              complete
=false;
              goNum
=0;
        }

       onKeyPressed: function( e: KeyEvent ):Void 
{
                  
if(complete==false)move(e);
              }

    }

 var htext
="help";
 var helpButton
=Button {
        text: bind htext;
        layoutX:
1000
        layoutY:
10
        width:
100
        action: function() 
{
            htext
=if(htext=="help") then "back to game" else "help";
            main
=if(main==true)then false else true;
        }

        onKeyPressed: function( e: KeyEvent ):Void 
{
                  
if(complete==false)move(e);
              }

    }

 var rightgroup
=Group {
    translateX:bind statex;
        content: [
          changeButton,
          gamestate,
          helpButton
        ]
    }


function getTextContent():Integer
{
  
//  println(t.size());
   var i = t[r.nextInt(sizeof t)];
   delete i from t;
   
return i;
    }

var btx:Number
=10+(580/3)*2;
var bty:Number
=100+(580/3)*2;
var cardBlank 
= Rectangle {
        x: bind btx ,
        y: bind bty ,
        width: 
580/3, height: 580/3
        fill: Color.BLACK
      }

 var cardsc
=0.0;
var cardsGroup
=  Group {
       opacity:bind cardsc;
       focusTraversable:
true
        content:bind [
             cards,
             cardBlank
        ]
    }

var helptext 
= Text {
         font : Font 
{
             size: 
24
         }

         fill:Color.YELLOWGREEN
         x: 
150, y: 300
         content: 
" use ↑↓← → to move  the  chess";

     }

  var scorrt
=0;
 var scorrtext 
= Text {
         font : Font 
{
             size: 
12
         }

         translateX:bind scorrt;
         fill:Color.YELLOWGREEN
         layoutX:
-110
         layoutY:
95
        
// x: 10, y: 95
         content: "a javafx example";

     }

     


var mainSence 
= Scene {
    width: 
600
    height:
700
    fill:Color.BLACK
        content:bind [
           background,
           rightgroup,
           logoline,
           scorrtext,
           logarc,
            gamelogo,
            gameline,
            gameframe,
            
if(main)then cardsGroup else helptext
        ]
    }

Stage 
{
    title: 
"move game"
    resizable:
false    
    scene: mainSence
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值