π
<-
Chat plein-écran
[^]

JEU: MetroSiberia un tunnel pas comme les autres

Assembleur, Axe, C/C++, ICE...

Re: JEU: MetroSiberia un tunnel pas comme les autres

Unread postby matref » 08 Feb 2015, 19:55

C'est ça oui, ou bien juste CLine(X1,Y1,X2,Y2). Attention par contre, ça détruit plusieurs variables lettres, dont A jusqu'à F et Z et thêta si je me rappelle bien. Au pire regarde le code :P

Et ne t'inquiètes pas, c'est assez rapide x)
User avatar
matref
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 25%
 
Posts: 506
Joined: 11 Dec 2011, 03:08
Location: France, Châteaurenard
Gender: Male
Calculator(s):
MyCalcs profile
Class: Prépa MPSI

Re: JEU: MetroSiberia un tunnel pas comme les autres

Unread postby Plokki » 08 Feb 2015, 20:34

oui ça utilise pas mal de variables, le plus long va être d'adapter en les changeant: en l'occurrence j'utilise déjà Z,theta,R1,R2,R3,R4 mais ça devrait pas être trop difficile, en tout cas merci :)
User avatar
Plokki
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 40.6%
 
Posts: 124
Joined: 02 Sep 2014, 15:15
Location: Près de... ah bah non !
Gender: Male
Calculator(s):
MyCalcs profile
Class: T°S-spé math

Re: JEU: MetroSiberia un tunnel pas comme les autres

Unread postby Plokki » 09 Feb 2015, 16:51

C'était marrant.
En fait au début je me suis contenté de faire un copié/collé en changeant les variables mais ça marchait pas, les lignes qui avait un point inférieur à zéro buggaient alors je me suis dit que j'avais fait une erreur. Comme j'ai eu la flemme de la chercher j'ai préféré faire ma propre routine mais... toujours le même problème ! Jusqu'à ce que je me rende compte que c'était exactement la même chose que dans mon moteur 3d: j'utilisais un nombre d'un octet comme un nombre de deux octets. :@
Donc j'ai corrigé avec la commande signed{ (merci hayleia) et ça marche nickel. Je ne sais pas si ma routine et plus rapide que la tienne mais je n'utilise que 6 variables :p


Code: Select all
Lbl CLINE

For(I,0,1)
If G<<0
-E*(H-F)//(G-E)+F→H
0→G
End
If H<<0
-F*(G-E)//(H-F)+E→G
0→H
End
If G>>93
(93-E)*(H-F)//(G-E)+F→H
93→G
End
If H>>63
(63-F)*(G-E)//(H-F)+E→G
63→H
End
G→D
E→G
D→E

H→D
F→H
D→F
End

ILine(E,F,G,H)

Return
User avatar
Plokki
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 40.6%
 
Posts: 124
Joined: 02 Sep 2014, 15:15
Location: Près de... ah bah non !
Gender: Male
Calculator(s):
MyCalcs profile
Class: T°S-spé math

Re: JEU: MetroSiberia un tunnel pas comme les autres

Unread postby Wistaro » 09 Feb 2015, 18:01

Très beau jeu!
Nouveau sur le site, Anonymous ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
User avatar
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 88%
 
Posts: 3158
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingénieur en électronique
YouTube: Wistaro
Twitter: Wistaro
GitHub: Wistaro

Re: JEU: MetroSiberia un tunnel pas comme les autres

Unread postby Plokki » 14 Mar 2015, 16:16

Salut, le jeu est presque fini !
J'ai ajouté plusieurs fonctionnalités comme les checkpoints, les changeurs de gravité et de vitesse avec en plus des bandeaux pour annoncer le nom des zones dans lesquelles on arrive (c'est plutôt mineur donc je met pas de screen). Du coup j'en suis à créer la map et les menus, ce qui prendra du temps. Je compte aussi ajouter plusieurs traînées différentes déblocables au fur et à mesure de la complétion du jeu pour faire un peu comme dans fruit ninja avec les sabres.
Comme d'hab je poste le code source du jeu pour qu'une âme charitable 0:] puisse corriger les horreurs que contient mon prog. Je l'aurais bien indenté mais je sais pas comment on fait :(

Code: Select all
  .A
DiagnosticOff
Fix 5

.TRAINEE
.CARREE
[FE8282828282FE00]→Pic0
[007C4444447C0000]
[0000382838000000]
[0000001000000000]

.RONDE
[7C82828282827C00]
[0038444444380000]
[0000102810000000]
[0000001000000000]

.GATE
[FFFFE7C300000000]→Pic1GATE
[0000183CFFFFFFFF]

.GPICD
[7E7E7E7E7E7E3C18]→Pic1
.GPICM
[183C7E7E7E7E7E7E]

.PICD
[FFFF7E7E3C180000]→Pic2
.PICM
[0000183C7E7EFFFF]


.TITRE
"DEBUT"[00]→Str1
"SLOW NORMAL"[00]
"NORMAL"[00]
"FAST NORMAL"[00]
"SEMOULE NORMALE"[00]
"SLOW INVERTED"[00]
"NORMAL INVERTED"[00]
"FAST INVERTED"[00]
"SEMOULE INVERTED"[00]


.SARCASME
"BEN ALORS ?"[00]→Str2
"TU L AS PAS VU LE MUR ?"[00]
"CA A QUEL GOUT LE SOL ?"[00]
"DEJA LA ?"[00]
"IL MANQUE JUSTE LE TALENT"[00]
"UN SI BEAU VAISSEAU ᵀᵀ"[00]
"ON A EVITE LA CATASTROPHE…"[00]
"PRESQUE MORT !"[00]
"JAIMERAI PAS ETRE A TA PLACE"[00]
"UN JOUR, PEUT-ETRE…"[00]
"UN SEUL BOUTON C EST TROP ?"[00]
"TU DEVRAIS REUSSIR A FORCE !"[00]
"LE RIDICULE NE TUE PAS"[00]
"JE RECONNAIS TA DEFAITE"[00]
"UNE VIE SI COURTE…"[00]


Data(15,15)→GDB1
[004000A00120022004200820102021201820062001A00060000000000000]

Data(15,15)
[00000000003800C803081C101010092004200240014000C0000000000000]

Data(15,15)
[00000000000000001FFC1002080409080410042002400280010000000000]

Data(15,15)
[0000000000000C000B800870080C0902080C08700B800C00000000000000]

Data(15,15)
[00000000010002800240042004100908080410021FFC0000000000000000]

Data(15,15)
[00000000000000C0014002400420092010101C10030800C8003800000000]

Data(15,15)
[000000000000006001A00620182021201020082004200220012000A00040]

.PIXEL-TEST
Data(2,9,10,3,12,9,3,14,7,4,14,4,7,14,3,9,3,12,10,2,9)→GDB2X
Data(7,0,11,5,2,11,4,5,12,3,7,11,2,9,10,3,9,12,3,7,14)→GDB2Y

Data(1,⁻4,3,2,⁻4,3,3,⁻4,2,1,⁻7,3,1,4,3,2,4,3,3,4,2,1,7,3)→GDB1GRAV

L₁+700→°MAP
L₁+702→°PIC
L₁+698→°VHORIZ
.VITESSE HORIZONTALE
L₁+696→°NORI
.NOMBRE ORIENTATIONS
L₁+694→°XMAP
L₁+692→°YMAP
L₁+690→°TIME
L₁+688→°ROTA
L₁+686→°FLAG
L₁+684→°GRAV
L₁+682→°AREA
L₁+680→°PUB


GetCalc("appvMAPMETRO")→MAP
GetCalc("appvPICS")→PIC

0→P→Z→Q→X→FLAG→TIME→AREA

0
sub(TITRE)

70→θ
⁻4→GRAV
2→VHORIZ
3→NORI
64→PUB
25→Y
{MAP}ʳ→XMAP
{MAP+2}ʳ→YMAP
YMAP-8*4→U
.U:NMAX SCROLLING CAMERA
.Z:VAR SCROLLING CAMERA

Lbl DEBUT

Repeat getKey(15)

TIME++
TIME-64??0→TIME

X/8+12≥XMAP?0→X
X+VHORIZ→X

NORI-getKey(50)+getKey(49)→NORI
NORI+1??→NORI
NORI-4??+3→NORI
GRAV-getKey(53)+getKey(52)→GRAV

VHORIZ-getKey(48)+getKey(54)→VHORIZ
VHORIZ-5??+4→VHORIZ
VHORIZ+1??→VHORIZ

getKey(4)?GRAV*2+θ→θ
θ-GRAV→θ

θ+1>>0??→θ
NORI*2+1*20-1→r₁<θ?r₁→θ


If abs(Y-25)<2
θ/20-NORI+Z→Z
Z>>U?U→Z
Z<<⁻U?⁻U→Z
End
If abs(Z)=U
θ/20-NORI+Y→Y
End


Lbl MAP
X/8*YMAP+MAP+4+(Z+U/8)→r₁
⁻(Z^8)→r₂
⁻(X^8)→r₄
For(V,0,13)
For(W,0,9)
If {r₁+W}<105
Pt-On(r₄,r₂,{r₁+W}*8+PIC)
Else
!If {r₁+W}-105
TIME*4→ROTA
10→A
sub(RECT)
Else!If -1
⁻TIME*4→ROTA
10→A
sub(RECT)
Else!If -1
TIME*4→ROTA
32→A
sub(RECT)
Else!If -1
sub(GATE)
Else!If -1
r₂-abs(r₄+15^40-20)→A
sub(GPICD)
Else!If -1
r₂+abs(r₄+15^40-20)→A
sub(GPICM)
Else!If -1
sub(PICD)
Else!If -1
sub(PICM)
Else
-1→A
If r₁+W-4-MAP/YMAP=(X/8+4) and (PUB+1<48)
X→FLAG
AREA++
64→PUB

sign{A*3+GDB1GRAV}→VHORIZ
sign{A*3+GDB1GRAV+1}→GRAV
sign{A*3+GDB1GRAV+2}→NORI

0
sub(TITRE)
End

End
End
r₂+8→r₂
End
r₂-80→r₂
r₄+8→r₄
YMAP+r₁→r₁
End


θ/20-NORI+3→r₁
Bitmap(25,Y,r₁*32+GDB1,L₆,1)


Lbl TEST
r₁*3→r₂
0→r₄
For(r₁,r₂,r₂+2)
r₄+pxl-Test({GDB2X+r₁}+25,{GDB2Y+r₁}+Y)→r₄
End
If (r₄-3)
For(V,0,50)
Pxl-On(rand^14+25,rand^14+Y)
Pxl-Off(rand^14+25,rand^14+Y)
DispGraph
End
FLAG→X
0→TIME
25→Y
0→Z
70→θ
64→PUB
1
sub(TITRE)

End


Lbl CARRE

!If TIME^3
Copy(L₁,L₃,18)
Copy(L₃,L₁+1,18)
X+4→{L₁}
Y+Z+4→{L₁+6}
0→{L₁+12}
End
L₁+1→W
For(V,0,4)
TIME^5??{W+12}++
Pt-On({W}+25-X,{W+6}-Z,{W+12}*8+Pic0)
W++
End


Lbl PUB

If (1+PUB)
33-abs(PUB-32)→r₁<8?r₁,8
→r₁
Copy(8-r₁*12+L₁+200,L₆,r₁*12)
PUB--
End



DispGraphClrDraw

End
Lbl END

Fix 4
Return

Lbl TITRE
→A

StorePic
Rect(0,0,96,8)
RectI(1,0,94,7)
If A
Text(2,0,stdDev(Str2,rand^15))
Else
Text(2,0,"AREA")
Text(19,0,AREA►Dec)
Text(28,0,stdDev(Str1,AREA^9))
End
Copy(L₆,L₁+200,96)
RecallPic
Return

Lbl RECT
128-A→B
16→C

cos(ROTA+A)*C//127→{L₃}
sin(ROTA+A)*C//127→{L₂}

cos(ROTA-A)*C//127→{L₃+1}
sin(ROTA-A)*C//127→{L₂+1}


cos(ROTA-B)*C//127→{L₃+2}
sin(ROTA-B)*C//127→{L₂+2}

cos(ROTA+B)*C//127→{L₃+3}
sin(ROTA+B)*C//127→{L₂+3}

For(A,0,3)
sign{L₃+A}+r₄+4→E
sign{L₂+A}+r₂+4→F
A+1^4→B
sign{L₃+B}+r₄+4→G
sign{L₂+B}+r₂+4→H
sub(CLINE)
End

Return

Lbl GATE
If r₄<60
r₂+(60-r₄/2)→A
r₂-(60-r₄/2)→B
Else
r₂→B→A
End

Rect(r₄,0,8,64)

If A-B>>0
WRect(r₄,B,8,A-B)
End
Pt-On(r₄,B,Pic1GATE)
Pt-On(r₄,A-8,Pic1GATE+8)

Return

Lbl GPICD
If A>>0
Rect(r₄+1,0,6,A)
End
Pt-On(r₄,A,Pic1)
Return

Lbl GPICM
If A<56
Rect(r₄+1,A+8,6,56-A)
End
Pt-On(r₄,A,Pic1+8)
Return

Lbl PICD
If r₄<60
r₂+(60-r₄/2)→A
Else
r₂→A
End
Pt-On(r₄,A,Pic1)

Return

Lbl PICM
If r₄<60
r₂-(60-r₄/2)→A
Else
r₂→A
End
Pt-On(r₄,A,Pic1+8)
Return

Lbl CLINE

For(I,0,1)
If G<<0
⁻E*(H-F)//(G-E)+F→H
0→G
End
If H<<0
⁻F*(G-E)//(H-F)+E→G
0→H
End
If G>>93
(93-E)*(H-F)//(G-E)+F→H
93→G
End
If H>>63
(63-F)*(G-E)//(H-F)+E→G
63→H
End
G→D
E→G
D→E

H→D
F→H
D→F
End

Line(E,F,G,H)


Sinon, j'aurais besoin d'une précision au sujet des fichiers: c'est juste une lecture de l'archive ou bien ça fait une copie dans la ram ? parce que mine de rien le prog fait déjà 5000 octets plus les 1000 octets des tiles alors avec 12 000 octets de map ça laisse pas trop de marge.
J'aimerais aussi savoir s'il existe un utilitaire PC pour scanner une tile map et la convertir en une image pour me permettre de voir ma map dans sa globalité. Merci d'avance ;)
User avatar
Plokki
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 40.6%
 
Posts: 124
Joined: 02 Sep 2014, 15:15
Location: Près de... ah bah non !
Gender: Male
Calculator(s):
MyCalcs profile
Class: T°S-spé math

Re: JEU: MetroSiberia un tunnel pas comme les autres

Unread postby Plokki » 19 Apr 2015, 18:53

Bonjour, j'ai pas mal avancé dans la création de la map malgré 2 crash de ma calto qui m'ont obligé à recommencer car je n'avais pas sauvegardé :'(
J'ai également fait un menu digne de ce nom avec la possibilité de choisir plusieurs trainées pour le vaisseau avec un système de checkpoints fonctionnel. On peut aussi voir les bandeaux annonçant le nom de la zone (buggés :D ) et d'autres qui se moquent de vous.

MetroSiberia menu.gif
MetroSiberia menu.gif (647.54 KiB) Viewed 2122 times


Pour ne pas avoir à archiver/désarchiver mes appvars je me suis tourné vers les fichiers mais j'ai cru comprendre qu'on ne peut pas les utiliser comme pointeurs dans les commandes pt-on( et autres. Je voudrais donc intégrer directement mes deux appvars (la map et les tiles) à l'exécutable de mon programme sous forme de datas un peu comme on intégrerait un sous-programme ou un axiom. Je ne sais pas si c'est faisable mais j'imagine quelque chose comme ça: "appvarMAP"→GDB0

Quelqu'un peu m'aider ?
User avatar
Plokki
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 40.6%
 
Posts: 124
Joined: 02 Sep 2014, 15:15
Location: Près de... ah bah non !
Gender: Male
Calculator(s):
MyCalcs profile
Class: T°S-spé math

Re: JEU: MetroSiberia un tunnel pas comme les autres

Unread postby matref » 19 Apr 2015, 21:26

Wow ça a l'air énorme :D

Je vois ce que tu veux dire, mais on peut faire ça qu'avec les Pic malheureusement. Pourquoi tu les laisses pas désarchivées ? Elles seront pas moins protégées que si tu les mets dans le programme.
User avatar
matref
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 25%
 
Posts: 506
Joined: 11 Dec 2011, 03:08
Location: France, Châteaurenard
Gender: Male
Calculator(s):
MyCalcs profile
Class: Prépa MPSI

Re: JEU: MetroSiberia un tunnel pas comme les autres

Unread postby Plokki » 19 Apr 2015, 21:39

Merci ^^

L'intérêt de faire une lecture depuis l'archive ou de les mettre dans le programme est avantageux dans le cas de mirage os (que j'utilise).
ça permet de lancer les programmes même quand ils sont archivés, et comme ça tu n'utilises pas la ram en permanence ou tu ne sollicites pas l'archivage ce qui permet d'eviter les garbage collect. Et comme je programme en axe de manière pas toujours intelligente ma calculatrice et très souvent soumise à des ram clear, ce qui ne pose pas de problème tant que mes appvar sont archivées :)
User avatar
Plokki
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 40.6%
 
Posts: 124
Joined: 02 Sep 2014, 15:15
Location: Près de... ah bah non !
Gender: Male
Calculator(s):
MyCalcs profile
Class: T°S-spé math

Re: JEU: MetroSiberia un tunnel pas comme les autres

Unread postby TheMachine02 » 20 Apr 2015, 08:03

Première chose, j'adore ce screen :D
Après, d'abord, on peut inclure des appv dans le code avec [appvTOTO] (ben matref qu'est-ce qui t'arrive ? :p ) Mais, c'est peut-être pas la meilleur façon de faire (gros programme, tout ça tout ça). Après tu peux peut-être garder les appv en archive, créer un fichier, et copier l'appv dans une varible temporaire (avec le w au début), qui sera automatiquement détruite à la fin. Comme ça au moins, ben on utilise juste la RAM quand on lance le programme. Mais si tu veux utiliser mirageOS de manière permanente, ben moi je dis absorbe :p Faut juste faire gaffe qu'une modif de la map changera possiblement définitivement les datas (pour l'utilisateur)
User avatar
TheMachine02Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 29.4%
 
Posts: 341
Images: 0
Joined: 16 Jan 2013, 18:27
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Médecine

Re: JEU: MetroSiberia un tunnel pas comme les autres

Unread postby Plokki » 20 Apr 2015, 11:21

Génial ! En fait je pense que je vais faire les deux. Je m'explique:
Vu que j'utilise un éditeur de tilemap, mes tiles sont dans une appvar externe utilisée à la fois par le prog et l'éditeur. Quand la map sera finie je n'aurais plus qu'à l'intégrer. (je viens de tester ça marche nickel :D )
Par contre faut que tu m'aides un peu pour la suite: C'est quoi une variable temporaire ? Je crée une autre appvar que je supprime après ?
on peut utiliser copy( avec les fichiers ? Je ferais donc:

Getcalc("appvarMAPMETRO",Y0)
Copy(Y0,VariableTemporaire,LaTailleDeMonAppvar)
User avatar
Plokki
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 40.6%
 
Posts: 124
Joined: 02 Sep 2014, 15:15
Location: Près de... ah bah non !
Gender: Male
Calculator(s):
MyCalcs profile
Class: T°S-spé math

PreviousNext

Return to Langages alternatifs

Who is online

Users browsing this forum: No registered users and 48 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1449 utilisateurs:
>1427 invités
>18 membres
>4 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)