

http://www.ticalc.org/archives/files/fileinfo/452/45275.html

EDIT : Oups, c'est "taupes" pas "topes" :P
texto:
.db "Maintenant je sais pourquoi",0
.db "je suis o",$af," je suis, pourquoi",0
.db "ils m'ont enferm",$96," et cach",$96,".",0,0
.db "-Gabriel Pombo da Silva",0,$ff
menu:
.dw jugarTxt
.dw acercaTxt
.dw salirTxt
liberteTxt:
.db "La chasse ",$90," la libert",$96,0
highScoreTxt:
.db "Score:",0
jugarTxt:
.db "Jouer",0
acercaTxt:
.db "...",0
salirTxt:
.db "Fuir",0
nivelCompletadoTxt:
.db "Niveau termin",$96,"!",0
.db "Temps restant:",0
puntosTxt:
.db "Total points:",0
muertoTxt:
.db "Tu es mort en luttant",0
.db "pour ta libert",$96,0
highScoreTxt2:
.db "Nouveau score!",0
deeph (./2) :Oui, mais pas de scrolling horizontal, les maps sont assez petits
C'est génial ! Tu as réussis à caser pas mal de choses déjà en 4ko (déjà rien que le smooth scrolling)
deeph (./2) :Je ne savais pas qu'il courrait à une autre vitesse sur la 84+SE, je n'active rien de spéciale :/ Est-ce plus vite que dans le screenshot ?
edit : c'est peut être un peu trop rapide sur 84+SE, je me demande s'il y aurait moyen de mettre le processeur à la même cadence qu'une 83+ normale facilement.
deeph (./2) :Ah je ne savais pas, je pensais qu'il avait aussi la signification de "chercher". J'ai seulement changé le nom parce que je ne voulais pas chasser des topes, y a-t-il un nom meilleur ?
Sinon le titre fait un peu bizarre en français, non ? Le mot 'chasse' sous entend 'abattre' ce qu'on chasse, or là il cherche justement la liberté. Enfin ça reste compréhensible.
deeph (./2) :La seule manière de mourir/perdre c'est d'être abattu par une balle, qu'est-ce que tu veux dire ? La détection de collision se fait avec les coordonnées actuelles de chaque balle, et on peut ignorer tous les "gardiens" si l'on veut, seulement qu'ils vont tirer pas mal de balles sur toi :P
Autrement il faut que je vérifie, mais j'ai l'impression qu'on meurt lorsque une balle sort de l'écran et qu'on était dans sa trajectoire (même si on s'est pas fait toucher), à moins que ce soit parce qu'il y a trop de têtes simultanément ?
deeph (./2) :Merci
Mais bravo, c'est original comme idée, je me demande d'où ça t'es venu ?
brush_data:
;byte de acción:
;0: se puede pasar desde abajo, armado = no
;1: se puede pasar desde arriba, armado = no
;2: se puede pasar desde la izquierda, armado = no
;3: se puede pasar desde la derecha, armado = no;4: avanzarte al próximo nivel una vez dentro
edit 2 : la traduction (j'ai aussi traduit la citation, mais je me demande si c'est nécessaire) :Merci beaucoup ! Il reste encore les sprites "Puntos/Tiempo/Nivel", mais je crois qu'il ne faut pas toucher "PTS" et "NV", et peut-être je peux changer la "o" de TMPO en une "S" et ça suffira
chickendude (./4) :
Du scrolling vertical est très simple!
chickendude (./4) :
Je ne savais pas qu'il courrait à une autre vitesse sur la 84+SE, je n'active rien de spéciale :/ Est-ce plus vite que dans le screenshot ?
chickendude (./4) :
Ah je ne savais pas, je pensais qu'il avait aussi la signification de "chercher". J'ai seulement changé le nom parce que je ne voulais pas chasser des topes, y a-t-il un nom meilleur ?
chickendude (./4) :
La seule manière de mourir/perdre c'est d'être abattu par une balle, qu'est-ce que tu veux dire ? La détection de collision se fait avec les coordonnées actuelles de chaque balle, et on peut ignorer tous les "gardiens" si l'on veut, seulement qu'ils vont tirer pas mal de balles sur toi :P
chickendude (./4) :
Merci beaucoup ! Il reste encore les sprites "Puntos/Tiempo/Nivel", mais je crois qu'il ne faut pas toucher "PTS" et "NV", et peut-être je peux changer la "o" de TMPO en une "S" et ça suffira
deeph (./5) :Non, ça devrait s'exécuter à 6 MHz... Je ne sais même pas comment on active l'exécution 15MHz!
C'est un peu plus vite, sans doute parce que ça s'exécute à 15MHz, non ?
Enfaite j'ai l'impression qu'on ne meurt pas instantanément lorsque la balle nous touche (elle continue un peu son chemin).Oui, il y a une petite animation de "sang" mais on la voit pas très clairement. Le jeu s'exécute jusqu'à la fin de cette animation
Ah oui, mais effectivement changer le 'o' en 's' est suffisant !Oui, originalement je voulais y mettre le texte entier, mais j'avais enlevé la plupart pour que le jeu soit moins de 4ko. Pour la version Ticalc j'avais ajouté l'autre ligne au dernier moment (le jeu surpasse 4ko, quelque chose comme 4010) mais j'ai pas mis à jour le screenshot :P Le texte originale était en espagnol.
C'est bizarre, il y a une ligne de plus dans la citation du jeu, mais pas dans la source : "Now I know why things are as they are, and why I am the way I am." ? (En français ça donnerait en gros : "Maintenant je sais pourquoi les choses sont comme elles sont, et pourquoi je suis comme je suis").
ld a,1
out ($20),a ;set 15MHz
chickendude (./6) :
Non, ça devrait s'exécuter à 6 MHz... Je ne sais même pas comment on active l'exécution 15MHz!
chickendude (./6) :
Oui, il y a une petite animation de "sang" mais on la voit pas très clairement. Le jeu s'exécute jusqu'à la fin de cette animation
deeph (./8) :C'est une très bonne idée ! Oui, pour le moment c'est possible d'avoir 9 têtes à la fois (enfin, je crois que c'est possible, peut-être avec les délais c'est pas possible). Merci
Enfin le nombre de têtes simultanées est aléatoire ? Il faudrait peut être le limiter en fonction des niveaux (2 têtes au maximum pour le niveau 1 etc...), parce que là c'est vrai que ça commence dur.
deeph (./8) :Toutes de bonnes idées, j'aime particulièrement l'item pour tuer tous les gardes d'un coup ! Peut-être on pourra avoir un objet dans les mains et l'utiliser avec [Alpha], ou l'on pourrait avoir un inventaire, je ne sais pas. Je n'ai pas d'idées pour d'autres items non plus..
À ce que j'ai compris tu ne vas plus te limiter à 4ko, donc autant rajouter des niveaux, et pourquoi pas quelques objets sur la carte pour pimenter le gameplay (des pièges, des bonus qui tue tous les gardes d'un coup etc...). Il y a du potentiel
Ah ok, mais de toute façons les collisions sont correctes, c'est juste que ça me semblait bizarre (pendant 1/2 sec on se dit "c'est bon je l'ai esquivée", mais enfaite nonJe croyais que c'était un effet intéressant, mais je peux pauser l'action dès que l'on meurt, ce serait facile de faire).
le lisez-moi est excellentMerci, je l'ai écrit très vitement, jusque avant de l'envoyer aux juges et je sais qu'il est plein de fautes, mais merci !
Contra (./7) :Merci, je ne savais pas qu'il était si simple. Et pour le remettre à 6MHz ? un zéro ?
Activer 15Mhz :
ld a,1
out ($20),a ;set 15MHz
edit : Ce port est en doublon avec un autre port je crois, faudrait aller voir sur wikiti pour plus d'infos
chickendude (./9) :
Je croyais que c'était un effet intéressant, mais je peux pauser l'action dès que l'on meurt, ce serait facile de faire
chickendude (./18) :
J'aime bien le système de points/exp des RPGs, j'ai envie d'ajouter un système pareille ici mais je ne sais pas comment l'intégrer :P
chickendude (./20) :
Les têtes utilisent un petit hack : elles sont alignées au gbuf pour pouvoir les charger directement sans avoir à décaler des bits, etc., je les copie directement :P
chickendude (./20) :
Le scrolling verticale est un hack aussi, le gbuf contient un rang de tiles de plus, donc dans la routine pour afficher le gbuf à l'écran (la routine fastcopy) si l'offset y = 2, on simplement saute les deux premiers rangs (de pixels) et affiche les prochain 64 rangs. Le tilemapper dessine 72 rangs dans le gbuf, en lieu de 64.
chickendude (./20) :
Je pensais en lieu de PV, on pourrait augmenter sa vitesse, sa capacité de sauter ou de soulever objets, etc. Des attributs physiques. Mais des PV n'est pas une mauvaise idée non plus...
deeph (./21) :Oui, on peut les réduires, mais ou mettrions-nous les pistolets ? Ou l'on pourrait même laisser l'idée des têtes :P
Ah ok, mais ce serait pas possible de les réduire en 8*8 tout en les gardant alignées ? Comme ça tu aurais même de la place pour afficher les PV, l'inventaire etc...
deeph (./21) :Si tu utilise une routine de sprites pour afficher chaque tile, ça va surement être plus lent. Moi je les copie directement (aligné) et fais la rotation dans la routine fastcopy, ma "routine de sprite" est comme ci :
Perso j'avais déjà essayé de faire un tilemapper correcte il y a quelques temps, mais pour qu'il ne soit pas trop gros/compliqué je voulais utiliser une routine de sprites clippés pour chaque tile et les afficher à l'écran selon les offsets (avec une ligne et une colonne de plus, comme tu l'expliques). Ça n'est pas le plus rapide mais c'est le plus simple, enfin si ma routine avait marché (d'ailleurs, je vais essayer de la faire fonctionner si j'ai le temps).
;hl = début du sprite ;hl' = endroit actuel dans le gbuf ;de' = nombre de colonnes dans le gbuf ld b,8 ;8 rangs à dessiner desSprite: ld a,(hl) ;octet du sprite à dessiner inc hl ;prochain octet exx ;changer aux registres cachés ld (hl),a add hl,de ;prochain rang du gbuf exx djnz desSprite
deeph (./21) :Oui, et ça pourrait être plus intéressant, en lieu d'avoir des "niveaux", d'avoir un map à explorer (mais dans le même style que l'on a maintenant : des chambres de prison) où il faudra revenir au début pour trouver certains items ou extras, je ne sais pas !
L'expérience pourrait avoir ce genre de conséquences sur le joueur, mais je pense que si tu agrandis les niveaux et que tu complexifie le jeu (plus de méchants), il faut contrebalancer de l'autre côté, c'est à dire aider un peu le joueur à survivre, au moins en lui octroyant quelques PV
chickendude (./22) :
Oui, on peut les réduires, mais ou mettrions-nous les pistolets ? Ou l'on pourrait même laisser l'idée des têtes :P
chickendude (./22) :
Si tu utilise une routine de sprites pour afficher chaque tile, ça va surement être plus lent.
chickendude (./22) :
Oui, et ça pourrait être plus intéressant, en lieu d'avoir des "niveaux", d'avoir un map à explorer (mais dans le même style que l'on a maintenant : des chambres de prison) où il faudra revenir au début pour trouver certains items ou extras, je ne sais pas !