| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Dec 2009
Beiträge: 3
|
Hey Leute, ich habe in CS4 aber mit AS2 !!! ein Tetrisspiel programmiert. AN und für sich funktioniert alles, bis auf die STelle, an der der neue Stein, nach einer gewissen Zeit kommen soll. Ich habe mich an diesem QUelltext orientiert, nur mittler weile eingie Variablen umgenannt und Button hinzugefügt: Tetris Game | Flash Tutorials Das ist das Problem: Code: if (framecount % geschwindigkeit == 0)
{
if (!paused)
{
if (unitmap[xx[0]][yy[0] + 1] == undefined && unitmap[xx[1]][yy[1] + 1] == undefined && unitmap[xx[2]][yy[2] + 1] == undefined && unitmap[xx[3]][yy[3] + 1] == undefined)
{
current4piece._y = yy[3] * blockgroesse;
current3piece._y = yy[2] * blockgroesse;
current2piece._y = yy[1] * blockgroesse;
currentpiece._y = yy[0] * blockgroesse;
for (var i = 0; i < 4; i++)
{
yy[i]++;
}
}
else
{
timer = function()
{
id = setInterval(zaehlen, 1000);
var sek = 0;
function zaehlen()
{
if (sek <2)
{
sek++;
}
else
{
trace("Hello");
unitmap[xx[0]][yy[0]] = currentpiece;
unitmap[xx[1]][yy[1]] = current2piece;
unitmap[xx[2]][yy[2]] = current3piece;
unitmap[xx[3]][yy[3]] = current4piece;
neuesteil();
framecount = 7;
sek = 0;
}
}
}
} Ich lass die zaehlen fkt. alle 1000ms durchlaufen dann kommt if 2 mal und dann im else soll die fkt newpiece starten, tut sie nicht ![]() Am Freitag müssen wir es vorstellen, schaut auf die Uhr, ich muss jetzt pennen. Wäre super, wenn ihr schnell antworten könntet, falls ihr etwas wisst! DANKE! |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Dec 2009
Beiträge: 3
| Timer vor Funktionsstart
Hey, entschuldigung für den crosspost, war mir nicht ganz sicher in welche RUbrik es gehöhrt. Also der Rest des Quellcodes steht ja unter dem oben geposteten Link. Mein Problem, dass die neuesteil-FUnktion, nicht aufgerufen wird und ich mein Teil länger als 2 Sekunden drehen kann muss irgendwo in dem Auschnitt liegen. Ich poste später nochmal weiterführendes. Danke für die Hilfe... |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Dec 2009
Beiträge: 3
| Timer vor Funktionsstart
Also sry nochmal, ich habe das heute nacht um 6 noch gepostet total übermüdet und demotiviert. Es ist mir nur sehr wichtig, da bald Abgabe ist. Ziel war es in Flash ein Tetrisspiel zu programmieren. Zur Grundlage habe ich den oben genannten Link verwendet. Das Spiel an sich funktioniert auch, nur will ich an der Stelle, an der der Stein nicht weiter nach unten gerückt werden kann, dass man ihn noch eine gewisse ZEit (ca. 2 Sekunden) drehen kann. Dem entsprechend auch der Quellcode, den ich im folgenden kurz erläutern will: Code: if (framecount % geschwindigkeit == 0)
{
if (!paused)
{
if (unitmap[xx[0]][yy[0] + 1] == undefined && unitmap[xx[1]][yy[1] + 1] == undefined && unitmap[xx[2]][yy[2] + 1] == undefined && unitmap[xx[3]][yy[3] + 1] == undefined)
{
current4piece._y = yy[3] * blockgroesse;
current3piece._y = yy[2] * blockgroesse;
current2piece._y = yy[1] * blockgroesse;
currentpiece._y = yy[0] * blockgroesse;
for (var i = 0; i < 4; i++)
{
yy[i]++;
}
} . Dies natürlich für alle 4 Steine, deswegen bis i=4Wenn darunter ein definiertes Feld ist, kommt die Else-Anweisung, in der das Problem liegt: Code: else
{
timer = function()
{
id = setInterval(zaehlen, 1000);
var sek = 0;
function zaehlen()
{
if (sek <2)
{
sek++;
}
else
{
trace("Hello");
unitmap[xx[0]][yy[0]] = currentpiece;
unitmap[xx[1]][yy[1]] = current2piece;
unitmap[xx[2]][yy[2]] = current3piece;
unitmap[xx[3]][yy[3]] = current4piece;
neuesteil();
framecount = 7;
sek = 0;
}
}
}
} Mein Ziel ist es aber, dass bevor dies geschit und die Funktion "neuesteil" aufgerufen wird, ein timer abläuft mit dessen Hilfe man den Tetrisbaustein noch eine gewisse Zeit darauf drehen kann (z.B.: in eine Lücke schieben, oder nach links/rechts bewegen). Dies habe ich versucht, durch die Funktion timer zu erreichen, die auch funktioniert (also ich kann den Stein noch eine gewisse ZEit drehen) Die Variable framecount ist dafür von keiner Bedeutung. Der trace ist nur für mich zu einsichtnahme beim testen. In der Funktion "neuesteil" wird über eine random-funktion ein neues Teil bestimmt, die Variablen current(1-4)piece entsprechend deklariert und dann das teil stets über die oben genannte if-Schleife ein nach unten gerückt. Ich habe auch schon versucht, die funktion extern abzulegen und afzurufen, dann kommt zwar ein neues Teil, aber diese werden exponentiell mehr (erst läuft ein timer, dann 2, dann 4 usw.) Und das Spiel ist sofort zu Ende, da die neuen Tetrisbausteine zur unbeweglichen Spielfläche konvertiert werden. Ich hoffe ich konnte jetzt genau genug erklären, wo das Problem liegt und ich hoffe ihr wisst, was ich flasch gemacht habe. |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| as2, funktion, sekunden, starten, timer |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| timer | tomotzi | ActionScript 1 | 2 | 31-03-2004 14:22 |
| Timer | Churchill27 | Flash MX | 5 | 02-11-2003 09:28 |
| Timer | Flasher Hermann | Flash 4 und Flash 5 | 6 | 11-10-2002 08:10 |
| Timer | fworm | Flash MX | 1 | 20-09-2002 12:19 |
| timer | reisch | ActionScript 1 | 5 | 11-07-2002 16:04 |