g.onPress = function () { gotoAndStop(15); } var snd:Sound; if ( snd == undefined ) { // ha még nincs értéke snd = new Sound(); // hozzuk létre az objektumot snd.attachSound("durr"); // társítsuk a hangot a library-ból } ct._x = Math.random() * 550; // 550 a vászon szélessége ct._y = Math.random() * 400; // 400 a vászon magassága //random tartomány generálása function randomRange(minNum:Number, maxNum:Number):Number{ return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum); } // véletlenszerűen ugorjunk előre néhány képkockát ct.gotoAndPlay( Math.floor(Math.random()*6 ) ); ct.onMouseDown = function() { // Ha lenyomják a mouse gombját snd.start(); // játszuk le a puskalövést var dx = ct._x - _xmouse; // céltábla és az egér különbsége (x mentén) var dy = ct._y - _ymouse; // különbség (y mentén) score = Math.sqrt( dx*dx + dy*dy ); // távolság } var url = "http://www.inf.u-szeged.hu/~bodnaar/multimedia/african_child.mp3"; var s:Sound = new Sound(); var isReady:Boolean = false; var isPlaying:Boolean = false; var cPos:Number = 0; s.onLoad = function(){ isReady = true; } s.loadSound(url); startgomb1.onPress = function(){ if (isReady && !isPlaying) { s.start(cPos / 1000, 9999); isPlaying = true; startgomb1._visible = false; } } onEnterFrame = function(){ cPos = s.position; bytes = s.getBytesLoaded(); } stopgomb1.onPress = function(){ s.stop(); isPlaying = false; startgomb1._visible = true; } d = new Date(); mp._rotation = 180 * d.getSeconds() / 30; nagy._rotation = 180 * d.getMinutes() / 30; kis._rotation = 180 * (d.getHours() % 12 ) / 6; // movie clip hozzáadása _root.attachMovie("MC_zombie", "z1", _root.getNextHighestDepth()) //vagy game.s.attachMovie("tronMC", tronBlockCounter, tronBlockCounter, {_x: x*blockSize, _y: y*blockSize}); // movie clip eltávolítása fuel.removeMovieClip() // vízszintes tükrözés setProperty(launcher, _xscale, 100) // hit test, true tehát kiértékeli a határvonalakat egyébként befogó négyzet lenne falHit = fal.hitTest(rocket._x, rocket._y, true) falHit = fal.hitTest(rocket._x, rocket._y, true) // tween dinamikus létrehozása var tween:mx.transitions.Tween = new mx.transitions.Tween( // dinamikusan létrehoz egy tweent tabla[i][j], "_y", // ezt a MC-t fogja tweenelni, és a tulajdonság, amit tweenel rajta mx.transitions.easing.Regular.easeIn, // easing kepy(j), kepy(ures), (ures-j)*0.2, true); // induló érték, befejező érték, időtartam, sec/frame // tween vége event tween.onMotionFinished = function() { // amikor a tween befejezodik _root.mozgoElemekSzama--; //csökkenti a számlálót } // key listener keyListener = new Object(); keyListener.onKeyDown = function() { var keyCode = Key.getCode(); if (keyCode > 36 && keyCode < 41) { if (game.onEnterFrame != undefined) { // only allow moves if the game is running, and is not paused if (keyCode-37 != turnQueue[0]) { // ...and it's different from the last key pressed turnQueue.unshift(keyCode-37); // save the key (or rather direction) in the turnQueue } } } else if (keyCode == 32) { // start the game if it's not started (32 = SPACE) if (!gameRunning) { startGame(); } } }; Key.addListener(keyListener); // mouse listener var listener:Object = new Object(); listener.onMouseMove = function() { // itt hogy mit csináljon } Mouse.addListener(listener); // timer // üzemanyag timer // timer egy movie clip amiben egy shape van timer.onEnterFrame = function() { if ( pause ) return; this._width -= 10; if ( this._width <= 1 ) { handleHit() this._width= 300; } } // ez a függvény hívódik meg klikkelés esetén function klikk() { if ( mozgoElemekSzama != 0 ) return; // ha van mozgó elem, akkor ne csináljon semmit var i,j; var list:Array = []; // a feldolgozandó szomszédok listája var szomszed:Array = []; // a feldolgozott szomszédok var sx=[-1,1, 0,0]; // a 4 szomszéd relatív x koord var sy=[0 ,0,-1,1]; // ill. y for ( i = 0; i < X; i++ )// a bejárás kezdőállapotának beállítása for ( j = 0;j < Y; j++ ) tabla[i][j].bejar = false; // kezdetben egyetlen bogyót sem látogattunk meg list.push(this); // induljunk ki abból a bogyóbol amelyikre ráklikkeltünk this.bejar=true; // járjuk is be iziben while( list.length > 0 ) { // amig van feldolgozandó szomszed var a = list.pop(); // vegyünk ki egyet szomszed.push(a); // tegyük át a véglegesbe for( i = 0; i < 4; i++ ) { // mind a négy szomszédjára var b = tabla[a.x+sx[i]][a.y+sy[i]]; // b az akttuális elem (a) szomszédja if ( b.szin == this.szin && b.bejar == false ) { // ha ugyanolyan színű mint az eredeti és még nem jártuk be list.push(b); // vegyük fel a feldolgozandók listajára b.bejar = true; // jegyezzük fel, hogy itt már jártunk } } } if ( szomszed.length > 1 ) { // ha van elegendő bogyó egymás mellett while( szomszed.length > 0 ) { var a = szomszed.pop();// vegyük ki az MC-ket tabla[a.x][a.y] = null;// töröljük a tábláról a.play(); // játsza le az eltűnés animációt (aminek a végén el is távolítja magát removeMovieclip()-el) } var ures:Number = 0; // itt kezdődik a zuhantatásért felelős rész for ( i=0; i < X;i++ ) { // minden oszlopra keressük meg az első üreset ures = -1; // az üres kezdetben érvénytelen for ( j = Y-1; j >=0; j-- ) { // alulról lépkedünk felfelé if ( ures == -1 && tabla[i][j] == null ) ures = j; // ha megvan az első üres, akkor jegyezzük meg else if ( ures != -1 && tabla[i][j] != null ) { // ha már tudjuk hol az üres, és találtunk egy bogyót a táblán tabla[i][ures] = tabla[i][j]; // a megtalált bogyó kerüljön az üres helyére tabla[i][j].y = ures; // a megtalált bogyó eltárolja hogy melyik sorba került mozgoElemekSzama++; var tween:mx.transitions.Tween = new mx.transitions.Tween( // dinamikusan létrehoz egy tweent tabla[i][j], "_y", // ezt a MC-t fogja tweenelni, és a tulajdonság, amit tweenel rajta mx.transitions.easing.Regular.easeIn, // easing kepy(j), kepy(ures), (ures-j)*0.2, true); // induló érték, befejező érték, időtartam, sec/frame tween.onMotionFinished = function() { // amikor a tween befejezodik _root.mozgoElemekSzama--; //csökkenti a számlálót } //tabala[i][j]._y = kepy(ures); // tween nélkül tabla[i][j] = null; // na, ezt már rátok bízom :) ures--; } } } } } // vonalak rajzolása var N = 8; var M = 6; var W = 40; // rács rajzolásához a vonal stílus beállítása lineStyle(2, 0x555555, 100); // függőleges vonalak megrajzolása for ( i = 0; i <= N; i++ ) { moveTo(i*W , 110-W/2); lineTo(i*W , M*W+110-W/2); } //alsó vízszintes vonal megrajzolása moveTo(0, M*W+110-W/2 ); lineTo(N*W, M*W+110-W/2); // rajzolás var drawing = false // ecset alapvastagság var BRUSH_WIDTH:Number = 20 // paletta var colors:Array = new Array( 0x000000, 0xffffff, 0x999999, 0xc32c35, 0xf2b741, 0x427d29, 0x3d81a8, 0xe95e97, 0xf1fb4d, 0x83f24b, 0x78f8fb) // segéd MovieClip referencia var mc:MovieClip // paletta movieclipek rajzolása for (var i = 0; i