en purassembleur .
d abord ,telecharger les includes ici:http:
http://do.nico.free.fr/objet2.zip
metre les sources qui suivront dans le meme repertoire.
active asm en ligne et pas de debugger.
premiere source:
le fil de fer.....
Code : Tout sélectionner
IncludeFile"ecran_perif.pb"
IncludeFile"graphique_ligne.pb"
IncludeFile"routine3d.pb"
!MOV dword[resolu],1024
!CALL initecran
!mov dword[torusobjet],1
!lea esi,[adobjet]
!mov dword[quartier],14
!mov dword[coulobjet],000f0f0h
!mov eax,170
!CVTSI2SS xmm0,eax
!movss [trx],xmm0
!mov eax,0
!CVTSI2SS xmm0,eax
!movss [try],xmm0
!mov eax,0
!CVTSI2SS xmm0,eax
!movss [trz],xmm0
!call creatobjet
!mov dword[torusobjet],1
!lea esi,[adobjet1]
!mov dword[quartier],28
!mov dword[coulobjet],0f00f0h
!mov eax,-150
!CVTSI2SS xmm0,eax
!movss [trx],xmm0
!mov eax,0
!CVTSI2SS xmm0,eax
!movss [try],xmm0
!mov eax,0
!CVTSI2SS xmm0,eax
!movss [trz],xmm0
!call creatobjet
!mov dword[torusobjet],1
!lea esi,[adobjet2]
!mov dword[quartier],40
!mov dword[coulobjet],0ff0ff0h
!mov eax,0
!CVTSI2SS xmm0,eax
!movss [trx],xmm0
!mov eax,0
!CVTSI2SS xmm0,eax
!movss [try],xmm0
!mov eax,0
!CVTSI2SS xmm0,eax
!movss [trz],xmm0
!call creatobjet
!mov dword[numerobjet],0
!deb1:
!CALL flipcls
!deb11:
!call chargeobjet
!mov eax,[couleur_objet]
!mov [lignecoul],eax
!CALL autorot
!CALL pivotx
!CALL pivoty
!CALL pivotz
!mov ebx,[ad_coor]
!LEA edx,[adcoor1]
!MOV ecx,[nb_point]
!deb2:
!MOVups xmm0,[ebx]
!MOVups [px],xmm0
!CALL translat
!CALL rotatx
!CALL rotaty
!CALL rotatz
!CALL perspect
!movups xmm0,[px]
!movups [edx],xmm0
!ADD ebx,12
!ADD edx,16
!LOOP deb2
;-------------------------------------------------------------------------
!finani0:
!LEA eax,[adcoor1]
!MOV [madcoor1],eax
!mov eax,[ad_liai]
!MOV [madliai],eax
!MOV eax,[nb_face]
!MOV [nbface1],eax
!liaison:
!mov ecx,[madcoor1]
!MOV eax,[madliai]
!MOV ebx,[eax]
!movups xmm5,[ecx+ebx]
!MOV ebx,[eax+4]
!movups xmm6,[ecx+ebx]
!MOV ebx,[eax+8]
!movups xmm7,[ecx+ebx]
!CALL affichligne
!ADD dword[madliai],12
!DEC dword[nbface1]
!JNE liaison
!mov eax,[nbobjet]
!DEC eax
!cmp eax,[numerobjet]
!je plusobjet
!inc dword[numerobjet]
!JMP deb11
!plusobjet:
!mov dword[numerobjet],0
;*********************************************************************************************
!CALL finprog
!JMP deb1
;*****************************************************************************************
!section '.data' align 16
!adobjet:
!dd 0.0,99.0,20.1,97.1,40.1,90.1,60.1,80.1,80.1,60.1,90.1
!dd 40.1,97.1,20.1,99.1,0.1,97.1,-20.1,90.1,-40.1,80.1,-60.1,60.1,-80.1
!DD 40.1,-90.1,20.1,-97.1,0.0,-99.0
!DD 0ffffh
!adobjet1:
!dd 0.0,50.0,10.1,48.5,20.1,45.1,30.1,40.1,40.1,30.1,45.1
!dd 20.1,48.5,10.1,50.1,0.1,48.5,-10.1,45.1,-20.1,40.1,-30.1,30.1,-40.1
!DD 20.1,-45.1,10.1,-48.5,0.0,-50.0
!DD 0ffffh
!adobjet2:
! dd 0.1,200.1,150.1,200.1,100.1,100.1,100.1,-100.1,150.1,-200.1,0.1,-200.1,0ffffh
!image:
!imagegran:
a+