![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2013
Сообщений: 38
|
Привет, помогите написать код для камеры слежения за персонажем, что бы при ресайзе и открытии в фуллскрин ничего не ломалось, если разрешения экрана больше карты , то она должна центрироваться и не двигаться по этому направлению. по возможности хотелось бы что были рамки побокам которые определяли когда не обходимо двигаться, для наглядности пример из блога Anton Karlov. scroll map
сам код для которого нужна камера: package { import flash.display.Sprite; import flash.display.StageScaleMode; import flash.events.Event; import flash.events.KeyboardEvent; [SWF(width="768", height="704", frameRate="30", backgroundColor="#000000")] public class testd extends Sprite { private var map:Sprite; private var hero:Sprite; public function testd() { map = new Sprite(); map.graphics.beginFill(0x8FBC8F); map.graphics.drawRect(0,0,1024,1024); map.graphics.endFill(); map.graphics.beginFill(0xE9967A); map.graphics.moveTo(0,1024); map.graphics.lineTo(1024,0); map.graphics.lineTo(0,0); map.graphics.endFill(); map.cacheAsBitmap = true; addChild(map); hero = new Sprite(); hero.graphics.beginFill(0xA52A2A); hero.graphics.drawRect(0,0,64,64); hero.graphics.endFill(); hero.cacheAsBitmap = true; map.addChild(hero); this.addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { this.removeEventListener(Event.ADDED_TO_STAGE, init); stage.scaleMode = StageScaleMode.NO_SCALE; stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp); stage.addEventListener(Event.ENTER_FRAME, update); stage.addEventListener(Event.RESIZE, resize); moviePix = 16; movie = true; } // Переменные для движения private var nextKeyDown:int; private var currentKeyDown:int; private var moviePix:int; private var movie:Boolean; private function onKeyDown(e:KeyboardEvent):void { nextKeyDown = e.keyCode; } private function onKeyUp(e:KeyboardEvent):void { if(e.keyCode == currentKeyDown && currentKeyDown == nextKeyDown) { nextKeyDown = 0; } } private function update(e:Event):void { if(movie) { if(moviePix == 16) { if(nextKeyDown != 0) { moviePix = 0; currentKeyDown = nextKeyDown; }else currentKeyDown = 0; } switch(currentKeyDown) { case 37: hero.x -= 4; moviePix++; break; case 38: hero.y -= 4; moviePix++; break; case 39: hero.x += 4; moviePix++; break; case 40: hero.y +=4; moviePix++; break; } } updateCamera(); } private function updateCamera():void { //code camera } private function resize(e:Event = null):void { //code resize } }//class } камера не должна выезжать за пределы карты когда сцена меньше карты. проект прикреплен ниже. ужа давно бьюсь ничего путного не получается( Последний раз редактировалось taluks; 18.01.2014 в 18:49. |
![]() |
Часовой пояс GMT +4, время: 10:49. |
|
|
« Предыдущая тема | Следующая тема » |
|
|