13. april 2007 - 16:03Der er
14 kommentarer og 1 løsning
Hvor mange knapper kan registreres ad gangen?
Hej eksperter!
Jeg er ved at lave et lille spil i Flash, hvor man styrer et fly rundt i rummet. Man navigerer med piletasterne og skyder på Z. Der er bare et problem: Hvis spilleren holder Z samt eksempeltvis PIL OP og PIL HØJRE nede og så slipper PIL HØJRE og trykker på PIL VENSTRE fortsætter flyet ligeud. Hvorfor registrerer Flash Player ikke dette input?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
// Controls var FORWARD:Number = new Number(38); var BACKWARDS:Number = new Number(40); var LEFT:Number = new Number(37); var RIGHT:Number = new Number(39); var PRIMARY:Number = new Number(90);
// Data var HEALTH:Number = new Number(1000); var ARMOR:Number = new Number(100); var AMMUNITION:Number = new Number(100); var COOLDOWN:Boolean = new Boolean();
// Physics var ACCELERATION:Number = new Number(.1); var STEERING:Number = new Number(5);
// Vectors var VECTORS_X:Array = new Array(); var VECTORS_Y:Array = new Array(); var VECTOR_X:Number = Number(0); var VECTOR_Y:Number = Number(0);
// Effects var EFFECTS_NAME:Array = new Array(); var EFFECTS_TIME:Array = new Array();
public static function ROUND(_NUMBER:Number, _DIGITS:Number, _ADD:Boolean):String { if (_ADD && _DIGITS>0) { var RETURN:String = new String((Math.round(_NUMBER*Math.pow(10, _DIGITS))/Math.pow(10, _DIGITS)).toString()); if (RETURN.indexOf(".", 0) == -1) { RETURN += "."; } while (RETURN.length < ((Math.floor(_NUMBER)).toString()).length+_DIGITS+1) { RETURN += "0"; } return RETURN; } else { return (Math.round(_NUMBER*Math.pow(10, _DIGITS))/Math.pow(10, _DIGITS)).toString(); } }
}
----- EFFECTS.as -----
class EFFECTS {
public static function APPLY(_OBJECT:String, _EFFECT:String, _DURATION:Number):Void { _root.OBJECTS[_OBJECT].EFFECTS_NAME.push(_EFFECT); _root.OBJECTS[_OBJECT].EFFECTS_TIME.push(_DURATION); }
}
----- SYMBOLS.as -----
class SYMBOLS {
private static var MAX:Number = new Number(1000); private static var DEPTH:Array = new Array();
public static function ATTACH(_PARENT:String, _SYMBOL:String, _ARGUMENTS:Object):MovieClip { if (DEPTH[_PARENT]==undefined || DEPTH[_PARENT]>=MAX-1) { DEPTH[_PARENT] = 0; } else { DEPTH[_PARENT]++; } return _root[_PARENT].attachMovie(_SYMBOL, "SYMBOL"+DEPTH[_PARENT], DEPTH[_PARENT], _ARGUMENTS); }
}
Enkelt, ikke? Hvor er så fejlen?
Synes godt om
Slettet bruger
13. april 2007 - 19:05#4
Hov, jeg må hellere være sød... Du skal nok fokusere på:
Hvorfor skal min karma skyde i sænk (lav dog det om mand)? Du stiller et spørgsmål og ud fra de oplysninger du der giver, så giver jeg det mest fyldestgørende svar man kan - netop at din kode formodentligt er sat forkert op - for det kan sagtens virke.
Prøv at putte nedestående kode ind i frame 1 og se om den giver samme problemer som du oplevede i din egen kode - og hvis ikke så prøv at lur min kode af og integrer den med din egen!
Mit eksempel lader meget tilbage at ønske - fx bør der rettes til så kuglernes movieclip bliver slettet når kuglerne ryger ud af synsfeltet og tilsvarende bør der laves noget som tager højde for hvis flyet forlader synsfeltet. Men det er jo heller ikke det dit spørgsmål går ud på - du spørger jo om piletasterne og andre taster kan registreres samtidig i flash og det kan de.
Synes godt om
Slettet bruger
14. april 2007 - 08:42#9
Det er jo godt. Og jeg mener da, at projektiler og spiller bliver slettet når de forlader skærmen... Jo, det gør de også. Kikker lige på din kode.
Synes godt om
Slettet bruger
14. april 2007 - 09:05#10
Lol, undskyld, men jeg bliver altså nødt til at sige, at din kode overhovedet ikke virker...
Synes godt om
Slettet bruger
14. april 2007 - 09:06#11
Holder jeg PIL OP eller NED nede sammen med VENSTRE ellr HØJRE og slipper sidepilen for at trykke på modsatte går det omkring et sekundt inden den reagerer...
Hmm du har vist ret, der er et problem i flash med at registrere left-, right- og up-arrow på en gang. Hvis du afprøver nedenstående kode, som er sat op til at registrere up, down, left, right og 'z', så ses det at left-, right- og up-arrow ikke kan registreres alle tre på en gang, men det kan også ses, at det kun er i forbindelse med up og left at problemet er der.
NB! pil op og ned sammen med højre virker fint i min kode, men ikke med venstre. Så jo flash har et problem i forhold til registrering af ned og højre samtidig med at op og venstre er trykket ned.
Har ingen egentlig løsning på problemet - andet end lev med det eller brug andre taster.
Synes godt om
Slettet bruger
14. april 2007 - 14:57#15
Jeg kom frem til samme konklussion :) Nej, så er der nok ingen løsning... men nu er jeg da sikker på at det ikke en en fejl i min kode eller på min pc ;) Takker!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.