Сердечки

Тема в разделе "WASM.ASSEMBLER", создана пользователем Freecod, 21 дек 2010.

  1. Freecod

    Freecod New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2006
    Сообщения:
    136
    =) Давным-давно встречал исходник на асме, где сердечки летают за курсором.
    Сейчас надо, а исходник найти не могу, весь яндекс перерыл. Может кто встречал, поделится?
     
  2. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    У меня есть такой пример.
    В принципе суть там понятна,
    просто посидеть над .ani - шкой
    придется, чтобы поярче была.

    Чего-то ссылки от текста теперь серыми стали :dntknw:
    Из "такой пример", выше, ссылку пытался сделать.
    Раньше такие слова синели.


    http://webfile.ru/4996577
    Зимняя депрессия на сайте :)))
     
  3. Freecod

    Freecod New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2006
    Сообщения:
    136
    Тут заменяется на фоне окна и курсор целиком, а я видел пример в котором сердечки как на веревочке =) летают за курсором вообще в Windows.
    Дипрессия, да)
     
  4. paralvic

    paralvic Пархоменко Александр Викторович

    Публикаций:
    0
    Регистрация:
    20 ноя 2010
    Сообщения:
    294
    Адрес:
    Нижний Новгород
    Всё уже придумано до нас.
    Попробуйте прикрутить:
    Код (Text):
    1. .data
    2.             p POINT <0>
    3. .code
    4.         invoke GetCursorPos, addr p                                ; узнаём позицию курсора на экране
    5.  
    6.         invoke BeginDeferWindowPos, 1
    7.         .if eax != 0
    8.         invoke DeferWindowPos, eax, hWin, 0, p.x, p.y, 0, 0, SWP_NOSIZE
    9.         invoke EndDeferWindowPos, eax                          ; меняем положение нашего окна
    10.         .endif
    А в окне можете хоть порноролики крутить ;)
     
  5. Freecod

    Freecod New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2006
    Сообщения:
    136
    и всё таки может кто оригинал встречал? там ещё в ридми по русски написано, как он в бухгалтерии эту штуку на восьмое марта заинсталил и у всех были такие глаза)
    Там просто динамика движения сердечек за мышкой такая классная, плавная, как на резинке...
     
  6. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    Freecod
    А не сон ли то был в ночь под Рождество )))
    Сядь да сделай сам, примеры же есть. )
     
  7. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    paralvic
    Секретарши оценят! ;)
     
  8. newbie

    newbie New Member

    Публикаций:
    0
    Регистрация:
    2 дек 2008
    Сообщения:
    1.246
    Код (Text):
    1. <script LANGUAGE="JavaScript">
    2.  
    3. var nDots = 7;
    4. var Xpos = 0;
    5. var Ypos = 0;
    6. var DELTAT = .01;
    7. var SEGLEN = 10;
    8. var SPRINGK = 10;
    9. var MASS = 1;
    10. var XGRAVITY = 0;
    11. var YGRAVITY = 50;
    12. var RESISTANCE = 10;
    13. var STOPVEL = 0.1;
    14. var STOPACC = 0.1;
    15. var DOTSIZE = 11;
    16. var BOUNCE = 0.75;
    17. var isNetscape = navigator.appName=="Netscape";
    18. var followmouse = true;
    19. var dots = new Array();
    20.  
    21. init();
    22.  
    23. function init()
    24. {
    25.     var i = 0;
    26.     for (i = 0; i < nDots; i++) {
    27.         dots[i] = new dot(i);
    28.     }
    29.    
    30.     if (!isNetscape) {
    31.  
    32.     }
    33.    
    34.     for (i = 0; i < nDots; i++) {
    35.         dots[i].obj.left = dots[i].X;
    36.         dots[i].obj.top = dots[i].Y;
    37.     }
    38.    
    39.    
    40.     if (isNetscape) {
    41.         startanimate();
    42.     } else {
    43.         setTimeout("startanimate()", 1000);
    44.     }
    45. }
    46.  
    47.  
    48.  
    49. function dot(i)
    50. {
    51.     this.X = Xpos;
    52.     this.Y = Ypos;
    53.     this.dx = 0;
    54.     this.dy = 0;
    55.     if (isNetscape) {  
    56.         this.obj = eval("document.dot" + i);
    57.     } else {
    58.         this.obj = eval("dot" + i + ".style");
    59.     }
    60. }
    61.  
    62.  
    63. function startanimate() {  
    64.     setInterval("animate()", 20);
    65. }
    66.  
    67. function setInitPositions(dots)
    68. {
    69.     var startloc = document.all.tags("LI");
    70.     var i = 0;
    71.     for (i = 0; i < startloc.length && i < (nDots - 1); i++) {
    72.         dots[i+1].X = startloc[i].offsetLeft
    73.             startloc[i].offsetParent.offsetLeft - DOTSIZE;
    74.         dots[i+1].Y = startloc[i].offsetTop +
    75.             startloc[i].offsetParent.offsetTop + 2*DOTSIZE;
    76.     }
    77.     dots[0].X = dots[1].X;
    78.     dots[0].Y = dots[1].Y - SEGLEN;
    79. }
    80.  
    81. function MoveHandler(e)
    82. {
    83.     Xpos = e.pageX;
    84.     Ypos = e.pageY;  
    85.     return true;
    86. }
    87.  
    88. function MoveHandlerIE() {
    89.     Xpos = window.event.x + document.body.scrollLeft;
    90.     Ypos = window.event.y + document.body.scrollTop;     
    91. }
    92.  
    93. if (isNetscape) {
    94.     document.captureEvents(Event.MOUSEMOVE);
    95.     document.onMouseMove = MoveHandler;
    96. } else {
    97.     document.onmousemove = MoveHandlerIE;
    98. }
    99.  
    100.  
    101. function vec(X, Y)
    102. {
    103.     this.X = X;
    104.     this.Y = Y;
    105. }
    106.  
    107. function springForce(i, j, spring)
    108. {
    109.     var dx = (dots[i].X - dots[j].X);
    110.     var dy = (dots[i].Y - dots[j].Y);
    111.     var len = Math.sqrt(dx*dx + dy*dy);
    112.     if (len > SEGLEN) {
    113.         var springF = SPRINGK * (len - SEGLEN);
    114.         spring.X += (dx / len) * springF;
    115.         spring.Y += (dy / len) * springF;
    116.     }
    117. }
    118.  
    119.  
    120. function animate() {
    121.     var start = 0;
    122.     if (followmouse) {
    123.         dots[0].X = Xpos;
    124.         dots[0].Y = Ypos;  
    125.         start = 1;
    126.     }
    127.    
    128.     for (i = start ; i < nDots; i++ ) {
    129.        
    130.         var spring = new vec(0, 0);
    131.         if (i > 0) {
    132.             springForce(i-1, i, spring);
    133.         }
    134.         if (i < (nDots - 1)) {
    135.             springForce(i+1, i, spring);
    136.         }
    137.        
    138.         var resist = new vec(-dots[i].dx * RESISTANCE,
    139.             -dots[i].dy * RESISTANCE);
    140.         var accel = new vec((spring.X + resist.X)/MASS + XGRAVITY,
    141.             (spring.Y + resist.Y)/ MASS + YGRAVITY);
    142.  
    143.         dots[i].dx += (DELTAT * accel.X);
    144.         dots[i].dy += (DELTAT * accel.Y);
    145.        
    146.         if (Math.abs(dots[i].dx) < STOPVEL &&
    147.             Math.abs(dots[i].dy) < STOPVEL &&
    148.             Math.abs(accel.X) < STOPACC &&
    149.             Math.abs(accel.Y) < STOPACC) {
    150.             dots[i].dx = 0;
    151.             dots[i].dy = 0;
    152.         }
    153.        
    154.         dots[i].X += dots[i].dx;
    155.         dots[i].Y += dots[i].dy;
    156.        
    157.         var height, width;
    158.         if (isNetscape) {
    159.             height = window.innerHeight + window.pageYOffset;
    160.             width = window.innerWidth + window.pageXOffset;
    161.         } else {   
    162.             height = document.body.clientHeight + document.body.scrollTop;
    163.             width = document.body.clientWidth + document.body.scrollLeft;
    164.         }
    165.        
    166.         if (dots[i].Y >=  height - DOTSIZE - 1) {
    167.             if (dots[i].dy > 0) {
    168.                 dots[i].dy = BOUNCE * -dots[i].dy;
    169.             }
    170.             dots[i].Y = height - DOTSIZE - 1;
    171.         }
    172.         if (dots[i].X >= width - DOTSIZE) {
    173.             if (dots[i].dx > 0) {
    174.                 dots[i].dx = BOUNCE * -dots[i].dx;
    175.             }
    176.             dots[i].X = width - DOTSIZE - 1;
    177.         }
    178.         if (dots[i].X < 0) {
    179.             if (dots[i].dx < 0) {
    180.                 dots[i].dx = BOUNCE * -dots[i].dx;
    181.             }
    182.             dots[i].X = 0;
    183.         }
    184.        
    185.         dots[i].obj.left = dots[i].X;          
    186.         dots[i].obj.top =  dots[i].Y;      
    187.     }
    188. }
    189.  
    190. </script>
    Так чтоли?
     
  9. Freecod

    Freecod New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2006
    Сообщения:
    136
    Тот был на асме... Сам сделаю - всё равно будет казаться что тот круче был =)
    ps Хотя возможность крутить порноролики... заманчиво, заманчиво ;)