HAM INVADER -> SPACE INVADER VERSION HAMTARO [VIOLENT]

Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
- - Dernière réponse : cs_patatalo
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
- 26 déc. 2005 à 18:42
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/35136-ham-invader-space-invader-version-hamtaro-violent

cs_patatalo
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1 -
salut,

a part:
mov al,XXh
call PIXEL ; C

on peut trouver quoi et ou ?

@++
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16 -
MOV AH,0ch
INT 10h

Un zip entier de binaires pour n'y trouver qu'une série d'appels à ces 2 lignes asm... je ne vois pas l'intérêt pédagogique de cette source.
CS n'a pas d'accord Borland pour redistribuer TASM, faudra remettre un zip sans TASM.
cs_patatalo
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1 -
re,

ca y est j'ai trouvé, tout est dans sou.asm

La fonction 0Bh de l'int 21h n'est pas a utiliser car elle garde en memoire toutes les repetitions di on maintient la touche enfoncée, ce qui fait que ton programme ne réagit au changement d'une touche que quand toutes les repetitions ont été traitées.

Ca devient donc assez injouable et j'ai vu le hamster me passer 3 fois devant le nez avant de pouvoir lancer ne serait-ce qu'un petit missile.

Pour le reste, je dois t'avouer que le graphisme en asm 16 bits par des suite de "call SetPixel" n'as pas pour moi un interêt visible.

@++
cs_patatalo
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1 -
re,

voilà qui va permettre d'eliminer pas mal de fichier source,
de mettre tes sprites dans un fichier bin,
de faire faire un clin d'oeil a ton hamster quand on le rate sans recreer un autre fichier source,...

SPRITE STRUCT
tailleX WORD ?
tailleY WORD ?
bitmap DB 1 DUP(?)
SPRITE ENDS

VAISSO_SPRITE:
dw 12,5
db 00,00,00,00,00,07,07,00,00,00,00,00
db 00,00,00,00,07,15,15,07,00,00,00,00
db 00,00,00,07,15,15,15,15,07,00,00,00
db 00,00,07,15,15,15,15,15,15,07,00,00
db 00,00,07,15,07,00,00,07,15,07,00,00

OutSprite:;(x,y,SPRITE*)
push bp
mov bp,sp

push si ; bp-2
push di ; bp-4
push bx ; bp-6
cld ; direction +

mov cx,[bp+4] ; cx = x
mov dx,[bp+6] ; dx = y
mov si,[bp+8] ; si = sprite ptr

lodsw
push ax ; bp-8 = width
lodsw
push ax ; bp-10 = heigth

@1:
mov di,[bp-8] ; =width
@2:
lodsb
mov ah,0Ch
xor bx,bx
int 10h
inc cx
dec di
jne @2

inc dx
dec word ptr[bp-10]
mov cx,[bp+4]
jne @1

mov si,[bp-2]
mov di,[bp-4]
mov bx,[bp-6]

mov sp,bp
pop bp
ret 3*2


Main:
push offset VAISSO_SPRITE
push vaisseauY
push vaisseauX
call OutSprite
...

dans tout les cas, ce n'est pas la bonne maniere de gerer des sprites.

Meme si je n'apprecie pas ce bouquin, ( contient trop d'erreurs, rien sur le mode protégé ou presque bien qu'il date de 1996, ...) il a l'avantage de contenir un chapitre sur les sprites en mode reel:

La bible du PC 6( 500 balles quand meme a l'epoque fallait pas avoir le net )

@++
Choumoumou
Messages postés
162
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
17 novembre 2010
-
Salut Patatalo,

Merci pour ton commentaire, je dois reconnaître que tu as raison... Ça devient très difficile et très lourd de faire des paysages entiers avec ma technique... Je me disais bien qu'il y avait une manière de faire des sprites sous forme de tableaux, avec une routine qui affiche des pixels suivant ce tableau. Mais je n'ai pas la chance d'avoir "La bible du PC 6" avec les 500 balles qui vont avec ! (Même s'il est évident qu'il a baissé de prix depuis). J'ai appris l'assembleur tout seul, en regardant les sources de ce site, et avant que je pose celle ci, personne n'était là pour me dire que je merdait ici ou là. J'ai donc continué à faire des jeux de 50 Mo pour des paysages immenses... qui font ramer mon PC comme pas possible.

Merci beaucoup pour ce bout de code, il me sera extrêmement utile à l'avenir :D

BruNews> Je reconnais qu'il y a plus de "mov cx,... call PIXEL" que de véritable code. Mais rassure-toi, le code n'est pas dans les fichiers sprites, mais bien dans sou.asm.

les programmes Tasm et Tlink étant des freewares (donc en téléchargement libre et gratuit), je ne pense pas qu'il nécessite un accord pour les redistribuer, non ? Dans le doute, je préfère les enlever.

Bonnes Fêtes à tous
@+ !
cs_patatalo
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1 -
Salut,

Non, l'assembleur de Borland n'est pas gratuit mais effectivement telechargeable gratuitement. Ce qui est loin d'etre la meme chose.

Maintenant, avec Masm et Nasm qui eux sont des freeware, je ne vois pas l'interet d'utiliser un logiciel pirate qui de plus, n'apporte rien de specifique.

@++