mini-curso javafx aula3 ufpb
DESCRIPTION
Slides da 3ª aula do mini-curso de JavaFX que ministrei na UFPBTRANSCRIPT
Raphael Marques
Mestrando em Informática da [email protected]
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 [email protected]