Würfelanimation

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Glubsch

Betreff: Würfelanimation

BeitragSo, Feb 19, 2006 12:26
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Smile
 

HW

BeitragSo, Feb 19, 2006 12:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Was? DrawBlockRect und DrawImageRect? Lass das "Rect" weg.
Edit: Oh, die Befehle gibt es ja sogar! Hab ich vorher nicht gewusst. Shocked

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

BeitragSo, Feb 19, 2006 12:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Lass die For-Schleife weg Very Happy Um eine Animation zu erhalten verwende ql:MilliSecs um einen Timer zu basteln und einen Zählvariable damit er nicht ins endlose würfelt Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

Florian

BeitragSo, Feb 19, 2006 12:43
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Feb 19, 2006 12:43
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Feb 19, 2006 12:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die schnellen Antworten. Damit hatte ich nicht gerechnet Very Happy
Ich sehe mir fehlt noch viel Wissen Sad
Ich probier das gleich mal aus, Danke.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Feb 19, 2006 21:01
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Kabelbinder

Sieger des WM-Contest 2006

BeitragSo, Feb 19, 2006 21:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Immer alles in Variablen speichern.
gezeichnet wird später.
<Wing Avenger Download> ◊◊◊ <Macrophage Download>
 

Glubsch

BeitragDi, Feb 21, 2006 15:56
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Sad
 

HW

BeitragDi, Feb 21, 2006 16:42
Antworten mit Zitat
Benutzer-Profile anzeigen
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.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group