Brauche Hilfe bei der Herstellung von Zahnrädern

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Hansy

Betreff: Brauche Hilfe bei der Herstellung von Zahnrädern

BeitragMo, Dez 05, 2005 20:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

ich bin neu hier und auch ein absoluter Noob in Sachen Programmieren in BB.
Ich brauche eure Hilfe ( ,denn ihr seid Deutschland! ) Razz

Neee also ich möchte zwei Zahnräder erstellen. Das eine Zahnrad soll 24 Zähne haben und das andere 8 Zahnräder. Man soll es per Startknopf starten und pausieren können. Und es sollte wenn man auf Start drückt dort folgendes stehen:


Wenn die Last außen hängt, muss die Kraft innen angreifen, um das Gleichgewicht zu halten.

Hebelgesetz = L * 24 = F * 8
3 * L = F

Übersetzungsverhältnis 3:1
Man braucht die dreifache Kraft
-----------
Man Braucht aber jedoch nur 1/3 der Seillänge. Das kleine Rad dreht sich drei mal so schnell, wie das Große.

Ich hoffe ihr könnt mir helfen ... Neutral

MFG
Hansy 8)

x-pressive

BeitragDi, Dez 06, 2005 7:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du verrätst, was du machen willst, bzw. wozu du das brauchst, kann man dir besser helfen. Wenn es z.B. für ein Spiel und nicht für eine wissenschaftliche Physik-Simulation ist, gibt es keinen Grund, das so kompliziert zu machen -es sei denn, du willst dich selbst quälen Wink

Wichtig in einem Spiel ist nur, was man sieht, nicht, wie es funktioniert.
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL

sunny

BeitragDi, Dez 06, 2005 17:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Solange der Lehrer (ich hoffe der Lehrer geht in anderen Fällen aber auch) nicht sehen will wie du es programmiert hast, sondern was du programmiert hast könntest du dir die weniger schwierige Möglichkeit aussuchen und es einfach "designen". (wie es x-pressiv gesagt hat)

Z.b.
1.
Erstellst du die 2 Zahnräder per Bilder
2.
Erstellst die buttons
3.
Du proggst die zugehörige Kollisonsabfrage
und auch die folgende If-Bedingung für den Mausklick
und lässt dann z.b. in einer Funktion beide Zahnräder sich per
Befehl Rotateimage und einer Forschleife drehen.
4.
Außerdem muss nach dieser Funktion noch stehen, dass
die Sätze die du oben beschrieben hast gezeigt werden

Ich hoffe du hast es einigermaßen verstanden aber auch für einen noob (bin ja auch noch einer Wink ) der einige tutorials durchgemacht hat sollte es nicht allzu schwierig sein.

Wenn du es nicht kapierst kann ich es noch einmal genauer mit BB-Code beschreiben.

Schwieriger ist es wenndu es nicht "designen" darfst, sondern die Formel anwenden muss, da bin ich leider mit meinem latein am ende Rolling Eyes
 

Hansy

BeitragDi, Dez 06, 2005 20:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Very Happy Danke euch beiden erstmal ...

@x-pressive

Ja also es soll nicht für ein Spiel sein, sondern für den Physik-Unterricht. (Wissenschaftliche Physik-Simulation) Es muss nur so aussehen als ob. Der Code kann schlecht Strukturiert sein... Nur muss das Programm laufen Laughing

Rolling Eyes Naja könntet ihr mir etwas bei der Programmierung vllt helfen ?

Wink Thx und mit mfg
Hansy

sunny

BeitragDi, Dez 06, 2005 21:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann sollte es eigentlich leicht sein Very Happy


Ich werde einmal mein Beispiel was ich unten abgegeben habe näher erklären. Das ist was ich unter Hilfe verstehe so solltest nämlich nicht erwarten, dass wir dir einen lauffähigen Code bereitstellen werden.
Solltest du aber mit ein bisschen Logik schon selbst gebacken kriegen.

Erst mal must du die Voreinstellungen treffen wie Graphics und das Laden der Bilder. ( Vergiss niocht das "globaliesieren" der Variabeln falls du eine Funktion oder ein Unterprogramm benutzt)
Auch den Befehl
BlitzBasic: [AUSKLAPPEN]
MidHandle

solltest du nicht vergessen

Dann zeichnest du immer wieder (also in einer Schleife die beiden Zahnräder und natürlich die Buttons Start und Pause.
Mit anderen Worten erstellst du eine Repeat-Schleife
das würde dann ungefähr so aussehen:

BlitzBasic: [AUSKLAPPEN]
Repeat
Cls
DrawImage zahnrad1, zahnradkoordinatenx_1,zahnradkoordinateny_1
DrawImage zahnrad2, zahnradkoordinatenx_2,zahnradkoordinateny_2
DrawImage button1 , buttonx_1, buttony_1
DrawImage button2 , buttonx_2, buttony_2
Delay 5
Flip
Forever


Du solltest aber kürzere Variabeln usw. verwenden.
In der Schleife dürfen aber auch nicht die Kollisionabfragen fehlen.
Da ich denke, dass du der Maus noch kein Bild zugewiesen hast benutze ich die Methode aus der Steinzeit.
Das heißt du prüfst ob sich die Maus zwischen den genannten x und y koordinaten befindet.
Wenn dann z.B. der erste Button 100 * 50 Pixel groß wäre müsstest du abfragen ob sich die Maus zwischen den Koordinaten buttonx - 50, buttonx + 50 und zwischen buttony-25 und buttony+25 befindet.
Dazu "solltest" du den Mauskoordinaten esrt mal eine Variable zuweisen
d.h.

BlitzBasic: [AUSKLAPPEN]

mx = MouseX()
my = MouseY()
; die befehle müssen auch vor der hauptschleife noch globalisiert werden

Auch muss noch der mausklick mit mousedown(1)
geprüft werden um darauf zum Unterprogramm "Drehung" zu gehen.

Jetzt ergänze ich einfach mal den ganzen Code:
was neu ist habe ich eingestrichelt und die Variabeln wurden gekürzt!

;Voreinstellungen wie SetBuffer, Global mx,my usw.

Repeat
cls
;----------------------------------------------------------------------------
mx = mousex()
my = mousey()
;----------------------------------------------------------------------------
drawimage zr1, zrkx_1,zrky_1
drawimage zr2, zrkx_2,zrky_2
drawimage b1 , bx_1, by_1
drawimage b2 , bx_2, by_2
;------------------------------------------------------------------------------
;Jetzt kommt die Abfrage aber nur für den ersten Button
If mx>bx_1-50 and mx<bx_1+50and my>by_1-25 and my<by_1+25 then
If mousedown(1) then gosub Drehung
;------------------------------------------------------------------------------
delay 5
flip
forever

Das ist zwar nicht der beste Weg aber er ist mir am schnellsten eingefallen

Weiter gehts mit der Drehung der Zahnräder
Du erstellst einfach eine Sprungmarke nach dem Forever
also schreibst
BlitzBasic: [AUSKLAPPEN]
.Drehung

Auch die Drehung ist dank dem For und dem Rotateimagebefehl sehr leicht, also geraten wir hier einfach in eine Forschleife die danach sofort zurückspringt (Mist jetzt schreibe ich dir ja doch nen Code Twisted Evil )
Auch vor den Variabeln x und y muss am Anfang der Befehl
BlitzBasic: [AUSKLAPPEN]
Global

stehen

BlitzBasic: [AUSKLAPPEN]
.Drehung
For x = 0 To 359
; x ist die anzahl an grad worum das bild gedreht wird
If KeyDown(1) Then Return
; durch das drücken von esc springt man auch manuell wieder zurück
RotateImage zr1,x
; das langsame Zahnrad \"zr1\" wird gedreht und jetzt
DrawImage zr1,zrx_1,zry_2
y = x * 3
RotateImage zr2, y
DrawImage zr2,zrx_2,zry_2
; das kleinere Zahnrad dreht sich dank der Variable y 3 mal so schnell
; jetzt kommen nur noch die beiden befehle flip und damit wir genug
; sehen delay
Delay 20
Flip
;und auch der abschluss der schleife
Next
; wie gesagt sollte man auch return verwenden
Return


So habe leider keine Zeit mehr für die Pausefunktion, bitte verbessert mich bei fehlern
und ich hoffe du hast es verstanden Very Happy

Wenn ihr meint der Bode ist ****** dann geb ich euch recht denn ich bin auch nur ein noob Very Happy

Ich hoffe die restlichen paar Befehjle kannst du dir selbst erdenken Wink

sunny

BeitragDi, Dez 06, 2005 22:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh was ich leider noch vergessen ahbe ist, dass du zum schreiben des Hebelgestzes am besten den Befehl BlitzBasic: [AUSKLAPPEN]
Text

nimmst.
 

Hansy

BeitragMi, Dez 07, 2005 0:46
Antworten mit Zitat
Benutzer-Profile anzeigen
@sunny

Danke vielmals! Wink

Der Text = Shocked

Danke für deine Mühe Mr. Green

Du hast mir sehr weitergeholfen Smile

mfg
hansy

sunny

BeitragMi, Dez 07, 2005 14:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Soll das heißen du hast es einigermaßen kapiert oder nicht?
 

Hansy

BeitragMi, Dez 07, 2005 20:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja das soll heißen das ich aus deinem Text viel benutzen bzw. daraus gelertn habe ! Wink

Und nochmals danke ! 8)

mfg
hansy

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group