SWiSH Forum
Forum użytkowników programów SWiSH

SWiSH Max - Gra klocki

tobiasz256 - Sro 28 Mar, 2012 15:24
Temat postu: 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 - 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 - Sro 28 Mar, 2012 15:43

Przepraszam najmocniej całkiem zapomniałem już załączam.
espe1 - 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 - Sro 28 Mar, 2012 20:13

Craig kiedyś już to napisał i udostępnił: http://www.swish-designs.co.uk/blog/?p=2141
espe1 - 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 - 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 - 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?
tobiasz256 - 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 - 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 - Sob 31 Mar, 2012 09:31

Z tym skryptem teraz działa:) wielkie dzięki.

Powered by phpBB modified by Przemo © 2003 phpBB Group