Nguyên văn bởi lungtung
Xem bài viết

Em chỉ có thể post giải thuật làm tuyết rơi thôi bác ah,
Giải thuật như sau:
Vẽ ngẫu nhiên các điểm ảnh tại vị trí y=1
Dịch các điểm nay xuống dưới 1 cách ngẫu nhiên sang trái 1, sang phải 1 hay chỉ xuống không thôi
Vậy là cho dù em có để cái bảng đó 1 ngày thì cách rơi cũng không bao giờ trùng nhau được, em chẳng tốn hơi sức đâu mà ngồi định nghĩa trong FLASH tuyết rơi đâu ạ

PHP Code:
void snow() {
static int8 _y,j=0;
int8 _x,col,row,bits,temp;
for(_x=47; _x>0;_x--) {
for(_y = 30; _y>0; _y--) {
col = (_x/8)*8+_y%8; //Do phan cung thiet ke, nen cach tinh
row = _y/8; //toa do can xem truoc phan cung
bits = _x%8;
if(bit_test(matrix_array[row][col],bits)){
mt_pixel(_x,_y,1,1);
temp = make8(get_timer0(),0)%3;
if(temp==1)
mt_pixel(_x+1,_y+1,1,0);
else if(temp==2)
mt_pixel(_x-1,_y+1,1,0);
else
mt_pixel(_x,_y+1,1,0);
}
}
}
j++;
for(_x =1; _x<48;_x++)
mt_pixel(make8(get_timer0(),0)%48+1,1,1,1);
}
#int_timer1
void t1_isr() {
static int16 k=0;
clear_interrupt(INT_TIMER1);
set_timer1(60000);
k++;
if(k==10){
snow();
k=0;
}
}

, em chỉ làm được đến thế này thôi

, mỗi hiệu ứng chỉ 1 trang A4 viết bằng ASM thôi.

Leave a comment: