Tetris



  • Salut, je voudrais savoir si il est possible de faire un tetris dans minecraft, je m'explique
    Je voudrais faire un tile entity (borne arcade) et en jouant on gagnerait des coins qui permettrait d'acheter grades/items/kits sans avoir a payer irl (c'est pas très eula mais bon c'est chaud de payer le serveur a 50€ mois avec ma tune =/)


  • Rédacteurs

    Oui tu peux, si j'ai bien compris tu veux faire une borne d'arcade dans Minecraft avec le jeu Tetris dessus donc il te faut un Gui, donc une texture avec dessiné tout les blocs de Tetris, et le fond avec la cadre pour le score tout ça … Sur la même texture ça devrait tenir
    Ensuite tu affiche les morceaux de texture au bon endroit en mettant à jour les positions des blocs.
    Tu dois aussi récupérer les inputs clavier pour bouger les blocs et les faire tourner donc sûrement des paquets mais il y a moyen de limiter les nombre de paquet.
    Si tu as besoin d'aide n'hésite pas



  • Oui y'en a besoin rien que pour le débutgui ok mais le systeme de texture pas dutout


  • Rédacteurs

    J'ai tout compris dans ton message, met de la ponctuation ça aide.
    D'après ce que j'ai compris tu arrives à créer un gui mais pour ce qui est des textures tu galères, c'est ce qu'il faut mettre sur la texture que tu ne sais pas ? Ou c'est comment afficher les bons morceaux aux bons endroits ?



  • Pardon pour l'écriture iphone a deux euros xD je voulais dire : comment faire bouger les tetriscubes =p



  • Mais sa à l'air hyper fun 😃



  • Via les inputs claviers, avec la fonction keyTyped du gui, tu dois avoir des variables pour la position de tes cubes quil faut changer en fonction de la touche.

    Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk


  • Rédacteurs

    Dans la fonction update du TileEntity, il faut créer un tableau représentant le nombre de cases dans le terrain de jeu, ensuite choisir deux blocs au hasard, en faire tomber 1, afficher l'autre comme étant le prochain, puis faire correspondre l'affichage avec le tableau, tout le 15 ticks environ je dirais il faut faire descendre le bloc, tester si des actions de déplacement/rotation ont été ordonnées, puis si il ne peut plus descendre il faut alors voir si une ligne a été complétée si c'est la cas il faut la supprimer, augmenter les points et faire descendre tout ce qu'il y avait au dessus d'une case et continuer ainsi.
    Il va aussi falloir faire que si le joueur quitte le gui,le jeu se mette en pause ou se remette à zéro (au choix), si plusieurs joueurs jouent sur la même machine que ce passe-t-il ? Je serai d'avis que ce soit tout simplement pas possible, il y a pas mal de choses auxquelles il faut réfléchir



  • Question un peu à part mosca, cet ajout, c'est pour ton serv PvP Fac ?! J'imagine que nan …
    Si plusieurs joueurs interagissent avec la même machine, soit return false dans onBlockActivated et ne pas display le gui, soit basculer la game actuellement load par une toute nouvelle en lan avec les autres potos =D
    Au choix selon ce qu'il trouve être le plus sympa


  • Rédacteurs

    A mon avis commencer par le solo peut être une bonne idée xD Mais sinon c'est une bonne idée



  • Question un peu à part mosca, cet ajout, c'est pour ton serv PvP Fac ?! J'imagine que nan … Louper c'est pour le serveur mini games a coter =p



  • Reup car je ne sais toujours pas comment géré le jeu dans minecraft (c'est pas fameux <3) oui j'ai dis que dans ma présentation j'étais chiant bah voila je le suis
    Je voudrais juste savoir trois choses :
    Comment géré avec les touches clavier
    Géré la graviter des "bloc"
    Et faire détruire les lignes
    Silevousplaieuh =p



  • Je  crois que c'est quelque chose comme sa 
    [size=smallKeyboard.isKeyDown(Keyboard.KEY_SPACE]



  • Pour gérer les input keyboard dans le gui, sa a déjà été dit. Il faut te servir de la méthode keyTyped et de son premier argument char afin de check à quel input key code il se réfère, sachant que la liste est là : http://minecraft.gamepedia.com/Key_codes



  • Gérer la "gravité" world.setBlockToAir et world.setBlock te seront utiles, par ça sera assez lourd niveau performances, sinon je sais que quelqu'un avait déjà fait des entités comme le sable par exemple sur le forum.
    Détruire une ligne : tester si elle est complète avec une boucle puis faire world.setBlockToAir sur tous ces blocks.

    Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk


  • Rédacteurs

    @AymericRed, il me semblait que le Tetris devait être dans le GUI, et non dans le monde
    Si c'est bien dans le GUI, il faut que dans ton TE, tout les 15 ticks environ je dirais tu fasse descendre le bloc actuel d'une ligne si c'est possible et si ça ne l'est pas tu arrête le bloc et tu affiche le suivant, ensuite tu vérifie si une ligne est pleine, si elle l'est tu la supprime et tout les blocs du dessus descendent d'une ligne
    Je vais essayer le faire voir les difficultés que l'on peut rencontrer



  • @BrokenSwing c'est ce que je pensait mais un des messages m'a fait penser le contraire ^^
    Si c'est uniquement via le gui, je pense qu'il n'y a pas besoin de se compliquer la vie avec un TE pour l'instant car on peut faire toute les updates via la fonction updateScreen() du gui, ce qui fera que le serveur n'aura pas à gérer le jeu, mais juste les résultats envoyés à la fermeture du gui par exemple.


  • Rédacteurs

    Et du coup, si le joueur envoie des résultats faux ? Ne jamais croire ce que nous dit le client



  • Oui pas faux, le mieux serait que le serveur gère tout et envoie des packets au client à chaque fois (on peut utiliser une fonction des containers qui permet d'envoyer les changements au clients si il y en a eu, pas besoin de packets custom).