mini-curso javafx aula3 ufpb

55
Raphael Marques Mestrando em Informática da UFPB [email protected] raphaelmarques.wordpress.com

Upload: raphael-marques

Post on 28-Jun-2015

3.153 views

Category:

Documents


1 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Mini-curso JavaFX Aula3 UFPB

Raphael Marques

Mestrando em Informática da [email protected]

Page 2: Mini-curso JavaFX Aula3 UFPB

2

Page 3: Mini-curso JavaFX Aula3 UFPB

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

};

var player = MediaPlayer{media: videoautoPlay: true

};

var view = MediaView{mediaPlayer: player

};

3

Page 4: Mini-curso JavaFX Aula3 UFPB

4

Page 5: Mini-curso JavaFX Aula3 UFPB

5

Page 6: Mini-curso JavaFX Aula3 UFPB

6

Page 7: Mini-curso JavaFX Aula3 UFPB

7

Page 8: Mini-curso JavaFX Aula3 UFPB

8

Page 9: Mini-curso JavaFX Aula3 UFPB

9

Page 10: Mini-curso JavaFX Aula3 UFPB

10

Page 11: Mini-curso JavaFX Aula3 UFPB

11

Page 12: Mini-curso JavaFX Aula3 UFPB

12

Page 13: Mini-curso JavaFX Aula3 UFPB

13

Page 14: Mini-curso JavaFX Aula3 UFPB

14

Page 15: Mini-curso JavaFX Aula3 UFPB

15

Page 16: Mini-curso JavaFX Aula3 UFPB

16

Page 17: Mini-curso JavaFX Aula3 UFPB

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

Page 18: Mini-curso JavaFX Aula3 UFPB

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

Page 19: Mini-curso JavaFX Aula3 UFPB

19

Page 20: Mini-curso JavaFX Aula3 UFPB

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

Page 21: Mini-curso JavaFX Aula3 UFPB

21

Page 22: Mini-curso JavaFX Aula3 UFPB

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

Page 23: Mini-curso JavaFX Aula3 UFPB

23

Page 24: Mini-curso JavaFX Aula3 UFPB

def track = Track{down: Image {

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

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

url: "{__DIR__}track1layout.png"}

}

24

Page 25: Mini-curso JavaFX Aula3 UFPB

25

Page 26: Mini-curso JavaFX Aula3 UFPB

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

Page 27: Mini-curso JavaFX Aula3 UFPB

27

Page 28: Mini-curso JavaFX Aula3 UFPB

var laps1 = 0;

var laps2 = 0;

var laps1Text = Text {...}

var laps2Text = Text {...}

28

Page 29: Mini-curso JavaFX Aula3 UFPB

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

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

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

...}

}

29

Page 30: Mini-curso JavaFX Aula3 UFPB

public override function create():Node{Group{

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

]}

}

30

Page 31: Mini-curso JavaFX Aula3 UFPB

31

Page 32: Mini-curso JavaFX Aula3 UFPB

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

Page 33: Mini-curso JavaFX Aula3 UFPB

33

Page 34: Mini-curso JavaFX Aula3 UFPB

34

Server Client

Internet

Page 35: Mini-curso JavaFX Aula3 UFPB

35

Server Client

Internet

Page 36: Mini-curso JavaFX Aula3 UFPB

36

Server Client

Internet

Page 37: Mini-curso JavaFX Aula3 UFPB

37

Server Client

Internet

Page 38: Mini-curso JavaFX Aula3 UFPB

Client Server SenderCar float x;

float y;

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

MySocket public void send(SenderCar car);

38

Page 39: Mini-curso JavaFX Aula3 UFPB

39

Page 40: Mini-curso JavaFX Aula3 UFPB

public var socket: MySocket;

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

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

}}

40

Page 41: Mini-curso JavaFX Aula3 UFPB

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

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

});

}

41

Page 42: Mini-curso JavaFX Aula3 UFPB

42

Page 43: Mini-curso JavaFX Aula3 UFPB

43

Page 44: Mini-curso JavaFX Aula3 UFPB

44

Page 45: Mini-curso JavaFX Aula3 UFPB

45

Page 46: Mini-curso JavaFX Aula3 UFPB

Button {

text: "PLAY LOCAL“

action: function() {

close();

game.play();

}

}

46

Page 47: Mini-curso JavaFX Aula3 UFPB

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

keyFrames : [KeyFrame {

time: 1svalues : translateX => -640

tween Interpolator.LINEAR}

]};timeline.play();

}

47

Page 48: Mini-curso JavaFX Aula3 UFPB

48

Page 49: Mini-curso JavaFX Aula3 UFPB

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

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

car2.update(time);}...

}

49

Page 50: Mini-curso JavaFX Aula3 UFPB

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

Page 51: Mini-curso JavaFX Aula3 UFPB

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

...} else

...} else if(not rede){

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

}}

51

Page 52: Mini-curso JavaFX Aula3 UFPB

52

Page 53: Mini-curso JavaFX Aula3 UFPB

var game = Game{

rede: false

server: false

};

53

Page 54: Mini-curso JavaFX Aula3 UFPB

54

Page 55: Mini-curso JavaFX Aula3 UFPB

Raphael Marques

Mestrando em Informática da [email protected]