In einem Raster von Mittelpunkt zu Mittelpunkt der Kästchen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Hendy

Betreff: In einem Raster von Mittelpunkt zu Mittelpunkt der Kästchen

BeitragSo, Okt 19, 2008 0:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab folgendes Problem ich möchte in einem von mir erstelltem Raster ein Rechteck von Mittelpunkt zu Mittelpunkt bewegen und nicht das es zu den mittelpunkten springt sondern dass dieses Rechteck sich langsam und naja nicht Pixel für Pixel aber doch iwi schon sich bewegt:
Code: [AUSKLAPPEN]


Graphics 1024,768
SetBuffer BackBuffer()   
frametimer = CreateTimer (10)

Global kx1 = 1
Global ky1 = 1


Repeat
Cls                     
WaitTimer (frametimer)   

Raster()
SP()



Flip                  
Until KeyHit (1)
End



Function raster()
   Local Posx   
   Local Posy
   
   For Kx = 1 To 20
      For Ky = 1 To 15   
         Posx = (Kx*50)+(12-25)
         Posy = (Ky*50)+(7-25)
   
         Plot Posx, Posy
         Text (Posx-25), (Posy-25), Kx+","+Ky
      Next
   Next


   For Rx = 0 To 1024 Step 50
      For Ry = 0 To 768 Step 50
   
         Line (Rx+12),0,(Rx+12),768
         Line 0,(Ry+7),1024,(Ry+7)   
      Next
   Next
End Function



Function SP()
   

   Posx = (Kx1*50)+(12-25)
   Posy = (Ky1*50)+(7-25)   

   Rect (Posx-5), (Posy-5), 10, 10
   
   Kx1 = Kx1 + 1
   
   If Kx1 > 20 Then
      Kx1 = 1   
      Ky1 = Ky1 + 1
   EndIf

   If Ky1 > 15 Then Ky1 = 1
      
   

End Function   

Meoqan

BeitragSo, Okt 19, 2008 3:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Benutze einfach ein paar mathe befehle dann klappt das.
setze ein ziel und berechne winkel und entferung. bewege dein rechteck solange in richtung des winkels bis die entfernung ereicht ist. Dann wieder ein neues ziel setzten.

und so schauts fertig aus:

Code: [AUSKLAPPEN]

Graphics 1024,768,0,2
SetBuffer BackBuffer()   
frametimer = CreateTimer (10)

Const speed = 10

Global old_kx1 = 0
Global old_ky1 = 0
Global kx1 = 1
Global ky1 = 1

Global aktX#,aktY#
Global Winkel#,entfernung#,zahler


Repeat
   Cls                     
   WaitTimer (frametimer)   
   
   raster()
   If SP_update() Then SP()
   
   Rect (aktX#-5), (aktY#-5), 10, 10
   
   Flip                 
Until KeyHit (1)
End



Function raster()
   Local Posx   
   Local Posy
   
   For Kx = 1 To 20
      For Ky = 1 To 15   
         Posx = (Kx*50)+(12-25)
         Posy = (Ky*50)+(7-25)
         
         Plot Posx, Posy
         Text (Posx-25), (Posy-25), Kx+","+Ky
      Next
   Next
   
   
   For Rx = 0 To 1024 Step 50
      For Ry = 0 To 768 Step 50
         
         Line (Rx+12),0,(Rx+12),768
         Line 0,(Ry+7),1024,(Ry+7)   
      Next
   Next
End Function

Function SP_update()
   aktX# = aktX# + Cos(Winkel#) * speed
   aktY# = aktY# + Sin(Winkel#) * speed
   If entfernung# > zahler Then zahler=zahler+speed : tmp=False Else zahler=0 : tmp=True
   Return tmp
End Function

Function SP()
   
   old_kx1=kx1
   old_ky1=ky1
   
   aktX# = (kx1*50)+(12-25)
   aktY# = (ky1*50)+(7-25)   
   
   kx1 = kx1 + 1
   
   If kx1 > 20 Then
      kx1 = 1   
      ky1 = ky1 + 1
   EndIf
   
   If ky1 > 15 Then ky1 = 1
   entfernung#=Sqr( (Float((kx1*50)+(12-25)) - Float((old_kx1*50)+(12-25))) ^ 2 + (Float((ky1*50)+(7-25))  - Float((old_ky1*50)+(7-25))) ^ 2)
   Winkel#= - (ATan2(Float((kx1*50)+(12-25)) - Float((old_kx1*50)+(12-25)), Float((ky1*50)+(7-25))  - Float((old_ky1*50)+(7-25))) -90) Mod 360
   
End Function   
meine codes sind die essenz des bössen. nicht du veränderst meine codes sondern meine codes verändern dich!
 

Hendy

BeitragSo, Okt 19, 2008 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
okay danke für die antwort...Smile Smile
Smile Very Happy Very HappyD

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group