Steuerprogramm für Suchraketen

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Kabelbinder

Sieger des WM-Contest 2006

Betreff: Steuerprogramm für Suchraketen

BeitragFr, Sep 24, 2004 15:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ihr verwendung für eine Suchrakete in einem Spiel habt:

Code: [AUSKLAPPEN]
Graphics 800,600,16,1
SeedRnd MilliSecs()
TFormFilter 0

Global bild = CreateImage(16,8)
SetBuffer ImageBuffer(bild)
Color 128,128,128
Rect 0,0,16,8
MaskImage bild,255,0,0

Dim rocket(360)
For i = 0 To 360
rocket(i)=CopyImage(bild)
MidHandle rocket(i)
RotateImage rocket(i),i
MaskImage rocket(i),255,0,0
Next

Global num,x,y,dreh,xcor,ycor,rot#,kurve#,speed#,aim#

Const part = 3000 ;Maximale Partikel
Const parts# = 1 ;Partikel Geschwindigkeit
Const parte = 3 ;Wieviele Partikel ausgeben

xcor = 400 ; ist klar
ycor = 300 ; ist klar
speed = 3 ; ist klar
rot = 180 ; Winkel
aim = 0 ; Hilfsvariable
kurve = 4 ; Handling

Dim partikel#(part,8)

Function emit(x,y,dreh)
partikel(num,3)=1
partikel(num,1)=x
partikel(num,2)=y
partikel(num,4)=Cos(dreh+Rand(-8,8))*parts
partikel(num,5)=Sin(dreh+Rand(-8,8))*parts
partikel(num,6)=255
partikel(num,7)=255
partikel(num,8)=0
If num = part Then
num = 0
Else
num = num + 1
EndIf
End Function

Function edit()
For i = 0 To part
If partikel(i,3)=1 Then

partikel(i,1)=partikel(i,1)+partikel(i,4)
partikel(i,2)=partikel(i,2)+partikel(i,5)

If partikel(i,7)>0 Then
partikel(i,7)=partikel(i,7)-9
Else
partikel(i,6)=partikel(i,6)-9
EndIf
If partikel(i,6)<0 Then partikel(i,6)=0
If partikel(i,7)<0 Then partikel(i,7)=0

Color partikel(i,6),partikel(i,7),partikel(i,8)
Plot partikel(i,1),partikel(i,2)

EndIf
Next
End Function

SetBuffer BackBuffer()
Repeat
aim = (ATan2(MouseY()-ycor,MouseX()-xcor)+360) Mod 360

Select rot <=180
Case 1
If aim >rot And aim< rot + 180 Then
rot = rot + 1 * kurve
Else
rot = rot - 1 * kurve
EndIf
Case 0
If aim <rot And aim> rot - 180 Then
rot = rot - 1 * kurve
Else
rot = rot + 1 * kurve
EndIf
End Select

If rot < 1 Then rot = 360
If rot >360 Then rot = 1

xcor = xcor + Cos(rot)*speed
ycor = ycor + Sin(rot)*speed

For i = 1 To parte
emit(xcor,ycor,rot+180)
Next
edit()

DrawImage rocket(rot),xcor,ycor
Color 255,255,255
Rect MouseX()-5,MouseY(),10,1
Rect MouseX(),MouseY()-5,1,10
Text 0,0,aim,0,0

Flip
Cls
Until KeyHit(1)
End


(Dabei ist übrigens auch ein Partikel Emitter! Very Happy )
<Wing Avenger Download> ◊◊◊ <Macrophage Download>
  • Zuletzt bearbeitet von Kabelbinder am Fr, Dez 24, 2004 16:33, insgesamt einmal bearbeitet

Kabelbinder

Sieger des WM-Contest 2006

BeitragFr, Okt 15, 2004 18:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay Very Happy

Code: [AUSKLAPPEN]
Graphics 800,600,16,1
SeedRnd MilliSecs()
TFormFilter 0

Global bild = CreateImage(16,8)
SetBuffer ImageBuffer(bild)
Color 128,128,128
Rect 0,0,16,8
MaskImage bild,255,0,0

Dim rocket(360)
For i = 0 To 360
rocket(i)=CopyImage(bild)
MidHandle rocket(i)
RotateImage rocket(i),i
MaskImage rocket(i),255,0,0
Next

Global num,x,y,dreh,xcor#,ycor#,rot#,kurve#,speed#,aim#,fly

Const part = 3000 ;Maximale Partikel
Const parts# = 1 ;Partikel Geschwindigkeit
Const parte = 3 ;Wieviele Partikel ausgeben

xcor = 400 ; ist klar
ycor = 300 ; ist klar
speed = 3 ; ist klar
rot = 180 ; Winkel
aim = 0 ; Hilfsvariable
kurve = 3 ; Handling
fly = 1

Dim partikel#(part,8)

Function emit(x,y,dreh)
partikel(num,3)=1
partikel(num,1)=x
partikel(num,2)=y
partikel(num,4)=Cos(dreh+Rand(-8,8))*parts
partikel(num,5)=Sin(dreh+Rand(-8,8))*parts
partikel(num,6)=255
partikel(num,7)=255
partikel(num,8)=0
If num = part Then
num = 0
Else
num = num + 1
EndIf
End Function

Function edit()
For i = 0 To part
If partikel(i,3)=1 Then

partikel(i,1)=partikel(i,1)+partikel(i,4)
partikel(i,2)=partikel(i,2)+partikel(i,5)

If partikel(i,7)>0 Then
partikel(i,7)=partikel(i,7)-10
Else
partikel(i,6)=partikel(i,6)-10
EndIf
If partikel(i,6)<0 Then partikel(i,6)=0
If partikel(i,7)<0 Then partikel(i,7)=0

Color partikel(i,6),partikel(i,7),partikel(i,8)
Plot partikel(i,1),partikel(i,2)

EndIf
Next
End Function

Function explo()

If fly = 1 Then
If Abs(MouseX()-xcor)<2 And Abs(MouseY()-ycor)<2 Then
fly = 0
For i = 1 To 360
emit(xcor,ycor,i)
Next
EndIf
EndIf

End Function

SetBuffer BackBuffer()
Repeat
aim = (ATan2(MouseY()-ycor,MouseX()-xcor)+360) Mod 360

Select rot <=180
Case 1
If aim >rot And aim< rot + 180 Then
rot = rot + 1 * kurve
Else
rot = rot - 1 * kurve
EndIf
Case 0
If aim <rot And aim> rot - 180 Then
rot = rot - 1 * kurve
Else
rot = rot + 1 * kurve
EndIf
End Select

If rot < 1 Then rot = 360
If rot >360 Then rot = 1

xcor = xcor + Cos(rot)*speed
ycor = ycor + Sin(rot)*speed

If fly = 1 Then
For i = 1 To parte
emit(xcor,ycor,rot+180)
Next
EndIf
edit()
explo()

If fly = 1 Then DrawImage rocket(rot),xcor,ycor
Color 255,255,255
Rect MouseX()-5,MouseY(),10,1
Rect MouseX(),MouseY()-5,1,10
Text 0,0,aim,0,0

Flip
Cls
Until KeyHit(1)
End
<Wing Avenger Download> ◊◊◊ <Macrophage Download>
  • Zuletzt bearbeitet von Kabelbinder am Fr, Dez 24, 2004 16:34, insgesamt einmal bearbeitet

Firstdeathmaker

BeitragFr, Okt 29, 2004 16:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Man kann der Rakete ganz einfach entgehen wenn man wartet bis sie fast den Cursor erreicht und dann einfach ca 1 cm seitwärts ausweicht. Die Rakete dreht dann immer nur Kreise um den Cursor.
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Kabelbinder

Sieger des WM-Contest 2006

BeitragFr, Okt 29, 2004 21:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Natürlich, das ist halt das Handling der Rakete, ich glaube, das ist in Allen Spielen so. Wenn du eine perfekt intelligente Suchrakete habe willst, kannst du das Handling ja auch auf einen sehr hohen Wert stellen.
<Wing Avenger Download> ◊◊◊ <Macrophage Download>

Firstdeathmaker

BeitragFr, Okt 29, 2004 23:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, dann wirkt die Rakete aber sehr unrealistisch. Aber trotzdem, schönes Programm!
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image
 

getlose

BeitragMo, Nov 15, 2004 5:29
Antworten mit Zitat
Benutzer-Profile anzeigen
handling erst in der nähe des ziels immer weiter erhöhen,
das sollte halbwegs realistisch aussehen.

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group