Facebook Sharer
选择您要替换的背景颜色:
【农历新年】背景图片:
个性化设定
 注册  找回密码
查看: 3682|回复: 12
打印 上一主题 下一主题

请问有用Adobe Flash CS4做flash game的高手吗??来分享下action script 3.0好吗~~

[复制链接]

6

主题

0

好友

589

积分

青铜长老

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

跳转到指定楼层
1#
发表于 2010-1-29 01:18 PM |只看该作者 |正序浏览
有adobe flash cs4的高手吗~??我现在开始设计一个flash game。。还在做着animation和menu的东西。。actionscript的东西懂蛮少。。之后要用到。。比如计算怪物生命。。分数。。之类。。要做的是类似RPG游戏。请问下谁有action script教学的E-book啊。。?要专注在action script 3.0的。。或者有什么好的网上资源可以分享的~~~ 我找过网上的东西。。。感觉都蛮杂的。。想要看完整教学的ebook。。但网上要下载有些e-book都要钱啊。请问谁有foundation game design with flash 这本书?
欢迎adobe flash cs4的大大来分享~~~




收藏收藏0

20

主题

4

好友

2395

积分

白金长老

Rank: 10

13#
发表于 2010-2-5 11:17 PM |只看该作者
在Flash CS4我有define Land, Arm Hero Movieclip。
Land有很多个Frame,不同的frame代表不同的地形
Arm是Hero的手,Hero走路的时候Arm会摇动。
Hero可以向左向右,也可以跳。
我设定舞台的Main as file 为 LevelMain.as

  1. package {
  2.         import flash.display.MovieClip;
  3.         import com.level.World;
  4.         import com.level.Config;
  5.         import com.level.Hero;
  6.         import com.level.Control;
  7.         import flash.events.Event;
  8.         import flash.events.KeyboardEvent;
  9.         import flash.ui.Keyboard;
  10.        
  11.         public class LevelMain extends MovieClip {
  12.                 var config:Config = new Config();
  13.                 var world:World = new World();
  14.                 var hero:Hero = new Hero();
  15.                 var control:Control = new Control();
  16.                
  17.                
  18.                
  19.                
  20.                
  21.                 public function LevelMain() {
  22.                         initGame();
  23.                 }
  24.                
  25.                 public function initGame():void {
  26.                        
  27.                         config.configWorld(world);
  28.                        
  29.                         config.configHero(hero);
  30.                        
  31.                         config.configControl(control);
  32.                        
  33.                         addChild(world);
  34.                         addChild(hero);
  35.                        
  36.                         this.addEventListener(Event.ENTER_FRAME, gameloop);
  37.                         stage.addEventListener(KeyboardEvent.KEY_UP, control.key_up);
  38.                         stage.addEventListener(KeyboardEvent.KEY_DOWN, control.key_down);
  39.                 }
  40.                
  41.                 public function gameloop(e:Event):void {
  42.                         heromove();
  43.                 }
  44.                
  45.                 public function heromove():void {
  46.                         var keyNames = control.getKeys();
  47.                         if(keyNames.length > 0) {
  48.                                 for(var i:int; i<keyNames.length; i++) {
  49.                                         var keyName:String = keyNames[i];
  50.                                         if(keyName != null) {
  51.                                                 hero.walk(keyName); // direction
  52.                                         }
  53.                                 }
  54.                         } else {
  55.                                 hero.stops();
  56.                         }
  57.                        
  58.                        
  59.                 }
  60.         }
  61. }
复制代码

在 folder com/level define 了 5 个 class
Arm.as

  1. package com.level {
  2.         import flash.display.MovieClip;
  3.        
  4.         public class Arm extends MovieClip {
  5.                 var _isSwing:Boolean = false;
  6.                
  7.                 public function Arm() {
  8.                        
  9.                 }
  10.                
  11.                 public function startSwing():void {
  12.                         this.gotoAndPlay(2);
  13.                         _isSwing = true;
  14.                 }
  15.                
  16.                 public function stopSwing():void {
  17.                         this.gotoAndStop(1);
  18.                         _isSwing = false;
  19.                 }
  20.                
  21.                 public function isSwing():Boolean {
  22.                         return _isSwing;
  23.                 }
  24.         }
  25. }

复制代码


Config.as

  1. package com.level {
  2.         import com.level.World;
  3.         import com.level.Land;
  4.         import com.level.Hero;
  5.         import com.level.Control;
  6.         import flash.ui.Keyboard;
  7.         public class Config {
  8.                 public function Config() {
  9.                        
  10.                 }
  11.                
  12.                 public function configWorld(world:World):void {
  13.                         world.addLand(new Array(1,2,3,2,1,2,1,2,3,1,2,2,3));
  14.                         world.init();
  15.                 }
  16.                
  17.                 public function configHero(hero:Hero):void {
  18.                         hero.speed = 5;
  19.                         hero.x = 50;
  20.                         hero.y = 250;
  21.                 }
  22.                
  23.                 public function configControl(control:Control):void {
  24.                        
  25.                         control.addControl("left", Keyboard.LEFT);
  26.                         control.addControl("right", Keyboard.RIGHT);
  27.                         control.addControl("up", Keyboard.UP);
  28.                         control.addControl("down", Keyboard.DOWN);
  29.                        
  30.                 }
  31.         }
  32. }
复制代码


Config.as

  1. package com.level {
  2.         import flash.ui.Keyboard;
  3.         import flash.events.KeyboardEvent;
  4.         public class Control {
  5.                 var controls:Array = new Array();
  6.                 public function Control() {
  7.                        
  8.                 }
  9.                
  10.                 public function addControl(n:String, key:uint):void {
  11.                         controls.push(new Array(n, key, false));
  12.                 }
  13.                
  14.                 public function key_down(e:KeyboardEvent):void {
  15.                        
  16.                         for(var i:int; i<controls.length; i++) {
  17.                                 if(controls[i][1] == e.keyCode) {
  18.                                         controls[i][2] = true;
  19.                                 }
  20.                         }
  21.                 }
  22.                
  23.                 public function key_up(e:KeyboardEvent):void {
  24.                         for(var i:int; i<controls.length; i++) {
  25.                                 if(controls[i][1] == e.keyCode) {
  26.                                         controls[i][2] = false;
  27.                                 }
  28.                         }
  29.                 }
  30.                
  31.                 public function getKeys():Array {
  32.                         var keys = new Array();
  33.                         for(var i:int; i<controls.length; i++) {
  34.                                 if(controls[i][2] == true) {
  35.                                         keys.push(controls[i][0]);
  36.                                 }
  37.                         }
  38.                         return keys;
  39.                 }
  40.         }
  41. }
复制代码


Hero.as

  1. package com.level {
  2.         import flash.display.MovieClip;
  3.         import flash.events.Event;
  4.         public class Hero extends MovieClip {
  5.                 var _speed:int = 5;
  6.                
  7.                 var _jump:Boolean = false;
  8.                 var _yspeed:int = 0;
  9.                 var _gravity:int = 0;
  10.                
  11.                 public function Hero() {
  12.                        
  13.                         this.addEventListener(Event.ENTER_FRAME, updateStatus);
  14.                 }
  15.                
  16.                 public function updateStatus(e:Event):void {
  17.                         this.y += _yspeed;
  18.                         _yspeed += _gravity;
  19.                         if(this.y > 250) { // hit test here
  20.                                 this._gravity = 0;
  21.                                 this.y = 250;
  22.                                 this._jump = false;
  23.                         }
  24.                         trace(_yspeed);
  25.                 }
  26.                
  27.                 public function walk(direction:String):void {
  28.                        
  29.                        
  30.                         if(direction == "right") {
  31.                                 this.x += _speed;
  32.                                
  33.                         } else if (direction == "left") {
  34.                                 this.x -= _speed;
  35.                         } else if( direction == "up") {
  36.                                 if(_jump == false) {
  37.                                         this.startJump();
  38.                                 }
  39.                         } else if(direction == "down") {
  40.                                 this.y += speed;
  41.                         }
  42.                        
  43.                        
  44.                         if(!this.arm.isSwing()) {
  45.                                 this.arm.startSwing();
  46.                         }
  47.                 }
  48.                
  49.                 public function stops():void {
  50.                         this.arm.stopSwing();
  51.                 }
  52.                
  53.                 public function startJump():void {
  54.                         _jump = true;
  55.                         this._yspeed = -50;
  56.                         this._gravity = 10;
  57.                 }
  58.                
  59.                 public function set speed(value:int):void {
  60.                         _speed = speed;
  61.                 }
  62.                
  63.                 public function get speed():int {
  64.                         return _speed;
  65.                 }
  66.                
  67.         }
  68. }
复制代码


Land.as

  1. package com.level {
  2.         import flash.display.MovieClip;
  3.         public class Land extends MovieClip {
  4.                 var type:int = 0;
  5.                 public function Land(t:int) {
  6.                         type = t;
  7.                         init();
  8.                 }
  9.                
  10.                 public function init():void {
  11.                         if(type > 0) {
  12.                                 this.gotoAndStop("land_" + type);
  13.                         }
  14.                 }
  15.         }
  16. }
复制代码


World.as

  1. package com.level {
  2.         import com.level.Land;
  3.         import flash.display.Sprite;
  4.         public class World extends Sprite {
  5.                 var lands = new Array();
  6.                 public function World() {
  7.                        
  8.                 }
  9.                
  10.                 public function addLand(types:Array):void {
  11.                         for(var i:int; i<types.length; i++) {
  12.                                
  13.                                 var land:Land = new Land(types[i]);
  14.                                 lands.push(land);
  15.                         }
  16.                 }
  17.                
  18.                 public function init():void {
  19.                         for(var i:int; i<lands.length; i++) {
  20.                                 lands[i].x = i * 100;
  21.                                 lands[i].y = 400;
  22.                                 addChild(lands[i]);
  23.                         }
  24.                 }
  25.         }
  26. }
复制代码


回复

使用道具 举报

6

主题

0

好友

589

积分

青铜长老

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

12#
发表于 2010-2-1 10:10 PM |只看该作者
原帖由 fyhao 于 2010-2-1 10:58 AM 发表
上次初学AS3.0的时候,我充分利用了AS3 的OOP,实现2楼所说的,很直观,很好用,做了一个会走动会跳的简单Hero。。。

来分享下吧~?你怎样做~


回复

使用道具 举报

20

主题

4

好友

2395

积分

白金长老

Rank: 10

11#
发表于 2010-2-1 10:58 AM |只看该作者
上次初学AS3.0的时候,我充分利用了AS3 的OOP,实现2楼所说的,很直观,很好用,做了一个会走动会跳的简单Hero。。。


回复

使用道具 举报

6

主题

0

好友

589

积分

青铜长老

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

10#
发表于 2010-1-30 04:38 PM |只看该作者
原帖由 Super-Tomato 于 2010-1-30 02:54 AM 发表
基礎還是最重要吧, 製作遊戲如果連基礎都沒辦法搞懂的話, 製作過程的問題和 bugs 會一大堆
建議先弄出個 flow chart 之後再規劃其他的部份吧

嗯。。还在摸索。。flow chart之前有画。。
主要是programming concept不好。。去网上问问。。哈。。


回复

使用道具 举报

6

主题

0

好友

589

积分

青铜长老

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

9#
发表于 2010-1-30 03:06 PM |只看该作者
原帖由 宅男-兜着走 于 2010-1-30 12:27 AM 发表
有现成的函数 来得到 Key 的值的, 不过Output 好象是 ACII , 但是有个Function 又能convert 回来, 没记错的话。

我上次是学 考试 , 学, 读, 2.0 的。 所以教不到你。

我说的物件导向是 OOP 概念 ...

哦哦。。函数?讲英文好吗。。?都不明白呢。呵呵。。。object oriented...java的。。之前拿过。。不是很会。em0004
我是两个月前拿过adobe certified。。 flash cs4的course。。过了考试。。。。不过。。还不是很熟。。em0004 。。其实考试很多题目都是instructor给你然后你去明白。。然后一定考过。。。哈哈em0013
现在只好跟朋友在网上找资料自己研究。。em0004多谢了~

[ 本帖最后由 我只是为你好 于 2010-1-30 03:07 PM 编辑 ]


回复

使用道具 举报

7

主题

1

好友

5108

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

8#
发表于 2010-1-30 02:54 AM |只看该作者
基礎還是最重要吧, 製作遊戲如果連基礎都沒辦法搞懂的話, 製作過程的問題和 bugs 會一大堆
建議先弄出個 flow chart 之後再規劃其他的部份吧


回复

使用道具 举报

46

主题

6

好友

6456

积分

百变名嘴

Rank: 13Rank: 13Rank: 13Rank: 13

7#
发表于 2010-1-30 12:27 AM |只看该作者

回复 #4 我只是为你好 的帖子

有现成的函数 来得到 Key 的值的, 不过Output 好象是 ACII , 但是有个Function 又能convert 回来, 没记错的话。

我上次是学 考试 , 学, 读, 2.0 的。 所以教不到你。

我说的物件导向是 OOP 概念来的

看图书啦, 图书馆有, Google 也有。 Basic Programming 打好什么都是假

然后下载个 Ducumentation 下来, 你就会的了。

当然前提是你要 对 AS的 function 有所研究。 做个Game 出来 不是难事。


回复

使用道具 举报

6

主题

0

好友

589

积分

青铜长老

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

6#
发表于 2010-1-29 11:08 PM |只看该作者
原帖由 goodhermit95 于 2010-1-29 10:51 PM 发表
那么你应该还没能力做game吧……
key和calculation还不会……建议你血多几个月试试

哈哈,不行呢。。得做出来。。跟朋友一起研究


回复

使用道具 举报

62

主题

5

好友

3715

积分

本站名嘴

Rank: 11Rank: 11

5#
发表于 2010-1-29 10:51 PM |只看该作者

回复 #4 我只是为你好 的帖子

那么你应该还没能力做game吧……
key和calculation还不会……建议你血多几个月试试


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

JBTALKS.CC |联系我们 |隐私政策 |Share

GMT+8, 2024-10-25 12:28 PM , Processed in 0.128471 second(s), 28 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Ultra High-performance Dedicated Server powered by iCore Technology Sdn. Bhd.
Domain Registration | Web Hosting | Email Hosting | Forum Hosting | ECShop Hosting | Dedicated Server | Colocation Services
本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved
合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部