*   >> lukeminen koulutus Artikkelit >> science >> programming

Luominen Flash tasohyppelypeli Flixel ja Flex - squishing player

Toista DEMO

ladata lähdekoodin

TUTORIAL INDEX

Oli kaksi rajoituksia liikkuvan lohkot viime opetusohjelma. Ensimmäinen oli, että lohkojen olisi liu'uta alla pelaaja. Tämä voidaan helposti kiinnittää yksi rivi koodia MovingBlock törmäys toiminto.

 ohittaa julkisessa tehtävässä törmäävät (Core: FlxCore): void {//.. jos (contactFromTop) {jos (Core.hitCeiling (tämä )) {Core.y = this.y - Core.height; Core.last.y = Core.y; Core.x + = this.x - this.last.

x; }}}

Tässä siirrymme pelaaja vaakatasossa saman verran kuin lohko kun pelaaja on törmäsi korttelin päässä edellä (eli se seisoo se).

Toinen rajoitus oli, että pelaaja olisi kuljettaa lohkoja tilanteissa, joissa se olisi pitänyt squished. Korjata, että jopa meidän täytyy suorittaa törmäystarkastelu staattisen ja liikkuvan lohkojen erikseen.

Ensin määrittää uuden FlxArray vuonna GameState luokan pitää liikkuvat lohkot.

 suojattu var movingBlocks: FlxArray = uusi FlxArray (); 

Kaikki esiintymät MovingBlock luokan asetetaan sitten uusi joukko

 this.

movingBlocks.add (this.add (uusi MovingBlock (32, 64, 0, 0 , LEVEL_DIMENSIONS >> 1, LEVEL_DIMENSIONS - BLOCK_DIMENSIONS * 3, BLOCK_DIMENSIONS * 2, BLOCK_DIMENSIONS * 2, TechTilesImage)));

päivitys toiminto teemme törmäyksiä liikkuvat lohkot, ja sitten staattinen niistä. Huomaa, että järjestys puhelut FlxG collideArray toiminta ovat tärkeitä: liikkuvat lohkot on käsiteltävä ennen staattisen lohkoja. Me sitten tarkistaa, onko pelaaja on upotettu tahansa lohkoja. Jos se on se on litistynyt, ja kutsumme playerSquash toiminto.

 julkisen Ohitustoiminto päivitys (): void {super.

update (); FlxG.collideArray (movingBlocks, pelaaja); FlxG.collideArray (levelBlocks, pelaaja); FlxG.collideArrays (playerBullets, levelBlocks); FlxG.collideArrays (vihollisia, levelBlocks); FlxG.overlapArrays (playerBullets, vihollisia, bulletHitEnemy); FlxG.overlapArray (movingBlocks, pelaaja, playerSquash); FlxG.overlapArray (levelBlocks, pelaaja, playerSquash); }

playerSquash toiminto me yksinkertaisesti tappaa pelaaja. Jotta todellinen peli olet todennäköisesti poistaa pelaajien elämää ja käynnistä valtion tätä toimintoa.


 oma toiminto playerSquash (Collide1: FlxCore, Collide2: FlxCore): void {player.kill ();} 



Copyright © 2008 - 2016 lukeminen koulutus Artikkelit,https://koulutus.nmjjxx.com All rights reserved.