ИГРОДЕЛ
Войдите на сайт или зарегистрируйтесь!!!

Урок 2 руководство-часть 1

Перейти вниз

Урок 2 руководство-часть 1

Сообщение автор Admin в Вс Фев 21, 2010 3:44 am

Это руководство является переработкой руководства http://siliren.ru/content/view/34/1/ , но для языка ActionScript 3.0.

Мы будем использовать три скриптовых файла: as3circle.as для самой игры, circle.as для героя (шар), keys.as для ввода данных с клавиатуры.

Как объединить классы
Объединение классов – очень важный процесс, особенно для AS3, вот как Вы можете это сделать:
На панели свойств movie:

Пишете as3circle в поле классов документа, что установит as3circle.as как главный классификационный файл.
На панели свойств circle object:


Пишете circle в поле классов, это создаст классификационный файл для объекта circle.
Теперь ваш .fla файл и три файла .as должны находиться в одной ветви.
Данная кодировка применительна для всех файлов…Думаю, нет необходимости комментировать еще что-либо, ведь это делалось уже много раз…но если Вам все-таки нужны пояснения, спрашивайте…

as3circle.as file:


ACTIONSCRIPT:
1.package {
2. import flash.display.Sprite;
3. import flash.events.Event;
4. public class as3circle extends Sprite {
5. public var keyboard_input:keys;
6. public var circle_hero = new circle;
7. public function as3circle() {
8. addChild(circle_hero);
9. circle_hero.init();
10. var keyboard_sprite = new Sprite();
11. addChild(keyboard_sprite);
12. keyboard_input = new keys(keyboard_sprite);
13. stage.addEventListener(Event.ENTER_FRAME,on_enter_frame);
14. }
15. public function on_enter_frame(event:Event) {
16. if (keyboard_input.is_left()) {
17. circle_hero.apply_force(-1,0);
18. }
19. if (keyboard_input.is_right()) {
20. circle_hero.apply_force(1,0);
21. }
22. if (keyboard_input.is_up()) {
23. circle_hero.apply_force(0,-1);
24. }
25. if (keyboard_input.is_down()) {
26. circle_hero.apply_force(0,1);
27. }
28. }
29. }
30.}
circle.as file:

ACTIONSCRIPT:
1.package {
2. import flash.display.Sprite;
3. import flash.events.Event;
4. public class circle extends Sprite {
5. private var x_speed:Number;
6. private var y_speed:Number;
7. private var power:Number;
8. private var friction:Number;
9. private var gravity:Number;
10. public function circle() {
11. addEventListener(Event.ENTER_FRAME, movement);
12. }
13. private function movement(e:Event) {
14. x+=x_speed;
15. y+=y_speed;
16. rotation += x_speed;
17. y_speed += gravity;
18. x_speed *= friction;
19. y_speed *= friction;
20. if (x>500 || x<0 || y>400 || y<0) {
21. init();
22. }
23. }
24. public function apply_force(x_force,y_force) {
25. x_speed += (x_force*power);
26. y_speed += (y_force*power);
27. }
28. public function init() {
29. gravity = 0.1;
30. power = 0.66;
31. friction = 0.99;
32. x_speed = 0;
33. y_speed = 0;
34. x = 250;
35. y = 200;
36. }
37. }
38.}
keys.as file
ACTIONSCRIPT:
1.package {
2. import flash.events.KeyboardEvent;
3. public class keys {
4. private var press_left = false;
5. private var press_right = false;
6. private var press_up = false;
7. private var press_down = false;
8. private var press_space = false;
9. public function keys(movieclip) {
10. movieclip.stage.addEventListener(KeyboardEvent.KEY_DOWN, key_down);
11. movieclip.stage.addEventListener(KeyboardEvent.KEY_UP, key_up);
12. }
13. public function is_left() {
14. return press_left;
15. }
16. public function is_right() {
17. return press_right;
18. }
19. public function is_up() {
20. return press_up;
21. }
22. public function is_down() {
23. return press_down;
24. }
25. public function is_space() {
26. return press_space;
27. }
28. private function key_down(event:KeyboardEvent) {
29. if (event.keyCode == 32) {
30. press_space = true;
31. }
32. if (event.keyCode == 37) {
33. press_left = true;
34. }
35. if (event.keyCode == 38) {
36. press_up = true;
37. }
38. if (event.keyCode == 39) {
39. press_right = true;
40. }
41. if (event.keyCode == 40) {
42. press_down = true;
43. }
44. }
45. private function key_up(event:KeyboardEvent) {
46. if (event.keyCode == 32) {
47. press_space = false;
48. }
49. if (event.keyCode == 37) {
50. press_left = false;
51. }
52. if (event.keyCode == 38) {
53. press_up = false;
54. }
55. if (event.keyCode == 39) {
56. press_right = false;
57. }
58. if (event.keyCode == 40) {
59. press_down = false;
60. }
61. }
62. }
63.}
avatar
Admin
Admin

Сообщения : 92
Очки : 280
Репутация : 36
Дата регистрации : 2010-02-20

Посмотреть профиль http://game-dll.mirbb.net

Вернуться к началу Перейти вниз

Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения