Würfelanimation
Übersicht

GlubschBetreff: Würfelanimation |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
vor einigen Wochen, habe ich angefangen BB zu erlernen (Bücher, Tuts und mit Hilfe dieses genialen Forums). Nun wollte ich mein Wissen in die Tat umsetzen und ein Brettspiel erstellen. Jetzt hänge ich an der Würfelanimation, die mit einem Mausklick gestartet wird und das Programm soll ein zufälliges Bild des Würfels darstellen (1 bis 6). Die bmp-Datei des Würfels ist 300*50. Also ein Bild 50*50. Hier ein Teil des Codes: DrawBlockRect cube, 820,120,0,0,50,50 If mausklick And ImagesCollide (maus ,MouseX() - 10 ,MouseY() - 10 ,0 ,cube ,50 ,50,0 ) Then For I=0 To 5 DrawImageRect cube,820,120,Rnd(7)*50, 0, 50, 50 Next EndIf Was ist falsch ? Ich komme hier einfach nicht weiter! Vielen Dank schonmal im vorraus ![]() |
||
HW |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Was? DrawBlockRect und DrawImageRect? Lass das "Rect" weg.
Edit: Oh, die Befehle gibt es ja sogar! Hab ich vorher nicht gewusst. ![]() Edit²: Das Zeug wird ja nur gemalt, wenn du klickst, nicht in der Zeitspanne danach. Du müsstest beim Klicken eine Variable auf True einstellen und in der Hauptschleife prüfen, ob sie den Wert True hat. Wenn es so ist, wird das Bild gemalt. Wenn das Bild auseblendet werden soll, stellst du die Variable wieder auf False. Und was soll die For Next Schleife? Damit kriegst du nichts zufäliges, falls du das willst. Benutze für Zufallswerte ql:rnd . |
||
- Zuletzt bearbeitet von HW am So, Feb 19, 2006 12:38, insgesamt einmal bearbeitet
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Lass die For-Schleife weg ![]() ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Florian |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] DrawImageRect cube,820,120,Rnd(7)*50, 0, 50, 50
So ist die Zeile richtig Code: [AUSKLAPPEN] DrawImageRect cube,820,120,Rnd(0,5)*50, 0, 50, 50
Ich würde die Würfelanimation mit LoadAnimImage laden. |
||
HW |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Außerdem würde ich dir empfehlen, Frames statt DrawImageRect/DrawBlockRect zu benutzen. Das vermeidet unnötige IF Prüfungen für die Animation.
Edit: Ist genau das, was Florian gerade genannt hat. |
||
Glubsch |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für die schnellen Antworten. Damit hatte ich nicht gerechnet ![]() Ich sehe mir fehlt noch viel Wissen ![]() Ich probier das gleich mal aus, Danke. |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was um Himmels Willen soll Rnd(0,5)*50 bewirken? RND liefert eine Float die dann mit 50 Multipliziert wird! Also kann man gleich Rnd(0,250) machen, oder wenn man 'Zahlenstufen' haben will, auch Rand(0,5)*50 | ||
![]() |
KabelbinderSieger des WM-Contest 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Immer alles in Variablen speichern.
gezeichnet wird später. |
||
<Wing Avenger Download> ◊◊◊ <Macrophage Download> |
Glubsch |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo Hectic,
Da es nicht funktionierte ( DrawImageRect cube,820,120,Rnd(0,5)*50, 0, 50, 50 ), habe ich in der BB Hilfe nachgeschaut und das gefunden: If MilliSecs() > tmrSparks + 50 Then tmrSparks=MilliSecs() frmSparks=(frmSparks + 1) Mod 6 End If Aber ich bekomme den Würfel nicht auf einer zufälligen Zahl zum stehen ![]() |
||
HW |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dann erhöhe beim Auslösen des Timers eine Variable. Wenn sie einen bestimmten Wert erreicht hat, soll der Timer nicht mehr ausgelöst werden und der Würfel anhalten. Wenn das Würfeln beginnt, setzt du die Variable wieder auf 0. Außerdem muss beim Auslösen des Timers ein zufälliger Frame gewählt werden. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group