magnetismus

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Kryan

Betreff: magnetismus

BeitragFr, März 26, 2004 13:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics 800,600
SetBuffer BackBuffer()
SeedRnd MilliSecs()
Const radius=50
Type ball
 Field x
 Field y
 Field dx
 Field dy
 Field r
 Field g
 Field b
 Field sinus
End Type
.anfang
For i=0 To 10
 obj.ball=New ball
 obj\x=Rand(750)
 obj\y=Rand(550)
 obj\dx=Rnd(-1,1)
 obj\dy=Rnd(-1,1)
 obj\r=Rand(255)
 obj\g=Rand(255)
 obj\b=Rand(255)
 obj\sinus=Rand(360)
Next
Repeat
 If KeyHit(57) Then Goto anfang
 Cls
 For obj.ball=Each ball
  Color obj\r,obj\g,obj\b
  Oval obj\x,obj\y,radius,radius
  obj\x=(obj\x+obj\dx)*0.99
  obj\y=(obj\y+obj\dy);*Sin(obj\sinus)
  If obj\x<5 Then obj\dx=-obj\dx
  If obj\y<5 Then obj\dy=-obj\dy
  If obj\x>745 Then obj\dx=-obj\dx
  If obj\y>535 Then obj\dy=-obj\dy
;  If Rand(1,10)=10 Then ClsColor obj\r,obj\g,obj\b
 Next
 Flip
Until KeyHit(1)
End


Dies zeigt an, wie man eine Attraktion programmiert.
Damit es an die rechte Seite angezogen wird: obj\x=obj\x+obj\xspeed*0.99
Und noch was besseres:
Code: [AUSKLAPPEN]
Graphics 800,600
SetBuffer BackBuffer()
SeedRnd MilliSecs()
Const radius=50
Type ball
 Field x
 Field y
 Field dx
 Field dy
 Field r
 Field g
 Field b
 Field sinus
End Type
.anfang
For i=0 To 10
 obj.ball=New ball
 obj\x=Rand(750)
 obj\y=Rand(550)
 obj\dx=30;hier verändern und
 obj\dy=50;ausprobieren
 obj\r=Rand(255)
 obj\g=Rand(255)
 obj\b=Rand(255)
 obj\sinus=Rand(360)
Next
Repeat
 If KeyHit(57) Then Goto anfang
 Cls
 For obj.ball=Each ball
  Color obj\r,obj\g,obj\b
  Oval obj\x,obj\y,radius,radius
  obj\x=(obj\x+obj\dx)*0.9
  obj\y=(obj\y+obj\dy)*0.9
Next
 Flip
Until KeyHit(1)
End
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!
 

HOT-BIT

Gast

BeitragFr, März 26, 2004 13:26
Antworten mit Zitat
Hi !

Und was soll das hier ?

Toni

Kryan

BeitragFr, März 26, 2004 13:29
Antworten mit Zitat
Benutzer-Profile anzeigen
wie??
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!
 

HOT-BIT

Gast

BeitragFr, März 26, 2004 13:31
Antworten mit Zitat
Hallo !

Wenn schon denkst, du hast den Gordischen Knoten entwirrt, dann hau das ins Archiv !

Toni

Kryan

BeitragFr, März 26, 2004 13:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics 800,600
SetBuffer BackBuffer()
SeedRnd MilliSecs()
Const radius=50
Type ball
 Field x
 Field y
 Field dx
 Field dy
 Field r
 Field g
 Field b
 Field sinus
End Type
.anfang
For i=0 To 10
 obj.ball=New ball
 obj\x=Rand(750)
 obj\y=Rand(550)
 obj\dx=80;hier verändern und
 obj\dy=60;ausprobieren
 obj\r=Rand(255)
 obj\g=Rand(255)
 obj\b=Rand(255)
 obj\sinus=Rand(360)
Next
Repeat
 If KeyHit(57) Then Goto anfang
 Cls
 For obj.ball=Each ball
  Color obj\r,obj\g,obj\b
  Oval obj\x,obj\y,radius,radius
  obj\x=(obj\x+obj\dx)*0.9
  obj\y=(obj\y+obj\dy)*0.9
  If KeyDown(200) Then obj\dy=obj\dy-1
  If KeyDown(208) Then obj\dy=obj\dy+1
  If KeyDown(203) Then obj\dx=obj\dx-1
  If KeyDown(205) Then obj\dx=obj\dx+1
 Next
; If Rand(1,105)=1 Then
 obj.ball=New ball
 obj\x=Rand(750)
 obj\y=Rand(550)
 obj\dx=80;hier verändern und
 obj\dy=60;ausprobieren
 obj\r=Rand(255)
 obj\g=Rand(255)
 obj\b=Rand(255)
 obj\sinus=Rand(360)
; End If
 Flip
Until KeyHit(1)
End

Mit Tasten kann man den Bezugspunkt ändern
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!
 

HOT-BIT

Gast

BeitragFr, März 26, 2004 13:36
Antworten mit Zitat
Hmmm, vielleicht gibt es wieder einige, die sich aufregen, aber was sollen die Spielereien echt hier ?

Warum haust das nicht gleich in Projekte ?

Wäre ja super !

Toni

Boris0190

BeitragFr, März 26, 2004 13:46
Antworten mit Zitat
Benutzer-Profile anzeigen
oder ins codearchiv...
If windows is the sollution, I want my problems back! -
The only way to have a friend is to be one

Travis

BeitragFr, März 26, 2004 15:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Dieser Thread hat mich auf die Idee gebracht mal etwas zu programmieren, dass ich vor langer Zeit mal irgendwo gesehen habe.

Eigentlich sollten sich hier alle Magneten zum Mauszeiger ausrichten. Das tun sie aber leider nicht. Vielleicht könnte mir jemand der sich mit dem ATAN2-Befehl auskennt da weiterhelfen.

Code: [AUSKLAPPEN]

Graphics 800,600,16,2

Type Magnet
 Field x, y, winkel
End Type


; --- Magneten erstellen ---
For yy = 10 To 600 Step 25
 For xx = 2 To 800 Step 25
  m.magnet = New magnet
  m\x = xx
  m\y = yy
  m\winkel = 0
 Next
Next
; --- Magneten erstellen ---


; --- Magnetbild erstellen ---
Magnet = CreateImage(20,2)
 SetBuffer ImageBuffer(Magnet)
  Color 0,0,255: Rect 0,0,10,2,1
  Color 255,0,0: Rect 10,0,10,2,1
 SetBuffer BackBuffer()
; --- Magnetbild erstellen ---


; --- 360 Einzelbilder erstellen ---
Dim MagnetGfx(361)

For i = 0 To 360
 MagnetGfx(i) = CopyImage(Magnet)
 RotateImage MagnetGfx(i), i
 MidHandle MagnetGfx(i)
Next
; --- 360 Einzelbilder erstellen ---



Repeat
Cls

; --- Magneten anzeigen und drehen ---
For m.magnet = Each magnet
 DrawImage MagnetGfx(m\winkel), m\x, m\y
 m\winkel = (ATan2((MouseX() - m\x), (MouseY() - m\y)) + 270) Mod 360
Next
; --- Magneten anzeigen und drehen ---

Flip
Until KeyHit(1)


Mein Fehler muss wohl bei der Winkelberechnung liegen, aber ich komme nicht drauf warum's nicht geht.
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.
 

CodeMaster

BeitragFr, März 26, 2004 18:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ganz einfach:
Ersetze die Zeile Code: [AUSKLAPPEN]
m\winkel = (ATan2((MouseX() - m\x), (MouseY() - m\y)) + 270) Mod 360
mit dieser:Code: [AUSKLAPPEN]
m\winkel = (450 - ATan2((MouseX() - m\x), (MouseY() - m\y))) Mod 360
Dies ist ein Text, der an jeden Beitrag von dir angehängt werden kann. Es besteht eine Limit von 500 Buchstaben.

Zuletzt bearbeitet von CodeMaster am Mo Apr 01, Parse error: syntax error, unexpected ';' in htdocs\viewtopic.php on line 102

Travis

BeitragFr, März 26, 2004 19:02
Antworten mit Zitat
Benutzer-Profile anzeigen
*freu* Danke! Smile
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group