Jfxtris_v1.0

Soyez le premier à donner votre avis sur cette source.

Vue 5 401 fois - Téléchargée 402 fois


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

A voir également

Ajouter un commentaire

Commentaire

Messages postés
8
Date d'inscription
vendredi 19 décembre 2008
Statut
Membre
Dernière intervention
14 mai 2009

bonjour,
j'ai fait egalement le tetris en c à l'aide de threads, et on avait et on avait differentes consignes:
par exemple:
- la grille devait faire un roll aleatoirement vers la gauche ou vers la droite à intervalle aleatoire compris entre 5-15 secondes
- les pieces etaient colorees,
- l'appui sur la touche 'p' le mettait en pause.
- Si la ligne etait pleine, avant qu'elle disparaisse, on la faisait clignoter
- on pouvait aussi colore les lignes suivant le nombre de fois ou elles ont ete supprimees
- la descente des pieces s accelerait toutes les 5 lignes remplies
- affichage du scores et du niveaux

voila quelques idées , et désole si il fait deja tout ca mais je n'ai pas lu le source ni execute

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)