Beste medetweakers,
ik ben bezig met een simpele flash game maken, maar wil nu de actionscriptcode die ik gemaakt heb in de flash movie in externe .as bestanden planten zoals actionscript 2.0 dit aangeeft, maar kom er niet helemaal uit.
Het spel is een soort alien shooter waar ufos van boven naar beneden komen vliegen, en de gebruiker met pijltje links / rechts en spatie een laserkanon bestuurd.
Als ik nu de functions die ik gemaakt heb in een class zet krijg ik verschillende errors, waarvan ik de meeste wel op kan lossen alleen 1 error message geeft: "function does not have the static attribute..." maar zodra ik de function een static attribute geef kunnen er dus geen ""dynamische" variabelen in de functie staan
Welke code kan ik het beste in externe bestanden zetten, en welke kan ik in de timeline laten staan?
Ik hoop dat iemand begrijpt met wat ik probeer uit te leggen dit is mijn code:
(ik zet het even in php tags voor de leesbaarheid)
Edit:
Voor de mensen die het willen proberen
http://www.tom-it.nl/flashgame/game.html
ik ben bezig met een simpele flash game maken, maar wil nu de actionscriptcode die ik gemaakt heb in de flash movie in externe .as bestanden planten zoals actionscript 2.0 dit aangeeft, maar kom er niet helemaal uit.
Het spel is een soort alien shooter waar ufos van boven naar beneden komen vliegen, en de gebruiker met pijltje links / rechts en spatie een laserkanon bestuurd.
Als ik nu de functions die ik gemaakt heb in een class zet krijg ik verschillende errors, waarvan ik de meeste wel op kan lossen alleen 1 error message geeft: "function does not have the static attribute..." maar zodra ik de function een static attribute geef kunnen er dus geen ""dynamische" variabelen in de functie staan
Welke code kan ik het beste in externe bestanden zetten, en welke kan ik in de timeline laten staan?
Ik hoop dat iemand begrijpt met wat ik probeer uit te leggen dit is mijn code:
(ik zet het even in php tags voor de leesbaarheid)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
| /************variables************/ /************Variables declareren************/ //snelheid waarmee het laserkanon links en rechts gaat var gunSpeed:Number = 10; //snelheid waarmee de laser afgeschoten wordt var laserSpeed:Number = 30; //beginsnelheid van de ufo var ufoSpeed:Number = 10; //countervariabele om aantal laserstralen bij te houden var laserCount:Number = 1; //countervariabele om aantal ufo's bij te houden var ufoCount:Number = 1; var score:Number = 0; var misses:Number = 0; /************create objects************/ //Object aanmaken die bijhoudt of bepaalde toetsen ingedrukt worden var keyListener:Object = new Object(); //Object aanmaken die de instellingen meegeeft aan de verschillende laserstralen var initLaser:Object = new Object(); //Object aanmaken die de instellingen meegeeft aan de verschillende ufo's var initUfo:Object = new Object(); /**********handle events**************/ //zodra er een ufo in beeld wordt gezet door de functie newUfo() gaat de volgende event doorlopend draaien initUfo.onEnterFrame = function() { // Hier wordt de y coordinaat van ufo telkens met alienSpeed opgeteld (verplaatsing van de ufo naar beneden) () this._y += ufoSpeed; //if statement zodra het y coordinaat groter wordt als de hoogte van de stage moet de movieclip verwijderd worden, anders blijft hij in het oneindige naar beneden gaan (buiten beeld) en dit kost processor en laad tijd. if (this._y>Stage.height) { misses+=1; txtMisses.text=String(misses); removeMovieClip(this); if(misses == 5){ mcGameOver.txtEndScore.text = score; mcGameOver._visible = true; clearInterval(game); } } }; initLaser.onEnterFrame = function() { this._y -= laserSpeed; if (this._y <0) { removeMovieClip(this); } //in de onderstaande for lus wordt er gekeken of een laserstraal een ufo raakt //zolang i kleiner is als ufoCount blijft de lus checken of een kogel een ufo raakt for (i=1; i<=ufoCount; i++) { if (this.hitTest(this._parent["mcUfo"+i])) { //zodra een laserstraal een ufo raakt, wordt de ufo (en de laserstraal) verwijderd score+= 1; txtScore.text=String(score); removeMovieClip(this._parent["mcUfo"+i]); removeMovieClip(this); } } }; //zodra de spatie ingedrukt wordt door gebruiker moet er een nieuwe laserstraal aangemaakt worden dmv function newlaser keyListener.onKeyDown = function() { if (Key.isDown(Key.SPACE)) { newLaser(); } }; //zodra er op de linker of rechter pijltjes toets gedrukt wordt moet de lasergun zich naar links of rechts verplaatsen mcGun.onEnterFrame = function() { if (Key.isDown(Key.RIGHT)) { if (this._x<Stage.width-this._width) { this._x += gunSpeed; } } if (Key.isDown(Key.LEFT)) { if (this._x>0) { this._x -= gunSpeed; } } }; mcRestart.onRelease = function(){ score=0; misses=0; mcGameOver._visible = false; mcRestart._visible = false; Key.addListener(keyListener); var game:Number = setInterval(this,"newUfo",500); } /*************functions***************/ function newLaser() { laserName = "mcLaser"+String(laserCount); laserDepth = this.getNextHighestDepth(); this.attachMovie("laser", laserName, laserDepth, initLaser); this[laserName]._x = mcGun._x+mcGun._width/2; this[laserName]._y = mcGun._y; laserCount++; } function newUfo() { ufoName = "mcUfo"+String(ufoCount); ufoDepth = this.getNextHighestDepth(); this.attachMovie("ufo", ufoName, ufoDepth, initUfo); this[ufoName]._x = Math.random()*(Stage.width-this[ufoName]._width)+this[ufoName]._width/2; this[ufoName]._y = -50; ufoCount++; } /************set properties*************/ /**************run now***************/ mcGameOver._visible = false; Key.addListener(keyListener); var game:Number = setInterval(this,"newUfo",500); |
Edit:
Voor de mensen die het willen proberen
http://www.tom-it.nl/flashgame/game.html