schiessen

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

Lunatix

Betreff: schiessen

BeitragMo, März 14, 2005 13:20
Antworten mit Zitat
Benutzer-Profile anzeigen
hi

please erklärt mir mal wie man schiesst, z.B. laserstrahlen bei nem raumschiff, oder auch n maschinengewehr...

am besten mit Beispiel

THX im vorraus, please post me back!
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Hubsi

BeitragMo, März 14, 2005 13:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Für Schüsse sind Types geradezu gemacht:
BlitzBasic: [AUSKLAPPEN]
Graphics 640,480
SetBuffer BackBuffer()

Type schuss ; Das Type anlegen
Field x,y
End Type

Repeat ; Die Hauptschleife
Cls
; Die Alienblaster 6001 auf den Bildschirm pinseln
Color 0,255,0
Rect MouseX(),MouseY(),10,35,1

; Hier der erste wichtige Teil
If MouseHit(1) ; Wenn linke Maustaste betätigt
s.schuss=New schuss ; Eine neue Instanz anlegen
; s ist hier eine Variable die auf die Instanz verweist
; Man kann auch jede andere Variable verwenden, zu
; beachten ist nur das diese Variable nur noch für
; das Type verwendet werden kann!
s\x=MouseX() ; Wir weisen dem Eintrag die Position der Maus zu
; Die Variable bezeichnet das Type, nach dem Backslash
; folgt das Feld
s\y=MouseY() ; Bei Y verfahren wir ebenso
EndIf

Color 255,255,0
For s.schuss=Each schuss ; Unter Verwendung der Variable
; gehen wir alle vorhandenen Einträge des Types durch
Oval s\x,s\y,10,10,1 ; Für jeden Eintrag pinsln wir
; einen Schuss auf den Bildschirm
s\y=s\y-3 ; Die Position verändern
If s\y<0 ; wenn der Schuss den Bildschirm verlässt...
Delete s.schuss ; ...löschen wir selbigen
; Hier ist auch eine beliebte Fehlerquelle:
; Nach dem löschen kann auf diesen Eintrag nicht mehr zugegriffen werden!
; Daher ist diese Prüfung möglichst immer am Ende der Schleife
; durchzuführen
EndIf
Next

Flip
Until KeyHit(1)
End

Das ist erstmal das wichtigste und am häufigsten benötigte beim Umgang mit Types. Wenn Du erstmal in der Materie durchblickst schau Dir noch die Befehle First, Last, Before, After und Insert an, sowie nach Bedarf Object und Handle.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Jan_

Ehemaliger Admin

BeitragMo, März 14, 2005 13:42
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Hubsi, er will es in 3D Smile

ok,

Types, sind für das schießen, wie gemacht Smile

DAs einzigste Problem ist, den schuss darzustellen und die Daten zu speichern.
Du brauchst eine Type Strucktur, und 2 Functionen

Jetzt ist aber die Frage, was für einen Laser, einen Q3 Rail gun Laser oder Einen Freespace/Descent Laser?

Railgun Structur:
BlitzBasic: [AUSKLAPPEN]

Type Laser
Field Start_X,Start_Y,Start_Z
Field End_X,End_Y,End_Z
Field Begin_millisecs
Field Entity_Handle
Field Damage#
End Type


descent Structur:
BlitzBasic: [AUSKLAPPEN]

Type Laser
Field pos_X,pos_Y,pos_Z
Field Entity_Handle
Field Speed
Field Damage#
End Type
between angels and insects

Hubsi

BeitragMo, März 14, 2005 13:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Bevor er die Type-Sache nicht verstanden hat hilft ihm das schönste 3D nichts Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Lunatix

BeitragMo, März 14, 2005 14:23
Antworten mit Zitat
Benutzer-Profile anzeigen
ich weiß schon wasn type macht(glaubich ziumindest)

probier das jetz gleich mal
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Lunatix

BeitragMo, März 14, 2005 15:11
Antworten mit Zitat
Benutzer-Profile anzeigen
jan hat geschrieben:
Type Laser
Field pos_X,pos_Y,pos_Z
Field Entity_Handle
Field Speed
Field Damage#
End Type
was ist denn das entity handle??
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...
 

Kifferopa

Gast

BeitragMo, März 14, 2005 17:31
Antworten mit Zitat
Jedes File dass du in BB einlädst, bekommt ein Handle zugewiesen, sei es nun ein Bild, ein Sound oder sonstwas.
Das ist ne Art "Zeiger" für den Compiler damit er weiss wo das Bild im Speicher zu finden ist.
  • Zuletzt bearbeitet von Kifferopa am Sa, März 26, 2005 15:07, insgesamt einmal bearbeitet

BladeRunner

Moderator

BeitragMo, März 14, 2005 17:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Womit Du seine Frage in keinster Weise beantwortet hast.

Jedes File dass du in BB einlädst, bekommt ein Handle zugewiesen, sei es nun ein Bild, ein Sound oder sonstwas.
Das ist ne Art "Zeiger" für den Compiler damit er weiss wo das Bild im Speicher zu finden ist.

Wenn Du also
BlitzBasic: [AUSKLAPPEN]
blubb=LoadImage(\"blubb.bmp\")

machst, ist in Blubb das Handle von deinem Bild "Blubb.bmp" drin, also der Zeiger auf das Bild.

Du kannst Handles auch kopieren.

BlitzBasic: [AUSKLAPPEN]
blubb2 = blubb


Jetzt könntest Du das Bild auch mit
BlitzBasic: [AUSKLAPPEN]
DrawImage blubb2,0,0

zeichnen.

EDIT: Flüchtigkeitsfehler bei DrawImage verbessert. Embarassed
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
  • Zuletzt bearbeitet von BladeRunner am Mo, März 14, 2005 18:03, insgesamt einmal bearbeitet

Spikespine

BeitragMo, März 14, 2005 17:59
Antworten mit Zitat
Benutzer-Profile anzeigen
BladeRunner hat Folgendes geschrieben:
Jetzt könntest Du das Bild auch mit
BlitzBasic: [AUSKLAPPEN]
DrawImage blubb2.0.0

zeichnen.


Geht das so mit den Punkten?
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax

blitzmaster

BeitragMo, März 14, 2005 18:01
Antworten mit Zitat
Benutzer-Profile anzeigen
nein natürlich nicht Rolling Eyes
***************
Blitzmaster

BladeRunner

Moderator

BeitragMo, März 14, 2005 18:02
Antworten mit Zitat
Benutzer-Profile anzeigen
uppsi.. nein, vertippt.
Man möge mir verzeihen, ich werde umgehend eine Korrektur vornehmen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

krux

BeitragMo, März 14, 2005 22:46
Antworten mit Zitat
Benutzer-Profile anzeigen
hier mal nen tolla schosscode zum kopieren und starten Laughing

BlitzBasic: [AUSKLAPPEN]


Graphics 1024,768,16,1
SetBuffer BackBuffer ()


Global Kanonex =512
Global Kanoney =384
Global aim

Repeat
Cls

aim = ATan2(MouseY()-KanoneY,MouseX()-KanoneX)
If aim < 0 Then aim = aim + 360

If MouseHit (1)
For i = 0 To 20
Bam.Schuss = New Schuss
Bam\PosX = KanoneX + Cos(aim) * 20
Bam\PosY = KanoneY + Sin(aim) * 20
bam\Speed = Rnd(4,6)
bam\richtung= Rnd(aim-10,aim+10)
Bam\Lifetime = Rnd (100,120)
Next
EndIf


For Bam = Each Schuss
Bam\PosX = Bam\PosX + Cos(bam\richtung)*bam\speed
Bam\PosY = Bam\Posy + Sin(bam\richtung)*bam\speed
Bam\Lifetime = bam\Lifetime - 1
Oval Bam\PosX - 3 , Bam\PosY - 3 , 6 , 6
If bam\Lifetime < 0 Then Delete bam
Next



Marker(MouseX(),MouseY())
GeschtzZeichnen(KanoneX,KanoneY)

Delay 5
Flip
Until KeyHit(1)

End


Type Schuss
Field PosX#
Field PosY#
Field Speed#
Field richtung
Field Lifetime
End Type


Function Marker(x,y)
Plot x,y
Line x-10,y,x-5,y
Line x+10,y,x+5,y
Line x,y-10,x,y-5
Line x,y+10,x,y+5
End Function

Function GeschtzZeichnen(X,Y)

Rect x-7,y-7,14,14,0

ax = X + ( Cos(aim- 8) * 20 )
ay = Y + ( Sin(aim- 8) * 20 )
bx = X + ( Cos(aim-135) * 3 )
by = Y + ( Sin(aim-135) * 3 )
cx = X + ( Cos(aim-225) * 3 )
cy = Y + ( Sin(aim-225) * 3 )
dx = X + ( Cos(aim-352) * 20 )
dy = Y + ( Sin(aim-352) * 20 )

Line ax,ay,bx,by
Line bx,by,cx,cy
Line cx,cy,dx,dy
Line dx,dy,ax,ay
End Function
 

Kifferopa

Gast

BeitragMo, März 14, 2005 22:50
Antworten mit Zitat
Cool, gibt´s des auch als 3D-Ausgabe? Irgendwie sehe ich nämlich nirgends ein Thema über Schießerei im 3D Shocked

Lunatix

BeitragDi, März 15, 2005 10:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey!

joa die 2d codes(oder eben progs) funzen ja ganz gut,
kann ich da nicht irgentwie 3ds drausmachen?? oder es schreibt einfach
einer von euch Hardcore_Proggern einfach nen kurzen prog reinschreiben????? Bittebittebittebitte! Wär echt supercool!!
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Jan_

Ehemaliger Admin

BeitragDi, März 15, 2005 10:37
Antworten mit Zitat
Benutzer-Profile anzeigen
hm,

was soll man mit euch nur machen, ihr seit ein faß ohne Boden.

BlitzBasic: [AUSKLAPPEN]

;dekleration
Type laser
Field Speed#,entity_handle%
End Type

;D3D 7 initialisieren
Graphics3D 800,600,32,2
SetBuffer BackBuffer()
cam=CreateCamera()

;Player init.
player= CreateCube()

Repeat
If KeyHit(58) Or KeyHit(57) Or KeyHit(28) Or KeyHit(27) Then
create_schuss(Player)
EndIf
update_schusse()
RenderWorld
Flip
Until KeyHit(1)

Function create_schuss(Player%)
Local schuss.laser
If Not(player) Then RuntimeError \"Bloody Beginner!\"
schuss = New laser
schuss\Speed#=0.01
schuss\entity_handle%=CreateCube()
PositionEntity schuss\entity_handle,EntityX(player),EntityY(player),EntityZ(player)
RotateEntity schuss\entity_handle,EntityPitch(player),EntityYaw(player),EntityRoll(player)
End Function

Function update_schusse()
Local l.laser
For l = Each laser
MoveEntity l\entity_handle,0,0, l\speed#
Next

End Function


so, habe den jetzt ohne testen geprogt, wenn fehler drinne sind, bitte berichten.
between angels and insects

Lunatix

BeitragDi, März 15, 2005 10:41
Antworten mit Zitat
Benutzer-Profile anzeigen
cool

ich progge gleich mal ein wenn ich my vortrag vertig geschrieben hab
vertig mit v ach du scheisse....f natürlich sorry
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Lunatix

BeitragDi, März 15, 2005 15:16
Antworten mit Zitat
Benutzer-Profile anzeigen
so hab jetz folgendes::::



Graphics3D 800,600,16,1
SetBuffer BackBuffer()


Global planet=loadplanet()



Global entity=loadentity("biomechfighter.3ds")
Global camera=CreateCamera(entity)
Global background=LoadImage("weltall.bmp")


Type Laser
Field pos_X%,pos_Y%,pos_Z%
Field Speed%
Field image%
End Type





l=CreateLight()
AmbientLight 255,200,0



Function loadentity( file$ )
pivot=CreatePivot()
entity=LoadMesh( file$,pivot )
;texent=LoadTexture("defender.bmp")
;EntityTexture entity,texent
ScaleMesh entity ,2,2,2
PositionEntity entity,0,0,20
RotateEntity entity, 0,180,0
EntityType pivot, 1
EntityRadius pivot,1
;HideEntity pivot
Return pivot

End Function




Function createlaser()
a.laser=New laser
a\image=LoadSprite("laser.bmp")
a\speed=2
a\pos_y=EntityY
a\pos_z=EntityZ
a\pos_x=EntityX

End Function


Function schuss()
For a.laser= Each laser
If MouseHit(1) Then createlaser()
MoveEntity a\image,0,0,a\speed
Next
End Function


Function loadplanet()
z=200
x=200
y=200
atmosphaere=LoadMesh("atmosphäre.3ds")
PositionEntity atmosphaere,x,y,z
atex=LoadTexture("sky.bmp")
EntityTexture atmosphaere,atex,0,1
planet=LoadMesh("waterworld1t1.3ds")
ScaleEntity planet,5000,5000,5000
PositionEntity planet,0,0,400000
EntityType planet,2
plantex=LoadTexture("waterworld3.bmp")
EntityTexture planet,plantex,0,1
End Function





While Not KeyHit(1)


TurnEntity entity,0,-MouseXSpeed(),0
TurnEntity entity,+MouseYSpeed(),0,0
MoveMouse 50,30
fog_range=500000


CameraRange camera,1,fog_range




If KeyDown(17) Then MoveEntity entity, 0, 0, 0.2
If KeyDown(200) Then MoveEntity entity, 0, 0, 0.2


If KeyDown(31) Then MoveEntity entity, 0, 0, -0.1
If KeyDown(208) Then MoveEntity entity, 0, 0, -0.1

If KeyDown(57) Then MoveEntity entity, 0, 0, 10





If MouseDown(1)
createlaser()
schuss()
UpdateWorld
EndIf

CameraViewport camera,0,0,GraphicsWidth(),GraphicsHeight()
PositionEntity camera,0,10,0
CameraClsMode camera,0,1
TileBlock background,0,0


RenderWorld
UpdateWorld
Flip
Wend
End



nur das der laser an meinem anfangspunkt entsteht, aber wenn ich dnn wegflieg, entsteht er am gleichen punkt(anfang) was ist da falsch?

THX im vorraus please post back
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...
 

Kifferopa

Gast

BeitragDi, März 15, 2005 15:18
Antworten mit Zitat
Klick mal in Zukunft bevor du einen Code postest auf den Button mit der Aufschrift "BB-Code"

So:
BlitzBasic: [AUSKLAPPEN]
blubb

Lunatix

BeitragDi, März 15, 2005 15:19
Antworten mit Zitat
Benutzer-Profile anzeigen
also so
:BlitzBasic: [AUSKLAPPEN]
blubb
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Lunatix

BeitragDi, März 15, 2005 15:20
Antworten mit Zitat
Benutzer-Profile anzeigen
aaaah cool... okai
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group