|
|
#1 (permalink) |
|
Üyelik Tarihi: 23.12.2000
Yer: Ankara
Yaş: 27
Mesaj: 198
|
İki seçimi birden denetlemek (AS 2.0)
Selamlar Yaptığım animasyonda sahnede bir metin bulunuyor ve bu metin üzerinde noktalama işaretlerini yerleştiricem. Bu işaretleri yerleştiriken her seçime göre değil, tüm seçimleri yaptıktan sonra ve eğer seçimlerim doğruysa ekranda doğru olduğuna dair bir ileti gelecek; yanlışsa baştan dene diye bir ileti gelecek. (Basit olarak böyle) Tüm seçimler yapıldıktan sonra, mesela iki adet seçim yapılacak, bu iki adet seçimin yapılıp yapılmadığını nasıl denetleyebilirim? Teşekkürler
__________________
Kara bulutlarla örtülse de ruhunuz, bir yerinde bir mavilik vardır,elbet bulursunuz ;) |
|
|
|
|
|
#2 (permalink) |
|
Üyelik Tarihi: 23.12.2000
Yer: Ankara
Yaş: 27
Mesaj: 198
|
Re: İki seçimi birden denetlemek (AS 2.0)
Arkadaşlar aşağıda soruyla ilgili kodlamalarımı yazıyorum. Kullanıcı cümledeki boşluklardan seçim yaparak tırnak işareti yerleştirecek ve seçimlerini bitirince sahnede doğru ya da yanlış olduğuna dair tetikleme gerçekleşecek. Yanlışı nerede yapıyorum? Yardım ederseniz sevinirim. Ya da en azından mantık olarak da yardım edebilirsiniz.
Teşekkürler /*Önce diziler tanımladım. Buraya sadece örnek olan bir cümle yazıyorum. amaç bu cümlede tırnak işareti koyulacak yerin kullanıcı tarafından belirlenmesi. */ items_array[0] = "Annem | hadi | sofraya | gel | dedi |"; answers_array[0] = new Array(-1, 2, 7); //Kullanıcının seçimini denetlediğim fonksiyon. function selectItem(No:Number) { this.disable_btn._visible = true; //Sahneye gelen metnin üzerine yaptığım buton. var answer:Boolean=false; var temp:Number = 0; if (firstItem == 0) { firstItem = No; } else { secondItem = No; if (firstItem>secondItem) { temp = firstItem; firstItem = secondItem; secondItem = temp; } //firstItem--; //secondItem--; for(i=0; i <= this.answers_array[lastItem].length-1;i++){ if(this.answers_array[lastItem][i] == No){ if ((firstItem == answers_array[lastItem][1]) and (secondItem == answers_array[lastItem][2])) { answer=true; eval("this.word"+No+"_mc.text._txt").text="\""; eval("this.word"+No+"_mc.text._txt")._x= -2; this.numberofAnswers--; } } } if(numberofAnswers==0){ _root.game_addPoint(100); char_mc.gotoAndPlay(2); this.numberAns_txt.text="Tebrikler"; intervalId = setInterval(this, "startTurn", 6000); for(i=0;i<=this.selectedItems_array.length-1;i++){ eval("this.word"+i+"_mc.text_btn").enabled=false; } } } else if ((firstItem == answers_array[lastItem][1]) or (firstItem == answers_array[lastItem][2])) { eval("this.word"+(secondItem+1)+"_mc").text=""; } else { eval("this.word"+(firstItem+1)+"_mc").text=""; char_mc.gotoAndPlay(56); } firstItem = 0; secondItem = 0; } } }
__________________
Kara bulutlarla örtülse de ruhunuz, bir yerinde bir mavilik vardır,elbet bulursunuz ;) |
|
|
|
|
|
#3 (permalink) |
|
Üyelik Tarihi: 02.01.2005
Yer: İstanbul
Mesaj: 249
|
Re: İki seçimi birden denetlemek (AS 2.0)
CS3 ile direkt olarak parantez hatalarıyla karşılaştım. Düzeltmek istedim ama yanlış yerde parantez kapatırım diye -yani kod farklı bi yöne gider diye- yapmadım.
Kodları şöyle yazsanız belki tab kısımları da görünür. Kod:
Kodlar... |
|
|
|
|
|
#4 (permalink) |
|
Üyelik Tarihi: 23.12.2000
Yer: Ankara
Yaş: 27
Mesaj: 198
|
Re: İki seçimi birden denetlemek (AS 2.0)
Kod:
/*Önce diziler tanımladım. Buraya sadece örnek olan bir cümle yazıyorum. amaç bu cümlede tırnak işareti koyulacak yerin kullanıcı tarafından belirlenmesi. */
items_array[0] = "Annem | hadi | sofraya | gel | dedi |";
answers_array[0] = new Array(-1, 2, 7);
//Kullanıcının seçimini denetlediğim fonksiyon.
function selectItem(No:Number) {
this.disable_btn._visible = true; //Sahneye gelen metnin üzerine yaptığım buton.
var answer:Boolean=false;
var temp:Number = 0;
if (firstItem == 0) {
firstItem = No;
}
else {
secondItem = No;
if (firstItem>secondItem) {
temp = firstItem;
firstItem = secondItem;
secondItem = temp;
}
//firstItem--;
//secondItem--;
for(i=0; i <= this.answers_array[lastItem].length-1;i++){
if(this.answers_array[lastItem][i] == No){
if ((firstItem == answers_array[lastItem][1]) and (secondItem == answers_array[lastItem][2])) {
answer=true;
eval("this.word"+No+"_mc.text._txt").text="\"";
eval("this.word"+No+"_mc.text._txt")._x= -2;
this.numberofAnswers--;
}
}
}
if(numberofAnswers==0){
_root.game_addPoint(100);
char_mc.gotoAndPlay(2);
this.numberAns_txt.text="Tebrikler";
intervalId = setInterval(this, "startTurn", 6000);
for(i=0;i<=this.selectedItems_array.length-1;i++){
eval("this.word"+i+"_mc.text_btn").enabled=false;
}
}
}
else if ((firstItem == answers_array[lastItem][1]) or (firstItem == answers_array[lastItem][2])) {
eval("this.word"+(secondItem+1)+"_mc").text="";
}
else {
eval("this.word"+(firstItem+1)+"_mc").text="";
char_mc.gotoAndPlay(56);
}
firstItem = 0;
secondItem = 0;
}
}
}[/quote]
__________________
Kara bulutlarla örtülse de ruhunuz, bir yerinde bir mavilik vardır,elbet bulursunuz ;) |
|
|
|
|
|
#5 (permalink) |
|
Üyelik Tarihi: 23.12.2000
Yer: Ankara
Yaş: 27
Mesaj: 198
|
Re: İki seçimi birden denetlemek (AS 2.0)
Neyse bunu da çözdüm...Bakalım daha ne sorunlarım olacak sizinle paylaşacağım?
__________________
Kara bulutlarla örtülse de ruhunuz, bir yerinde bir mavilik vardır,elbet bulursunuz ;) |
|
|
|
|
|
#6 (permalink) |
|
Üyelik Tarihi: 02.01.2005
Yer: İstanbul
Mesaj: 249
|
Re: İki seçimi birden denetlemek (AS 2.0)
Ben olsaydım bu kıyaslama işlemini rakamlar aracılığı ile yapardım. Şöyle;
Kod:
var cumle:String = "Annem | hadi | sofraya | gel | dedi |";
var anahtar:Number = 10010;//Cevap anahtarı = 1 | 0 | 0 | 1 | 0
var cevap:Number = 10010;
function kiyasla(cvp:Number){
if(cvp==anahtar){
trace("Tebrikler!");
}else{
trace("Yanlış cevap!");
}
}
kiyasla(cevap);
Aslında bu mantık, noktalama işaretleri yapılan bir oyun için de geçerli olurdu. Her bir noktalama işaretine bir rakam verilir, toplam sayı anahtar ile kıyaslanırdı. Rakamlar 0-9 arası olduğundan yetmeme gibi bir durum olursa 16'lık veya daha yüksek değerde bi taban sistemi tercih edilirdi. Bunlar da olmasa bile Number yerine Array kullanılırdı. |
|
|
|
| Sponsorlu Bağlantılar | |
|
Zoque.Forum
Reklam
|
|
Zoque'a hoşgeldiniz!