Ignore:
Timestamp:
2017-05-20 14:43:59 (4 years ago)
Author:
tesatapa
Message:
 
Location:
2016/koodauskerho/OttoK/JSPhaser/JSPhaser
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • 2016/koodauskerho/OttoK/JSPhaser/JSPhaser/index.html

    r8428 r8433  
    33<head>  
    44        <meta charset="UTF-8" /> 
    5         <title>Ensimmäinen Javascript Phaser-peli</title> 
     5        <title>&#8734;</title> 
    66        <script type="text/javascript" src="phaser.min.js"></script> 
    77        <script type="text/javascript" src="pong.js"></script> 
  • 2016/koodauskerho/OttoK/JSPhaser/JSPhaser/pong.js

    r8428 r8433  
    1 var leveys = 1920; 
    2 var korkeus = 974; 
     1var tekoalyPaalla = true; 
     2var leveys = 800; 
     3var korkeus = 600; 
    34var nopeus = 200; 
    45var p1Pisteet = 0; 
    56var p2Pisteet = 0; 
    6 var tekstinTyyli = { font: "bold 64px Arial", fill: "#00FF33", boundsAlignH: "center", boundsAlignV: "middle" }; 
    77var game = new Phaser.Game(leveys, korkeus, Phaser.CANVAS, 'pong', { preload: lataus, create: luonti, update: paivitys }); 
     8var tekstinTyyli = { font: "bold 32px Arial", fill: "#fff", boundsAlignH: "center", boundsAlignV: "middle" }; 
    89 
    910function lataus() { 
     11        game.load.image('pallo','Kuvat/Pallokuva.png'); 
    1012} 
    1113 
    1214function luonti() { 
     15    game.physics.startSystem(Phaser.Physics.ARCADE); 
    1316    game.stage.backgroundColor = "#000000"; 
    14         salliKuuntelu(); 
    15         game.physics.startSystem(Phaser.Physics.ARCADE); 
    16         var kuva = luoPallonKuva(32, "#00FF33"); 
    17         pallo = luoOlio(leveys/2, korkeus/2, kuva); 
    18         pallo.body.onWorldBounds = new Phaser.Signal(); 
    19         pallo.body.onWorldBounds.add(tormasiSeinaan); 
    20         pallo.body.setCircle(32); 
    21         pallo.body.bounce.set(1); 
    22         pallo.body.velocity = new Phaser.Point(750, 45); 
    23         var mailanKuva = luoKuva(32, 128, "#00FF33"); 
    24         maila1 = luoOlio(leveys - 32, korkeus/2, mailanKuva); 
    25         maila1.body.immovable = true; 
    26         maila2 = luoOlio(0+32, korkeus/2, mailanKuva); 
    27         maila2.body.immovable = true; 
    28         p1Pistenaytto = luoTeksti(leveys * 0.8, korkeus * 0.15, "0"); 
    29         p2Pistenaytto = luoTeksti(leveys * 0.2, korkeus * 0.15, "0"); 
     17    salliKuuntelu(); 
     18    pallo = luoOlio(leveys/2, korkeus/2, 'pallo'); 
     19    pallo.body.bounce.set(1); 
     20    pallo.body.velocity = new Phaser.Point(150, 0); 
     21    pallo.body.onWorldBounds = new Phaser.Signal(); 
     22    pallo.body.onWorldBounds.add(tormasiSeinaan); 
     23    pallo.body.setCircle(32); 
     24         
     25        pallo.body.angularVelocity = 500; 
     26     
     27    var mailanKuva = luoKuva(32, 128, "#FFFFFF"); 
     28    maila1 = luoOlio(leveys - 32, korkeus/2, mailanKuva); 
     29    maila1.body.immovable = true; 
     30     
     31    maila2 = luoOlio(0 + 32, korkeus/2, mailanKuva); 
     32    maila2.body.immovable = true; 
     33     
     34    p1Pistenaytto = luoTeksti(leveys * 0.8, korkeus * 0.15, "0"); 
     35    p2Pistenaytto = luoTeksti(leveys * 0.2, korkeus * 0.15, "0"); 
     36         
    3037         
    3138} 
    3239 
    33 function paivitys() { 
    34         game.physics.arcade.collide(pallo, maila1); 
    35         game.physics.arcade.collide(pallo, maila2); 
    36          
    37         if (speedButton.isDown) { 
    38                 pallo.body.velocity.x = pallo.body.velocity.x * 1.01; 
    39         } 
    40          
    41         tarkistaLiike(maila1, cursors.up, cursors.down); 
    42         tarkistaLiike(maila2, wButton, sButton); 
     40 
     41function luoTeksti(x, y, teksti){ 
     42    var text = game.add.text(x, y, teksti, tekstinTyyli); 
     43     
     44    return text; 
    4345} 
    4446 
    45 function luoOlio(x, y, kuva){ 
    46         var olio = game.add.sprite(x, y, kuva); 
    47         olio.anchor.x = 0.5; 
    48         olio.anchor.y = 0.5; 
    49         game.physics.enable(olio, Phaser.Physics.ARCADE); 
    50         olio.body.collideWorldBounds = true; 
    51         return olio; 
    52          
    53          
     47 
     48function tormasiSeinaan(tormaaja, ylos, alas, vasen, oikea){ 
     49    if(vasen){ 
     50        tormaaja.body.position = new Phaser.Point(leveys/2, korkeus/2); 
     51        p1Pisteet++; 
     52        p1Pistenaytto.text = ""+p1Pisteet; 
     53    } 
     54    if(oikea){ 
     55        tormaaja.body.position = new Phaser.Point(leveys/2, korkeus/2); 
     56        p2Pisteet++; 
     57        p2Pistenaytto.text = ""+p2Pisteet; 
     58    } 
    5459} 
     60 
    5561 
    5662function salliKuuntelu(){ 
     
    5864    wButton = game.input.keyboard.addKey(Phaser.Keyboard.W); 
    5965    sButton = game.input.keyboard.addKey(Phaser.Keyboard.S); 
    60         speedButton = game.input.keyboard.addKey(Phaser.Keyboard.SPACEBAR); 
    6166} 
     67 
     68 
     69function luoOlio(x, y, kuva){ 
     70    var olio = game.add.sprite(x,y, kuva); 
     71    olio.anchor.x = 0.5; 
     72    olio.anchor.y = 0.5; 
     73    game.physics.enable(olio, Phaser.Physics.ARCADE); 
     74    olio.body.collideWorldBounds = true; 
     75    return olio; 
     76} 
     77 
     78 
    6279function tarkistaLiike(maila, ylos, alas){ 
    6380    if (ylos.isDown) 
     
    7188    } 
    7289} 
    73 function tormasiSeinaan(tormaaja, ylos, alas, vasen, oikea){ 
    74         if(vasen){ 
    75                 tormaaja.body.position = new Phaser.Point(leveys/2, korkeus/2); 
    76                 p1Pisteet++; 
    77                 p1Pistenaytto.text = ""+p1Pisteet; 
    78         } 
    79         if(oikea){ 
    80                 tormaaja.body.position = new Phaser.Point(leveys/2, korkeus/2); 
    81                 p2Pisteet++; 
    82                 p2Pistenaytto.text = ""+p2Pisteet; 
    83         } 
    84 } 
    85 function luoTeksti(x, y, teksti){ 
    86         var text = game.add.text(x, y, teksti, tekstinTyyli); 
    8790 
    88         return text; 
     91function tarkistaOsoitin(osoitin, xRaja, yRaja, ekaLiikutettava, tokaLiikutettava, nopeus){ 
     92    if(osoitin.isDown){ 
     93        var suunta = 0.0; 
     94        if (osoitin.position.y > yRaja){ 
     95            suunta = 1.0; 
     96        } 
     97        else{ 
     98            suunta = -1.0; 
     99        } 
     100        if(osoitin.position.x > xRaja){ 
     101            ekaLiikutettava.body.velocity.y = suunta * nopeus; 
     102        } 
     103        else{ 
     104            tokaLiikutettava.body.velocity.y = suunta * nopeus; 
     105        } 
     106    } 
    89107} 
    90108 
    91109 
     110function kasitteleTekoaly(maila, kohde, liikutusNopeus){ 
     111    var suunta = 0.0; 
     112     
     113    //if (maila.y > kohde.y){ 
     114    //    suunta = -1.0; 
     115    //} 
     116    //else{ 
     117    //    suunta = 1.0; 
     118    //} 
     119    suunta = (kohde.y - maila.y) / (korkeus * 0.01); 
     120    suunta = Math.min(suunta, 1.0); 
     121    suunta = Math.max(suunta, -1.0); 
     122    maila.body.velocity.y = suunta * nopeus; 
     123} 
    92124 
    93125 
    94  
     126function paivitys() { 
     127    game.physics.arcade.collide(pallo, maila1); 
     128    game.physics.arcade.collide(pallo, maila2); 
     129     
     130     
     131    tarkistaLiike(maila1, cursors.up, cursors.down); 
     132    if(!tekoalyPaalla){ 
     133        tarkistaLiike(maila2, wButton, sButton); 
     134    } 
     135    else{ 
     136        kasitteleTekoaly(maila2, pallo, nopeus); 
     137    } 
     138     
     139    tarkistaOsoitin(game.input.mousePointer, leveys/2, korkeus/2, maila1, maila2, nopeus); 
     140    tarkistaOsoitin(game.input.pointer1, leveys/2, korkeus/2, maila1, maila2, nopeus); 
     141    tarkistaOsoitin(game.input.pointer2, leveys/2, korkeus/2, maila1, maila2, nopeus); 
     142} 
Note: See TracChangeset for help on using the changeset viewer.