Petit jeu avec javafx

Soyez le premier à donner votre avis sur cette source.

Vue 13 577 fois - Téléchargée 1 751 fois

Description

Jetez un coup d'oeuil dans la source et vous comprendrez de quoi il s'agit... Pas trop de commentaire !!!!

Source / Exemple :


/*

  • Main.fx
*
  • Created on Dec 8, 2009, 4:33:04 PM
  • /
package jeux; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.text.Text; import javafx.scene.text.Font; import javafx.scene.shape.Circle; import javafx.scene.paint.Color; import javafx.scene.Group; import javafx.util.Math; import javafx.animation.Timeline; import javafx.animation.KeyFrame; import javafx.animation.Interpolator; import javafx.scene.input.MouseEvent; import javafx.scene.effect.GaussianBlur; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; import java.lang.Void; import javafx.scene.Node; import javafx.util.Sequences.indexOf; var ui = Escobar_GameUI{}; var opacite = 1.0; ui.jouezbar.visible = true; ui.joueztxt.visible = true; ui.gameovbar.visible = false; ui.gameovtxt.visible = false; ui.acme.visible = false; def WIDTH = 455; def HEIGHT = 370; def RADIUS = 20; var gunLeft = false; var gunRight = false; var scene: Scene; var circles : Circle [] = []; var timelines : Timeline[]; var level = bind score / 10; var levelTimes = [1s, 0.9s, 0.7s, 0.6s, 0.5s, 0.4s]; var circ : Circle; var score : Integer; var lives : Integer = 5 on replace { if (lives == 0) { for (t in timelines){ t.stop(); ui.jouezbar.visible = false; ui.joueztxt.visible = false; ui.gameovbar.visible = true; ui.gameovtxt.visible = true; player.stop(); }; } }; var stage:Stage = Stage { resizable: false scene: scene = Scene { content: Group { content: [ui, Text { font : Font { size : 16 } fill:Color.WHITE x: 10 y: 35 content: bind "{score}" }, Text { font : Font { size : 16 } fill:Color.WHITE x: 329 y: 35 content: bind "{level}" }, Text { font : Font { size : 16 } fill:Color.WHITE x: 162 y: 35 content: bind "{lives}" }, Group { content: bind circles effect: bind if (lives == 0) GaussianBlur { radius: 10 } else null; }, ] } } } function createCircle() : Void { def x = Math.random() * 300; var circ : Circle = Circle { centerX: x, centerY: 0 radius: RADIUS fill: Color.BLACK stroke:Color.WHITE strokeWidth:2 onMousePressed: function (evt: MouseEvent) : Void { if (lives > 0) { delete circ from circles; score++; createSmashAnimation(circ.centerX, circ.centerY); } } } insert circ into circles; var move = Timeline { repeatCount: 1 keyFrames : [ KeyFrame { time: 10s values: [ circ.centerY => scene.height tween Interpolator.EASEOUT ] action: function () { if (indexOf(circles, circ) != -1) { delete circ from circles; lives--; } } } ] }; move.play(); insert move into timelines; } function createSmashAnimation(x: Number, y : Number) : Void { var particles = for (i in [0 .. 10]) Circle { centerX: x, centerY: y radius: 4 fill:Color.WHITE } insert particles into circles; for (particle in particles) { def xTarget = x + (Math.random() - .5) * scene.width/4; def yTarget = y + (Math.random() - .5) * scene.height/4; Timeline { repeatCount: 1 keyFrames : [ KeyFrame { time: 1s values: [ particle.centerX => xTarget, particle.centerY => yTarget ] action: function() { delete particle from circles; } } ] }.play(); } } var createCircleTimeLine = Timeline { repeatCount: Timeline.INDEFINITE keyFrames : [ KeyFrame { time :bind if (level < sizeof levelTimes) levelTimes[level] else levelTimes[sizeof levelTimes - 1] canSkip : true action: createCircle } ] }; createCircleTimeLine.play(); insert createCircleTimeLine into timelines; var player = MediaPlayer { repeatCount: javafx.scene.media.MediaPlayer.REPEAT_FOREVER media : Media { source: "{__DIR__}clip.mp3" } volume:0.2 }player.play();

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Ya même zéro commentaire à vrai dire.
Mais l'effort est la :)
Messages postés
16
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
10 décembre 2009

Olaaaaaaah! j'attends vos commentaires avec impatiences...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (puccino1er)