Gra klocki |
Autor |
Wiadomość |
tobiasz256
Początkujący
Wiek: 31 Dołączył: 28 Mar 2012 Posty: 5 Skąd: Przysucha
|
Wysłany: Sro 28 Mar, 2012 15:24 Gra klocki
|
|
|
Na początku chciałbym się serdecznie przywitać jestem nowym użytkownikiem forum i od razu przepraszam jeżeli założyłem temat w nieodpowiednim dziale. Szukałem informacji na interesujący mnie temat ale niestety nie znalazłem. Mój problem polega na tym iż chcę zrobić prostą gierkę piłka rakietka od której będzie odbijać się piłka oraz tylko kilka klocków. Gra ma polegać na tym że piłka ma się odbić od rakietki i przy kontakcie z klockiem ma się od niego odbić a klocek ma zniknąć. Odbijanie i poruszanie piłki już zrobiłem ale mam problem ze znikaniem klocków. Zastosowałem taką instrukcję if (_parent.pilka.isNearThis(40,90)) {_parent.vel_x=-_parent.vel_x;} przy odbijaniu piłki ale nie mogę poradzić sobie ze znikaniem klocka. Jestem początkujący we SWISH'u bardzo proszę bardziej doświadczonych ode mnie o pomoc. |
|
|
|
|
espe1
Profesjonalista
Pomógł: 16 razy Dołączył: 02 Lis 2011 Posty: 175 Skąd: łódzkie
|
Wysłany: Sro 28 Mar, 2012 15:36
|
|
|
a gdzie plik swi???
co mam napisać sobie grę od zera, żeby odpowiedzieć na twoje pytanie
chyba nikt nie jest na tyle głupi |
|
|
|
|
tobiasz256
Początkujący
Wiek: 31 Dołączył: 28 Mar 2012 Posty: 5 Skąd: Przysucha
|
Wysłany: Sro 28 Mar, 2012 15:43
|
|
|
Przepraszam najmocniej całkiem zapomniałem już załączam. |
|
|
|
|
espe1
Profesjonalista
Pomógł: 16 razy Dołączył: 02 Lis 2011 Posty: 175 Skąd: łódzkie
|
Wysłany: Sro 28 Mar, 2012 16:15
|
|
|
Tworzysz piłkę i nazywasz ją ball, dodajesz skrypt:
(trzeba tylko zmienić punkt start x i y, w zależności od wielkości sceny)
Kod: |
onSelfEvent (load) {
dir = Math.round(Math.random() * 1);
speed =10;
if (dir == 1) {
var Ang = 45;
} else {
var Ang = 135;
}
xspeed = speed * Math.cos((Ang) * Math.PI / 180);
yspeed = speed * Math.sin((Ang) * Math.PI / 180);
}
onSelfEvent (enterFrame) {
this._x += xspeed;
this._y += yspeed;
if ((this._x <= _root.ball._width/2) || (this._x >= Stage.width - _root.ball._width/2)) {
xspeed = -xspeed;
}
if ((this._y <= _root.ball._width/2) || (_root.pad.hitTest(this))) { yspeed = -yspeed;
}
if (this._y > Stage.height-_root.ball._height/2) {
_x = 150; //punkt start x, w którym pojawia się piłka
_y = 80; //punkt start y, w którym pojawia się piłka
dir = Math.round(Math.random() * 1);
speed = 10;
if (dir == 1) {
var Ang = 45;
} else {
var Ang = 135;
}
xspeed = speed * Math.cos((Ang) * Math.PI / 180);
yspeed = speed * Math.sin((Ang) * Math.PI / 180);
}
} |
na dole sceny dajesz szejpa (to nasza "paletka") do odbijania piłki, nazywasz ją pad i dodajesz skrypt:
Kod: |
onSelfEvent (enterFrame) {
if(Key.isDown(Key.RIGHT)) {
if(this._x <= Stage.width-_root.pad._width/2) {
this._x += 10
}
}
if(Key.isDown(Key.LEFT)) {
if(this._x >= _root.pad._width/2) {
this._x -= 10;
}
}
} |
u góry dajesz cegiełki, szejpy (szejpa trzeba zgrupować jako MovieClip) i do każdego dajesz skrypt:
(można utworzyć 1 szt i skopiować)
Kod: |
onSelfEvent (enterFrame) {
if ((this.hitTest(_root.ball))) {
_root.ball.yspeed = -_root.ball.yspeed;
this.play();
}
onFrame (1) {
stop();
}
onFrame (2) {
play();
}
onFrame (12) {
stop();
}
} |
od klatki 2 do 11 dajesz: Fade Out(10), a na 1 klatce place |
|
|
|
|
^Januszr
Pomógł: 216 razy Dołączył: 11 Maj 2005 Posty: 1854 Skąd: Stolyca od urodzenia
|
Wysłany: Sro 28 Mar, 2012 20:13
|
|
|
Craig kiedyś już to napisał i udostępnił: http://www.swish-designs.co.uk/blog/?p=2141 |
_________________ Niestety używam nieoficjalnych wersji Swish, które można zassać z forums.swishzone.com - jest na szczycie listy w BugsForum.
|
|
|
|
|
espe1
Profesjonalista
Pomógł: 16 razy Dołączył: 02 Lis 2011 Posty: 175 Skąd: łódzkie
|
Wysłany: Sro 28 Mar, 2012 21:32
|
|
|
cegiełki można też zduplikować, tworzymy 1 cegiełkę i nazywamy ją rect, do cegiełki dajemy skrypt:
Kod: |
onSelfEvent (enterFrame) {
if ((this.hitTest(_root.ball))) {
_root.ball.yspeed = -_root.ball.yspeed;
removeMovieClip();
}
}
|
[ Dodano: Czw 29 Mar, 2012 00:15 ]
i nie można już nic wpisać wyskakuje bład php |
|
|
|
|
tobiasz256
Początkujący
Wiek: 31 Dołączył: 28 Mar 2012 Posty: 5 Skąd: Przysucha
|
Wysłany: Czw 29 Mar, 2012 15:58
|
|
|
Dziękuję serdecznie za pomoc, mam pytanie dlaczego te skrypty nie działają w Swish 3? jedynie w 4 wszystko działa elegancko |
|
|
|
|
^Januszr
Pomógł: 216 razy Dołączył: 11 Maj 2005 Posty: 1854 Skąd: Stolyca od urodzenia
|
Wysłany: Czw 29 Mar, 2012 17:45
|
|
|
Może powinieneś zmienić w ExportSettings --> SWF na jakiś wyższy player? Już nie pamiętam z jakich korzystał SM3. Ale to zapewne ta kwestia. A może także składnia skryptu? Wielkie i małe litery? |
_________________ Niestety używam nieoficjalnych wersji Swish, które można zassać z forums.swishzone.com - jest na szczycie listy w BugsForum.
|
|
|
|
|
tobiasz256
Początkujący
Wiek: 31 Dołączył: 28 Mar 2012 Posty: 5 Skąd: Przysucha
|
Wysłany: Pią 30 Mar, 2012 15:13
|
|
|
No właśnie problem polega na skrypcie w 3 wywala błędy a w 4 jest okej |
|
|
|
|
espe1
Profesjonalista
Pomógł: 16 razy Dołączył: 02 Lis 2011 Posty: 175 Skąd: łódzkie
|
Wysłany: Pią 30 Mar, 2012 19:29
|
|
|
Problem polega na tym, że nie da się nic napisać na tym forum bo wywala błędy.
Do sceny 1 należy dodać skrypt z załącznika.
Utworzyć 1 cegiełkę, nazwać rect przesunąć za scenę i dodać skrypt, który jest powyżej
[ Dodano: Pią 30 Mar, 2012 21:15 ]
u mnie śmiga w SM3 (załącznik) |
|
|
|
|
tobiasz256
Początkujący
Wiek: 31 Dołączył: 28 Mar 2012 Posty: 5 Skąd: Przysucha
|
Wysłany: Sob 31 Mar, 2012 09:31
|
|
|
Z tym skryptem teraz działa:) wielkie dzięki. |
|
|
|
|
|