05. juli 2005 - 23:00Der er
22 kommentarer og 1 løsning
Hjælp til flashspil (ala slime soccer)
Heey... Jeg har lært lidt actionScript og vil derfor lege lidt med det. Jeg har altid ville lave spil, og det er så det jeg prøver nu. Jeg er gået lidt i gang selv, men der er dog mange ting som jeg ikke aner hvordan jeg skal løse.
For at starte har jeg fået min "slime" til at bevæge sig frem og tilbage. Så kan den også hoppe nu, men det ser ikke godt ud. Her er mit script som er på "slime1":
onClipEvent (load) { var hopper:Boolean = false; var falder:Boolean = false; var hastighed:Number = 7; var sceneh:Number = 300; var sceneb:Number = 600; this._y = sceneh-_root.jord._height; this._x = 10+this._height; var radius:Number = this._height+3; var højde:Number = 75; } onClipEvent (enterFrame) { // frem og tilbage if (Key.isDown(Key.LEFT) && this._x>radius) { this._x -= hastighed; } if (Key.isDown(Key.RIGHT) && this._x<sceneb-(radius)) { this._x += hastighed; } // hoppe if (Key.isDown(Key.UP) && !hopper && !falder) { hopper = true; starty = this._y; } if (hopper && !falder) { this._y -= (starty-højde)/20; if (this._y<=starty-højde) { falder = true; } } if (falder) { this._y += (starty-højde)/20; if (this._y>=starty) { this._y = sceneh-_root.jord._height; falder = false; hopper = false; } } }
Det første jeg vil have er at hoppet ser ordentligt ud. Derefter vil jeg gerne have hjælp til bolden. Jeg håber I vil prøve at guide mig gennem dette, så jeg får lavet mit første spil...
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Jeg har ændret lidt på det: onClipEvent (load) { var hopper:Boolean = false; var falder:Boolean = false; var hastighed:Number = 7; var sceneh:Number = 300; var sceneb:Number = 600; this._y = sceneh-_root.jord._height; this._x = 10+this._height; var starty = sceneh-_root.jord._height; var radius:Number = this._height; var højde:Number = (this._height*2)+10; } onClipEvent (enterFrame) { // frem og tilbage if (Key.isDown(Key.LEFT)) { this._x -= hastighed; if (this._x<=radius) { this._x = radius; } } if (Key.isDown(Key.RIGHT)) { this._x += hastighed; if (this._x>=sceneb-radius) { this._x = sceneb-(radius); } } // hoppe if (Key.isDown(Key.UP) && !hopper && !falder) { hopper = true; } if (hopper && !falder) { this._y -= 8; if (this._y<=starty-højde) { falder = true; } } if (falder) { this._y += 8; if (this._y>=starty) { this._y = starty; falder = false; hopper = false; } } }
Det jeg gerne vil have er at når man trykker på Key.UP, så skal "slime" hoppe og jo højere den kommer op mister den hastighed og til sidst stopper den i luften og falder ned med en accelerende fart. I ved nok hvad jeg mener....
Jeg har prøvet den tutorial og andre, men det virker ikke... Jeg har lavet koden så den er således: onClipEvent (load) { var hopper:Boolean = false; var falder:Boolean = false; var hastighed:Number = 7; var sceneh:Number = 300; var sceneb:Number = 600; this._y = sceneh-_root.jord._height; this._x = 10+this._height; var starty = sceneh-_root.jord._height; var radius:Number = this._height; var højde:Number = (this._height*2)+10; var tyngde:Number = 0.9; var faldhastighed:Number = 0; } onClipEvent (enterFrame) { // frem og tilbage if (Key.isDown(Key.LEFT)) { this._x -= hastighed; if (this._x<=radius) { this._x = radius; } } if (Key.isDown(Key.RIGHT)) { this._x += hastighed; if (this._x>=sceneb-radius) { this._x = sceneb-(radius); } } // hoppe if (Key.isDown(Key.UP) && !hopper && !falder) { hopper = true; } if (hopper && !falder) { this._y -= 7; if (this._y<=starty-højde) { falder = true; } } if (falder) { faldhastighed += tyngde; this._y += faldhastighed; if (this._y>=starty) { faldhastighed = 0; this._y = starty; falder = false; hopper = false; } } }
Der sker ikke den der "easing"... Kan I ikke prøve at ændre på actionscriptet?
Her er den: home1.stofanet.dk/orhan/slimesoccer.fla Når du nu kigger på den, kan så ikke også se om du kan gennemskue hvorfor bolden kommer bag en, når man løber hurtigt ind i den..??
Forstå ikke meget andet af java end af slimesoccer er ekstremt underholdende og vanedannende heh :) nå men jeg kiggede lidt på din kode, og kunne ikke rigtigt gennemskue hvorfor det ikke virkede, så jeg prøvede lige at lægge et par ting sammen og rodde lidt med tyngde og faldhastighed, tror den er der nu: onClipEvent (load) { var hopper:Boolean = false; var falder:Boolean = false; var hastighed:Number = 7; var sceneh:Number = 300; var sceneb:Number = 600; this._y = sceneh-_root.jord._height; this._x = 10+this._height; var starty = sceneh-_root.jord._height; var radius:Number = this._height; var højde:Number = (this._height*2)+10; var tyngde:Number = 0.5; var faldhastighed:Number = 0; } onClipEvent (enterFrame) { // frem og tilbage if (Key.isDown(Key.LEFT)) { this._x -= hastighed; if (this._x<=radius) { this._x = radius; } } if (Key.isDown(Key.RIGHT)) { this._x += hastighed; if (this._x>=sceneb-radius) { this._x = sceneb-(radius); } } // hoppe if (Key.isDown(Key.UP) && !falder) { hopper = true; faldhastighed = -15; falder = true; this._y += faldhastighed; if (this._y<=starty-højde) { falder = true; faldhastighed = 0; } } if (falder) { faldhastighed += tyngde; this._y += faldhastighed; if (this._y>=starty) { faldhastighed = 0; this._y = starty; falder = false; hopper = false; } } }
Med hensyn til at man kan løbe gennem bolden, så er det fordi din hastighed er sat til 7 mens din bold kun bevæger sig 5, så hvis bolden bliver sat til 7 altså: this._x += 7; så virker det :)
Heh ja, skulle bare lige overdrive så jeg var sikker på den virkede kan så ikke forklare hvorfor det virker mens alt sammen står inde i keyup funktionen og ikker virker når det står seperat, men det skal man nok ikke tænke så meget over :) du får lige et svar fra mig af :)
Og hvis der noget med den finder vi ud af det også
Nåh okay på den måde. Hehe ja jeg glæder mig også til jeg får lavet det. Skal nok smide et link her ind. Ja nu kan slimen bevæge sig, så nu vil jeg prøve at lave noget med bolden. Bolden kan skubbes frem og tilbage, men den skal jo også op. Det der bliver sværest er vel når man trykker Key.DOWN og bolden ruller over en. Hvordan skal jeg klare det?? For det første skal bolden rulle på en rund kant og for det andet skal bolden "klistre" sig fast. Har du nogle ideer?
For at finde punkterne som er på figurens kant, lavede jeg det her: var radius:Number = _root.slime1._height; var pi:Number = Math.PI; var slimex:Number = 45; var slimey:Number = 240; var dec:Number = 20; _root.slime1._x = slimex; _root.slime1._y = slimey; var slimex:Number = _root.slime1._x; var slimey:Number = _root.slime1._y; for(i=0;i<=pi;i=i+0.1){ korx_t = (Math.cos(i)*radius)+slimex; kory_t = slimey-(Math.sin(i)*radius); korx = Math.round(korx_t*dec)/dec kory = Math.round(kory_t*dec)/dec trace("( "+korx+" ; "+kory+" )") }
Men jeg ved ikke hvordan jeg kan bruge det til noget. Selv om "SlimeSoccer" ser ud til at være simpelt, så er der alligvel en del matematik i. Noget andet der også bliver svært at lave (tror jeg) er når bolden rammer slimen og så skal der beregnes hvilken vej bolden så skal hen. Jeg tænkter på en tangent der rammer det punkt bolden og slimen rører hinanden, og så bruger man den tanget til at "spejle" boldens tidligere rute.. eller noget... Er lidt lost nu...
Jamen hvordan laver folk baner som har bakker osv?? Fx er der mange af den slags på www.teagames.com. De der BMX spil har bakker og små ting man skal køre over og de er ikke firkantede men runde og andre former...
beskrivelsen af bogen: So you wanna be a hotshot game designer? Well, if you have a basic grasp of Macromedia Flash MX, you can. Unafraid to tackle some of the more complicated aspects of game creation (including physics and trigonometry!), this comprehensive reference covers it all. Macromedia Flash Game Design Demystified starts out with the basics: planning, adapting ActionScript techniques, using introductory Flash game techniques, and more. Then it gets down to the real business of building simple games. You'll tackle simple-logic and quiz games before moving on to multiplayer and complex-logic games (chess, for example)--learning about importing 3-D graphics, adding sound effects, and licensing your games in the process. The book's companion CD includes the source files for a number of games as well as the tutorials and lessons that go along with the book and XML server software to facilitate multiplayer games. If you're tired of the games that you have and want to make your own action, this book offers comprehensive coverage of sophisticated techniques--but put in easy-to-grasp, practical terms.
Men kigger da videre efter direkte spil tutorials
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.