Jfxtris_v1.0


Description

Un tetris en javafx que je ferai évoluer grâce aux remarques et commentaires.
Le model est codé en java : javafx n'intervient que lors de l'affichage.

Source / Exemple :


/*

  • Main.fx
*
  • Created on 19 févr. 2009, 00:13:30
  • /
package jfxtris; import javafx.animation.KeyFrame; import javafx.animation.Timeline; import javafx.scene.Group; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; import javafx.scene.paint.Color; import javafx.scene.Scene; import javafx.scene.shape.Rectangle; import javafx.stage.Stage; import model.GameManager; /**
  • @author Boris Seremes
  • /
var game: GameManager = bind GameManager.getInstance(); var stage: Stage; var gameView: Rectangle[]; var upKey = false; var downKey = false; var leftKey = false; var rightKey = false; function getView() { var matrix = game.getMatrix(); var gameView = for(j in [0..< game.getMatrix().length]) { for(i in [0..< game.getMatrix()[j].length]) { if (game.getMatrix()[j][i] != 0) { Rectangle { x: i * 32 y: j * 32 width: 32 height: 32 fill: Color.BLACK } } else { Rectangle { x: i * 32 y: j * 32 width: 32 height: 32 fill: Color.WHITE stroke: Color.BLACK } } } }; } gameView = getView(); stage = Stage { title: "Application title" //width: 250 //height: 80 scene: Scene { content: [ Group { content: bind gameView onKeyPressed: function(e: KeyEvent){ if (e.code == KeyCode.VK_DOWN) { downKey = true; } else if (e.code == KeyCode.VK_UP) { upKey = true; }else if (e.code == KeyCode.VK_LEFT) { leftKey = true; }else if (e.code == KeyCode.VK_RIGHT) { rightKey = true; } } onKeyReleased: function(e: KeyEvent){ if (e.code == KeyCode.VK_DOWN) { downKey = false; } else if (e.code == KeyCode.VK_UP) { upKey = false; }else if (e.code == KeyCode.VK_LEFT) { leftKey = false; }else if (e.code == KeyCode.VK_RIGHT) { rightKey = false; } } } ] } } function checkControls() { if(upKey) { //println("up push"); game.itemTurn(); gameView = getView(); } if(downKey) { //println("down push"); game.itemDown(); gameView = getView(); } if(leftKey) { //println("left push"); game.itemLeft(); gameView = getView(); } if(rightKey) { //println("right push"); game.itemRight(); gameView = getView(); } } var count = 0; def rate = 5; var gameLogics: Timeline= Timeline { repeatCount: Timeline.INDEFINITE keyFrames: [ KeyFrame { time: 1s / rate action: function() : Void { if((count mod rate) != 0) { checkControls(); } else { game.doStep(); count = 0; gameView = getView(); } count++; } } ] } gameLogics.play();

Conclusion :


En attente de commentaires à la fois pour l'utilisation et le développement.
Pour l'exécuter lancer le .jnpl, le .jar ou le .html du dossier dist.

Codes Sources

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 (gwo)