Andrew

FlaP d003e003

Оценить эту запись
Протестите пожалуйста.
Вот я наконец то сделал основу двига FlaP(да, я изменил название). Это уже вполне "играбельная" версия движка. На нём уже можно сделать хороший(почти профессиональный) платформер. Правда, физика ещё не полностью дописана. Это мощный прорыв.
Спойлер Скрины:


"меню. фон движется."

"сама игровая карта. верху тестовый хад, с помощью которого вы можете тэстить игру."

http://redcode.do.am/load/algoritmy/flap_3_3/2-1-0-5(16 кб)
А для тек , кому влом качать вот версия онлайн http://redcode.do.am/FlaP.swf

Отправить "FlaP d003e003" в Digg Отправить "FlaP d003e003" в del.icio.us Отправить "FlaP d003e003" в StumbleUpon Отправить "FlaP d003e003" в Google Отправить "FlaP d003e003" в VKontakte Отправить "FlaP d003e003" в Facebook

Обновлено 09.02.2012 в 20:50 Andrew

Метки: Нет Добавить / редактировать метки
Категории
Без категории

Комментарии

  1. Аватар для Валера
    Посмотрел на вломовой версии, все работает! Удачи и продолжай! ))
  2. Аватар для Темный
    Движок нормальный. рабочий. Но когда не с начало его запускаешь и любуешься
    прокруткой фона домов замечен срыв черной полосы. Получается как бы фон обрывается и потом идет с начало. Попробуй его как нибудь зациклить чтоб не было видно этого обрыва.
    P.S Чем вызвано выбор платформы флеш? Тот же функционал мог и ГМ предоставить...
  3. Аватар для Andrew
    Ты играл на онлайн версии? Если да, то там просто экран большой. Лишнее видно. В окне токого нет(если окно не маштабировать). А вообще это тип скроллинга карты. Имеем две картинки. Одна начинаеться на 0,0 а другая на 640,0. Постепенно первая смещаеться на -640,0 а втарая на 0,0. И резко стоновится обратно всё.
  4. Аватар для Andrew
    На гм довольно сложно, не могу я делать игру на эвентах. На коде относительно легче. И плюс флэш мульти платформенный(эта игра пойдёт на телефоне). И кстати, что бы запустить игру флэш в коммерции, нужно обращаться к ёё и игра будет пренадлежать им.
  5. Аватар для Темный
    Да я играл в он-лайн. Ответ почему флеш понятен) на Гм есть тоже скрипт не каких эвентов. можно писать как куски кода так и полный скрипты.Кстати забыл добавить что сейчас вышла версия Гм которая использует НТТLM 5 который позволяет размещать игры на собственном сайте так же как и флеш.
    Обновлено 10.02.2012 в 10:53 Темный
  6. Аватар для Andrew
    а что насчёт телефонов и коммерции
  7. Аватар для Рыб
    При выставлении скорости большей размеров препятсвия(около 20), появляется возможность "пробивать" их...
  8. Аватар для Рыб
    Про физику, совет: самое простое сделат физику по такому приципу: если клавиша нажата movingspeed="заданому значению", если клавиша не нажата то movingspeed=movingspeed*"коэфицет трения"... по тому самому принципу и с прыжками.
    Это добавить планости
  9. Аватар для Andrew
    Да, это так. Но ничего поделать не могу. Это есть в почти каждом движке. И я не знаю как это исправить. Думаю на скроллом.
  10. Аватар для Andrew
    Про физику, совет: самое простое сделат физику по такому приципу: если клавиша нажата movingspeed="заданому значению", если клавиша не нажата то movingspeed=movingspeed*"коэфицет трения"... по тому самому принципу и с прыжками.
    Это добавить планости
    Я пытался сделать похоже но у меня не получалось.
    Вот моя "физика":
    Код:
    function physicUpdate() {
    	if(liftsStatus1==liftSize){
    		liftsStatus = 2;
    	}
    	if(liftsStatus1==0){
    		liftsStatus = 1;
    	}
    	if(liftsStatus==1){
    		liftsStatus1+=1;
    		for(i=1;i<=liftsCount;i++){
    			liftsArr[i]._y-=1;
    		}
    	} else {
    		liftsStatus1-=1;
    		for(i=1;i<=liftsCount;i++){
    			liftsArr[i]._y+=1;
    		}
    	}
    	onGraund1 = false;
    	for(i=1;i<=platformsCount;i++){
    		if(hero.mu.hitTest(platformsArr[i])){
    			jumpForce = 0;
    		}
    		if(hero.md.hitTest(platformsArr[i])){
    			onGraund1 = true;
    		}
    		if(hero.mr.hitTest(platformsArr[i])){
    			hero._x-=movingSpeed+onGraund1/2;
    		}
    		if(hero.ml.hitTest(platformsArr[i])){
    			hero._x+=movingSpeed+onGraund1/2;
    		}
    	}
    	for(i=1;i<=liftsCount;i++){
    		if(hero.mu.hitTest(liftsArr[i])){
    			jumpForce = 0;
    		}
    		if(hero.md.hitTest(liftsArr[i])){
    			onGraund1 = true;
    			if(liftsStatus==2){
    				hero._y+=1;
    			} else {
    				hero._y-=1;
    			}
    		}
    		if(hero.mr.hitTest(liftsArr[i])){
    			hero._x-=movingSpeed+onGraund1/2;
    		}
    		if(hero.ml.hitTest(liftsArr[i])){
    			hero._x+=movingSpeed+onGraund1/2;
    		}
    	}
    	if ((jumpForce == 0) and (onGraund1 == false)) {
    		hero._y += (gravitation/80)*fallSpeed;
    	}
    	if (onGraund1 == true) {
    		airdir = "graund";
    	} else {
    		if (jumpForce>0) {
    			airdir = "jumping";
    		} else {
    			airdir = "falling";
    		}
    	}
    	if (hero._x<0) {
    		hero._x = 0;
    	}
    	if (hero._x>640-hero._width) {
    		hero._x = 640-hero._width;
    	}
    	if (jumpForce<0) {
    		jumpForce = 0;
    	}
    	if (jumpForce>0) {
    		airdir = "jumping";
    		hero._y -= 1/(gravitation/80)*jumpSpeed;
    		jumpForce -= jumpSpeed;
    	}
    }
    А вот про клавиши:
    Код:
    function inputUpdate(){
    	isMoving = false;
    	if (Key.isDown(Key.ESCAPE)) {
    		_parent.gotoAndStop(2);
    	}
    	if (Key.isDown(Key.LEFT)) {
    		if (onGraund1) {
    			isMoving = true;
    		}
    		dir = "left";
    		hero._x -= movingSpeed+onGraund1/2;
    	}
    	if (Key.isDown(Key.RIGHT)) {
    		if (onGraund1) {
    			isMoving = true;
    		}
    		dir = "right";
    		hero._x += movingSpeed+onGraund1/2;
    	}
    	if ((Key.isDown(Key.UP)) and (onGraund1 == true)) {
    		airdir = "jumping";
    		jumpForce = maxJumpForce;
    	}
    }
  11. Аватар для Andrew
    Наверно нужно физику периписать.
    По крайней мере
    if (hero._x<0) {
    hero._x = 0;
    }
    if (hero._x>640-hero._width) {
    hero._x = 640-hero._width;
    }
    нужно убрать.
  12. Аватар для Рыб
    Код:
    function inputUpdate(){
    	isMoving = false;
    	if (Key.isDown(Key.ESCAPE)) {
    		_parent.gotoAndStop(2);
    	}
    	if (Key.isDown(Key.LEFT)) {
    		if (onGraund1) {
    			isMoving = true;
    		}
    		dir = "left";
    		movingSpeed = maxMovingSpeed // Движемся влево
    	}
    	if (Key.isDown(Key.RIGHT)) {
    		if (onGraund1) {
    			isMoving = true;
    		}
    		dir = "right";
    		movingSpeed = (-1) * maxMovingSpeed // вправо, хотя вроде наоборот
    	}
    	if ((Key.isDown(Key.UP)) and (onGraund1 == true)) {
    		airdir = "jumping";
    		jumpForce = maxJumpForce;
    	}
    	movingSpeed = movingSpeed * 0.98 // тормазим 
    }
    Как-то так.
  13. Аватар для Рыб
    Ввел еще одну меременную maxMovingSpeed, которая есть значение скорости из HUD.
    physicUpdate довольно тяжело читается, скажу честно я там потерялся)
  14. Аватар для Andrew
    не двигается он теперь. Ищу причину.
  15. Аватар для Рыб
    А перемещение героя у тебя в physicUpdate или в inputUpdate)
  16. Аватар для Рыб
    Код:
    function inputUpdate(){
    	isMoving = false;
    	if (Key.isDown(Key.ESCAPE)) {
    		_parent.gotoAndStop(2);
    	}
    	if (Key.isDown(Key.LEFT)) {
    		if (onGraund1) {
    			isMoving = true;
    		}
    		dir = "left";
    		movingSpeed = maxMovingSpeed // Движемся влево
    	}
    	if (Key.isDown(Key.RIGHT)) {
    		if (onGraund1) {
    			isMoving = true;
    		}
    		dir = "right";
    		movingSpeed = (-1) * maxMovingSpeed // вправо, хотя вроде наоборот
    	}
    	if ((Key.isDown(Key.UP)) and (onGraund1 == true)) {
    		airdir = "jumping";
    		jumpForce = maxJumpForce;
    	}
    	movingSpeed = movingSpeed * 0.98 // тормазим 
            hero._x += movingSpeed // Вот эту строку забыли
    }
    Как-то так.
  17. Аватар для Andrew
    да, там наоборот. где (-1) должно быть 1. А там где ничего должно быть -1;
    плюс ты не написал hero._x += movingSpeed;
    но появилась проблема.
    http://redcode.do.am/FlaPb.swf
  18. Аватар для Andrew
  19. Аватар для Andrew
  20. Аватар для Рыб
    Проблема, это "скольжение"? Если да, то регулируется изменением кооэфицента(можешь добавить его на HUD) 0.98
    хотя нет, абракадабра тврится когда перс смотрит влево