const { ccclass , property } = cc . _decorator ; @ ccclass export default class Water_spread extends cc . Component { @ property ( cc . Node ) bg : cc . Node = null ; material : cc . Material = null ; onLoad ( ) { this . material = this . bg . getComponent ( cc . Sprite ) . getMaterial ( 0 ) ; this . bg . on ( cc . Node . EventType . TOUCH_END , this . touchStartEvent , this ) ; } waveOffset : number = 0.0 ; touchStartEvent ( evt ) { let pos = evt . getLocation ( ) ; this . material . setProperty ( 'center' , [ pos . x / this . bg . width , ( this . bg . height - pos . y ) / this . bg . height ] ) ; this . waveOffset = 0.0 ; } update ( dt ) { if ( this . waveOffset > 2.0 ) return ; this . waveOffset += dt ; this . material . setProperty ( 'wave_offset' , this . waveOffset ) ; } }