mini-curso javafx aula3 ufpb

Post on 28-Jun-2015

3.153 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Slides da 3ª aula do mini-curso de JavaFX que ministrei na UFPB

TRANSCRIPT

Raphael Marques

Mestrando em Informática da UFPBjose.raphael.marques@gmail.comraphaelmarques.wordpress.com

2

var video = Media{source: "http://..."

};

var player = MediaPlayer{media: videoautoPlay: true

};

var view = MediaView{mediaPlayer: player

};

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Site:

http://sites.google.com/site/joseraphaelmarques/

Link lateral: RaceFX Sessão: Parte 1 Link na página: src completo Descompactar no pacote racefx

17

Site:

http://sites.google.com/site/joseraphaelmarques/

Link lateral: RaceFX Sessão: Parte 2 Link na página: src baixar Descompactar no pacote racefx

18

19

public class Track{

public-init var down: Image;public-init var top: Image;public-init var layout: Image;

var layoutView = ImageView{image: layout};

public-read var downView = ImageView{image: down};

public-read var topView = ImageView{image: top};

public function isTrack(x: Number, y: Number):Boolean{return layoutView.contains(x,y);

}}

20

21

public-init var track: Track;

function updateMove(factor: Number):Void{var vx = Math.cos(angle) * vel * factor;var vy = -Math.sin(angle) * vel * factor;

var i = x + vx;var j = y + vy;

if(not track.isTrack(i, j)){vel = 0;

}else{x = i;y = j;

}}

22

23

def track = Track{down: Image {

url: "{__DIR__}track1down.png"}top: Image {

url: "{__DIR__}track1top.png"}layout: Image {

url: "{__DIR__}track1layout.png"}

}

24

25

var checkpoint1 = Polygon{

points: [219,1,247,1,247,137,219,137]

};

var checkpoint2 = ...

var checkpoint3 = ...

var checkpoint4 = ...

var checkpointcar1 = checkpoint2;

var checkpointcar2 = checkpoint2;

26

27

var laps1 = 0;

var laps2 = 0;

var laps1Text = Text {...}

var laps2Text = Text {...}

28

function checkLaps(){if(checkpointcar1.contains(car1.x, car1.y)){

if(checkpointcar1 == checkpoint1){laps1++;checkpointcar1 = checkpoint2;

}else ...}if(checkpointcar2.contains(car2.x, car2.y)){

...}

}

29

public override function create():Node{Group{

content: [track.downView,car1,car2,track.topView,laps1Text,laps2Text,

]}

}

30

31

Site:

http://sites.google.com/site/joseraphaelmarques/

Link lateral: RaceFX Sessão: Parte 3 Link na página: src baixar Descompactar no pacote racefx

Baixe o src completo da parte 2 se necessário.

32

33

34

Server Client

Internet

35

Server Client

Internet

36

Server Client

Internet

37

Server Client

Internet

Client Server SenderCar float x;

float y;

float angle; ReceiverListener public void receive(SenderCar car);

MySocket public void send(SenderCar car);

38

39

public var socket: MySocket;

public function update(time: Long):Void{...if(vel != 0){

updateMove(factor);socket.send(new SenderCar(x,y,angle));

}}

40

override function receive(car: SenderCar):Void{//evitar deadlockFX.deferAction(

function ():Void{this.x = car.x;this.y = car.y;this.angle = car.angle;

});

}

41

42

43

44

45

Button {

text: "PLAY LOCAL“

action: function() {

close();

game.play();

}

}

46

function close():Void{var timeline = Timeline {

keyFrames : [KeyFrame {

time: 1svalues : translateX => -640

tween Interpolator.LINEAR}

]};timeline.play();

}

47

48

public var rede = false;public var server = false;

function update():Void{...if(not rede){

car2.update(time);}...

}

49

public function reset():Void{...if(rede and not server){//client

car1.y = 90;car2.y = 50;

}else{//server ou localcar1.y = 50;car2.y = 90;

}…

}

50

function checkKey(code:KeyCode,value:Boolean){if(code == KeyCode.VK_LEFT){

...} else

...} else if(not rede){

if(code == KeyCode.VK_A){...} else ...

}}

51

52

var game = Game{

rede: false

server: false

};

53

54

Raphael Marques

Mestrando em Informática da UFPBjose.raphael.marques@gmail.comraphaelmarques.wordpress.com

top related