Plutonium #18
30 июня 2001 |
|
Programming - as indicators of musical nakodit sopratsessora in chunks.
(C) Lynx / Explos! Ve team. Mdyams ... What a time in any publication there was no sound of coding. Or all of the shit was all, or What? Everything just about drinking, but about the booze. Tired to be honest ... Duc here. I decided to tell you today, as nakodit Indicators musical sopra in chunks like I did in the plugin savage in the zx-navigator v.1.2 (eternal memory and honor him, to whom need raw write to emyl: lynx_gmd@pisem.net). And to make it It was very good. Indicators, as it were, washed away:)) motion blur'om left (or right:). Make it terribly easy, but it looks killer amazing:). We begin with an explanation. So. Before us, as usual, the matrix of the chunks. Height We should be enough (and enough) third of the screen. Obtained matrix of size 64h16 points at which we draw bars, meaning the frequency and volume sounding audio. Than right, the higher the sound frequency, the higher the louder the sound. Stipulate that the noise us $ Bani, and all three channels, we imprinted on one matrix. Yes, and print lines will produce interrupt to more :)).. Vsmysle not displaying, and print lines in the matrix. We carry the following proceedings: ; --- Hong dog, so perifiriynye procedure ... fucker RRA RR E RRA RR E RRA RR E LD A, E RET dat DB 0 andez PUSH AF, BC LD A, (dat) ADD A, B LD (dat), A POP BC, AF RET ; --- And here is the press line ... ; A data1 - it chankovy buffer. line CALL fucker CALL andez PUSH AF LD A, B OR A JR Z, lret POP AF NEG LD HL, data1 +64 * 16; Reg. A-frequency LD E, A; B - the sound level (volume) LD D, 0 ADD HL, DE LD C, A ln LD (HL), # d LD DE, lent * 2 AND A SBC HL, DE DJNZ ln RET lret POP AF RET - But the polling procedure muzykalki ports. - From her how to print directly caused by the line. ; This procedure should cause interrupt. init LD BC, # fffd LD A, 1 OUT (C), A IN A, (C) LD E, 0 OUT (C), E IN E, (C) LD D, 8 OUT (C), D PUSH AF IN A, (C) AND # 0f LD B, A POP AF CALL line ;----------------- CHANNEL B --------------------- LD BC, # fffd LD A, 3 OUT (C), A IN A, (C) LD E, 2 OUT (C), E IN E, (C) LD D, 9 OUT (C), D PUSH AF IN A, (C) AND # 0f LD B, A POP AF CALL line ;----------------- CHANNEL C --------------------- LD BC, # fffd LD A, 5 OUT (C), A IN A, (C) LD E, 4 OUT (C), E IN E, (C) LD D, 10 OUT (C), D PUSH AF IN A, (C) AND # 0f LD B, A POP AF CALL line LD A, (fl0_4) OR A CALL Z, filla RET It's over. Now we have a matrix chankovoy drawn lines for all three channels. And Che, you think - all? Dick in a glass. We still all "zablurit" to it lubricated. And we used to do this "blanking blur." Ie not just a blur of points and a decrease in the intensity of their glow:)). Brightness, speaking Russian. You can namutit there own, super high quality, beautiful, Brake filters ... I just picked up and used Simplified (me) motion blur, the image faded and shifted. Here is a diagram of this filter: +1 +1 0 0 0 0 0 0 0 0 0 0 0 (0) - the center of the filter (ie printable point). 0 +1 +1 0 0 0 0 plus divisor is 8. Ie number obtained from Addition of these points still denominations divisible by 8 and put in center. Tupoy Question> What to do when a nuclear explosion? Hint> The main thing is not to get to the epicenter. In the code, it looks easy. One procedure:) blur2 LD IX, data1 LD BC, data1 ixel2 LD A, (IX-59) ADD A, (IX-58) ADD A, (IX +59) ADD A, (IX +60) SRL A SRL A SRL A ix_3 LD (IX), A INC IX DEC BC LD A, B OR C JR NZ, ixel2 RET It looks like this. Yes. Completely forgot! To all beautifully looked to do the matrix Pobol sizes to have borders that are not printed on the screen. And overwritten them. In order to blur not climbed any shit from the depths of memory. I think that gave you food for thought. All you have to remove All bugs (and add a couple:) and draw a conclusion on the matrix data1 screen. Good luck!
Other articles:
Similar articles:
В этот день... 21 November