Forum

Catégorie : Programmes
Forum : Les programmes des internautes
Vues : 3602
Réponses : 15
Type : discussion
Etat : réponses autorisées

(Jeu) MINCRAFT (Jeu)

S.L le 15/11/2012 à 19:35
Voici un petit projet de jeu du style "Minecraft" je le poste alors qu'il n'est pas finis tout en vous demandant de bien vouloir m'aider à le terminer.
J'étais partit avec l'idée de le faire en 3D mais j'ai vite vu que se serait très compliqué.
Ce qu'il fait:
-Il affiche un menu avec deux choix (jouer-quitter)
-Il affiche la main de votre joueur avec la possibilité de prendre deux objets (bloc de pierre et pioche)
-Il affiche une barre d'objet
-Il affiche un curseur déplaçable
-Il affiche une barre horizontale (qui représente le sol)

Ce qu'il ne fait pas:
-Permettre de poser des blocs
-Permettre d'en supprimer (en même temps...)

J'ai essayé (en vain) d'afficher un bloc à l'endroit du curseur tout en gardant les autres bloc placer (quand on déplace le curseur, il y a un effacer dessin), ainsi que lorsque l'on redémarre le jeu les modifications précédentes restent.
J'avais pensé à utiliser une liste mais toutes mes idées étaient trop longue à réaliser.
Si vous n'avez pas compris, je vous invite à regarder cette vidéo:
http://www.youtube.com/watch?v=IofAhR6crCk excusez, c'est une Casio moodforlove.gif
Enfaite je voudrais avoir le même principe de placement de blocs dans mon programme.

Image:
Image manquante

Lien .8xp

Le programme:
Auteur: S.L
Taille: 1452 octets
Nom: MINCRAFT
Code
114ü ( ) dim(áMINX
114ü ( ) dim(áMINY
6ü ( ) X:9ü ( ) Y
AxesNAff
0ü ( ) Xmin:94ü ( ) Xmax:0ü ( ) Ymin:62ü ( ) Ymax
38ü ( ) A:28ü ( ) B:56ü ( ) C:20ü ( ) D
37ü ( ) E:7ü ( ) F:43ü ( ) G:1ü ( ) H
45ü ( ) I:49ü ( ) J:33ü ( ) L
31ü ( ) N:35ü ( ) O:47ü ( ) M
Lbl 0
EffDessin
Ligne(15,51,21,49
Ligne(15,51,9,49
Ligne(21,49,15,47
Ligne(15,47,9,49
Ligne(15,39,9,41
Ligne(15,39,21,41
Ligne(21,41,21,49
Ligne(15,39,15,47
Ligne(9,41,9,49
Pt-Aff(27,40,2
Pt-Aff(27,42,2
Pt-Aff(27,44,2
Pt-Aff(27,46,2
Pt-Aff(27,48,2
Pt-Aff(29,46,2
Pt-Aff(31,44,2
Pt-Aff(33,46,2
Pt-Aff(35,48,2
Pt-Aff(35,46,2
Pt-Aff(35,44,2
Pt-Aff(35,42,2
Pt-Aff(35,40,2
Texte(18,38,"INE
Pt-Aff(53,40,2
Pt-Aff(53,42,2
Pt-Aff(53,44,2
Pt-Aff(53,46,2
Pt-Aff(53,48,2
Pt-Aff(55,48,2
Pt-Aff(57,48,2
Pt-Aff(55,40,2
Pt-Aff(57,40,2
Texte(18,60,"RAFT
Texte(27,72,"V:1.0
Texte(35,40,"PLAY
Texte(48,40,"EXIT
Texte(57,76,"BY S.L
Texte(57,0,"(C)2012
Lbl 4
Ligne(A,B,C,B
Ligne(C,B,C,D
Ligne(C,D,A,D
Ligne(A,D,A,B
codeTouch(ü ( ) K
If K=25 et Bø28:Then:28ü ( ) B:20ü ( ) D:Goto 0:End
If K=34 et Bø15:Then:15ü ( ) B:7ü ( ) D:Goto 0:End
If K=105 et B=28:Goto 1
If K=105 et B=15:Then:EffDessin:Stop:End
Goto 4
Lbl 1
EffDessin
Lbl 2
Ligne(I,L,J,L
Ligne(M,O,M,N
Ligne(14,2,17,5
Ligne(18,4,18,3
Ligne(15,6,16,6
Ligne(22,6,26,6
Ligne(26,6,26,2
Ligne(26,2,22,2
Ligne(22,2,22,6
Ligne(12,8,60,8
Ligne(12,0,60,0
Ligne(12,8,12,0
Ligne(60,8,60,0
Ligne(20,8,20,0
Ligne(28,8,28,0
Ligne(36,8,36,0
Ligne(44,8,44,0
Ligne(52,8,52,0
Ligne(0,30,94,30
If E=13:Then
Ligne(73,0,80,19
Ligne(80,19,70,15
Ligne(70,15,68,21
Ligne(68,22,88,28
Ligne(88,28,94,18
Ligne(94,0,86,14
Ligne(86,14,81,0
End
If E=21:Then
Ligne(62,0,62,13
Ligne(62,13,69,20
Ligne(62,13,91,0
Ligne(91,15,94,2
Ligne(69,20,91,15
End
If E=53 ou E=45 ou E=37 ou E=29:Then
Ligne(61,17,70,20
Ligne(71,20,78,17
Ligne(78,17,83,0
Ligne(76,0,70,20
Ligne(65,0,61,17
End
Lbl 8
Ligne(E,F,G,F
Ligne(G,F,G,H
Ligne(E,H,G,H
Ligne(E,F,E,H
codeTouch(ü ( ) K
If K=21 et E>13:Then:E-8ü ( ) E:G-8ü ( ) G:Goto 1:End
If K=22 et E<51:Then:E+8ü ( ) E:G+8ü ( ) G:Goto 1:End
If K=25 et L<58:Then:L+5ü ( ) L:O+5ü ( ) O:N+5ü ( ) N:X+1ü ( ) X:Goto 1:End
If K=34 et L>33:Then:L-5ü ( ) L:O-5ü ( ) O:N-5ü ( ) N:X-1ü ( ) X:Goto 1:End
If K=24 et M>2:Then:M-5ü ( ) M:I-5ü ( ) I:J-5ü ( ) J:Y-1ü ( ) Y:Goto 1:End
If K=26 et M<92:Then:M+5ü ( ) M:I+5ü ( ) I:J+5ü ( ) J:Y+1ü ( ) Y:Goto 1:End
If K=23:NON*HIS  //touche qui permettra d'utiliser les objets
If K=45:Goto 0
Goto 8

Les touches sont:
annul pour quitter
2nde pour déplacer le choix d'objet vers la gauche
mode pour déplacer le choix d'objet vers la droite
les touches fléchées pour déplacer le curseur
Et peut-être:
suppr pour utiliser un objet

En espérant que vous pourriez m'aider à changer son état de projet cupsmiley.gif
Samos le 15/11/2012 à 20:01
Je veux bien t'aider le weekend bien que je sois surchargé de devoirs tongue.gif
Les graphismes dont bien faits, c'est un projet prometteur bigmouth.gif
stikel972 le 16/11/2012 à 11:39
Texte coloré ou se trouve le Xmin et le àMINX,Ymax ? crazy.gif
aide le 16/11/2012 à 12:01
Appuis sur la touche var.
S.L le 16/11/2012 à 20:24
@samsam: merci pour ton ambition. bigmouth.gif
Persalteas le 18/11/2012 à 10:08
Ouah bigmouth.gif

C'est beau ! ça mérite que j'y prête attention...
Je n'avais jamais pensé a cette idée de bouger le curseur plutôt que le perso.
Tu permets que je réutilises ton code, que je le bidouille, le modifie, l'amplifie, le traficote un peu ?

(Je dis ça parce qu'en Basic augmenté sur 83+, il doit y avoir moyen de gérer des buffers plus facilement et rapidement... ça pourrait être faisable...)


Quand à ton problème je ne vois pas le rapport:

Le jeu que tu présentes toi est a la première personne, celui dans la vidéo à la troisième personne, il est impossible de mélanger les deux...
(pour ceux qui ont des 83+, il existe déjà un petit Minecraft en Axe, j'ai nommé TinyCraft d'hayleia)

Mais en Basic aussi ça doit être faisable, le mode 3e personne...
S.L le 18/11/2012 à 18:46
@persalteas : Tout d'abord merci happy.gif J'accepte que tu le "bidouille" à ta guise!
Ensuite, dans mon poste je me suis mal exprimer, enfaite je voulais que l'on puisse déplacer le curseur et lorsque l'on appuierait sur une touche, ça dessine un petit carré à la place du curseur et que l'on puisse en poser de partout puis, lorsque l'on quitterait, les modifications seraient enregistrées.

PS: Je suis aller voir ce TinyCraft mais (désolé) je vois pas trop Minecraft dedans ahh.gif néanmoins il est très bien fait glasses.gif
Persalteas le 20/11/2012 à 14:13
Ah oui d'accord.

En fait, tu veux faire la même chose que le programme Casio, avec les dessins de l'inventaire et du bras devant.

CHALLENGE ACCEPTED

Et la sauvegarde, ça devrait être possible aussi.

Si tout ça marche bien, je pense même pouvoir mettre des mobs (reste a savoir si je le fais en Basic pur ou pas).
Mais faut déjà que tout marche bien, nous n'en sommes encore pas là.
S.L le 23/11/2012 à 17:48
@persalteas: j'ai enfin PRESQUE réussi!
Je suis parvenu à faire ceci: (pour ceux qui voudrait jouer à une version fonctionnelle, prendre celle-ci)
Touches:
-2nde: poser bloc
-mode: effacer tout (et oui pas juste 1 bloc...)
-annuler: quitter
-touches fléchées: déplacer le curseur
Code
EffDessin
AxesNAff
QuadNAff
FonctNAff
0ü ( ) Xmin:94ü ( ) Xmax:0ü ( ) Ymin:62ü ( ) Ymax
Texte(27,30,"MINECRAFT
Pause
Lbl 0
EffDessin
Ligne(1,62,93,62
Ligne(93,62,93,2
Ligne(93,2,1,2
Ligne(1,2,1,62
47ü ( ) A
32ü ( ) B
Lbl 1
Pt-Aff(A,B,3
Pt-NAff(A-4,B,3
Pt-NAff(A+4,B,3
Pt-NAff(A,B-4,3
Pt-NAff(A,B+4,3
codeTouch(ü ( ) K
If K=45:Stop
If K=24 et A>3
A-4ü ( ) A
If K=26 et A<91
A+4ü ( ) A
If K=34 et B>4
B-4ü ( ) B
If K=25 et B<60
B+4ü ( ) B
If K=21
Then
Ligne(A-2,B-2,A-2,B+2
Ligne(A+2,B-2,A+2,B+2
Ligne(A-2,B-2,A+2,B-2
Ligne(A-2,B+2,A+2,B+2
End
If K=22:Goto 0
Goto 1

Il ne reste plus qu'à le combiner avec le premier tout en trouvant un moyen de ne pas tout effacer à chaque fois qu'on veut changer d'objet. Ici je n'utilise pas de liste et on a tout l'écran pour dessiner. (bon d'accord j'ai fait un truc assez hors sujet avec ce que je voulais faire car on ne pourra pas sauvegarder nos créations sauf en sauvegardant l'image...)
Persalteas le 24/11/2012 à 08:28
Euh, laisse tomber, la seule solution pour sauvegarder la map ça va être une matrice, hein.

Au fur et a mesure que le bonhomme avance, tu rajoutes des dimensions à la matrice en cours pour créer de nouveaux chunks.

Tu peux ensuite créer ou effacer un bloc selon la valeur présente dans la matrice.

La ou ça devient problématique: c'est pour le scrolling: ça va être horriblement lent...
Soul Polochon le 24/11/2012 à 14:32
surtout que vous risquez de remplir un peu trop la memoire voir toute la memoire!
linkakro le 24/11/2012 à 17:59
Ou alors il faut faire comme le projet herssahe/minecraft de persalteas quand il a voulu représenter chaque combinaison d'écran par un nombre unique.
C'est lourd à la lecture mais il suffit alors d'une case de matrice par zone.
Le plus dur est de choisir le comprommis entre la taille des zones, la taille globale, et la vitesse de lecture.
Persalteas le 29/11/2012 à 14:42
Là je suis en train d'essayer d'adapter le Casio-Basic en TI-Basic, déjà, ensuite je vais greffer dessus l'inventaire et le bras avec outil, type "SL", et ensuite je vais voir si on peut pas ajouter d'autres choses.

Je pense probablement que je ferais deux versions, une Basic et une Grammer (pour 83+/84+)
stikel972 le 01/12/2012 à 22:08
Comment fais t-on pour poser un objet ?
Cytropus le 02/12/2012 à 11:46
[2nde] je crois eyeonly.gif
Persalteas le 04/12/2012 à 13:52
Pétard... J'ai du mal avec le Casio Basic tongue.gif

Les chaines ont des fonctions bien différentes.