Steuerung im Weltall

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

gigi

Betreff: Steuerung im Weltall

BeitragDi, Mai 29, 2007 9:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie ist sowas halbwegs Realistisch umzusetzen?
Meine jetzige Steuerung ist für den *****.
Code:Code: [AUSKLAPPEN]
If EntityDistance(cam,r1)<10 And KeyDown(28) Then
PositionEntity cam,EntityX(r1),EntityY(r1)+20,EntityZ(r1)
PositionEntity r1,15,0,-130
EntityParent(cam,r1)
player=r1
EndIf
If player=r1 Then
PositionEntity cam,EntityX(r1),EntityY(r1)+20,EntityZ(r1)
EndIf
If KeyDown(30) And player=r1 Then
TurnEntity player,0,1,1
EndIf
If KeyDown(32) And player=r1 Then
TurnEntity player,0,-1,1
EndIf
If KeyDown(31) And player=r1 Then
MoveEntity player,0,0,3
EndIf
If KeyDown(17) And player=r1 Then
MoveEntity player,0,0,3
EndIf

Die Kamera macht was sie will und das Raumschiff sowieso...Aber warum?
(r1 ist das Raumschiff)
mal ist die Kamera neben dem Raumschiff, mal darin u.s.w...

Danke im vorraus!!!
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185
 

codie

BeitragDi, Mai 29, 2007 10:24
Antworten mit Zitat
Benutzer-Profile anzeigen
mx#=0
my#=0



;----------------------


While Not KeyHit(1)



mx=mx-MouseXSpeed()/200.0
my=my+MouseYSpeed()/200.0
MoveMouse 1024/2,768/2
mx=mx*.99
my=my*.99

TurnEntity raumschiff,my,mx,0

so würds ichs machen
dann noch parent und ne kleine drehung für das raumschiff wenn man nach oben unten rechts und links fliegt

hoffe ich konnte helfen


mfg
Wer bist zum Hals in der Scheiße steckt sollte den Kopf nicht hängen lassen.

biggicekey

Betreff: Re: Steuerung im Weltall

BeitragDi, Mai 29, 2007 10:26
Antworten mit Zitat
Benutzer-Profile anzeigen
gigi hat Folgendes geschrieben:

Die Kamera macht was sie will und das Raumschiff sowieso...Aber warum?


weil du erstmal programmieren lernen solltest.
das kann doch nicht dein ernst sein ich versteh garnicht was du dir dabei denkst.

ein ansatz für eine raumschiffsteuerung ist jawohl nicht die welt:

edit: oh hab gerade gesehen es war jemand schneller.

dabei wäre noch zu das ich eine variable für den schub nach vorn machen würde.
diese lässt sich dann per tastendruck erhöhen/senken.
und entsprechend der variable wird das schiff nach vorne bewegt.

und die kamera reicht wenn du sie beim erstellen an das raumschiff heftest per parent und dann etwas nach hinten verschiebst.
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller
Nothing more to register - you've cleaned us out![/size]
 

gigi

Betreff: das is besser

BeitragDi, Mai 29, 2007 10:28
Antworten mit Zitat
Benutzer-Profile anzeigen
das is besser, aber die Kamera tut weiterhin was sie will...
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185
 

Beatenvoy

BeitragDi, Mai 29, 2007 11:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber bestimmt erst ab einen bestimmten Winkel!

soll das eine Bewegung im Freien Raum werden?

Wenn ja, dann musst du mit Sin und Cos arbeiten, aber keine ahnung ob Blitz3D einen eigenen Befehl hat, der das möglich macht.

Ich als GLBasic geschädigter muss immer SIN und COS dafür anwenden.

biggicekey

BeitragDi, Mai 29, 2007 12:13
Antworten mit Zitat
Benutzer-Profile anzeigen
camera=createcamera(raumschiff)
moveentity camera,0,5,-15

fertig. schon hängt die kamera hinter deinen raumschiff und macht nicht was sie will. die werte musst du natürlich anpassen.
ist natürlich auch keine camera die smooth auf das raumschiff pointet aber für deine ansprüche und das was du so zeigst ist es mehr als genug.
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller
Nothing more to register - you've cleaned us out![/size]
 

gigi

Betreff: Halt ma die Klappe du biggic

BeitragDi, Mai 29, 2007 12:38
Antworten mit Zitat
Benutzer-Profile anzeigen
@biggicekey: Halt doch mal deine Klappe anstatt mich hier so zu beleidigen.
Der Lösungsvorschlag kam ja extrem spät, nach den ganzen Beleidigungen. Evil or Very Mad Und falls du es noch nicht weißt, ich schibe die Kamera weg, sie steht dann ja auch richtig bloß verschiebt sie sich danach einfach
irgendwohin.Und ja, ich habe schonma eine(schlechte) Autophysik mit schnellerwerden und ausrollen gemacht.

@Beatenvoy and all others:Ja, im freien Raum wobei ich dennoch überlege die Kamera auf einer Ebene zu lassen. Das einzige Problem jetzt ist das mit der Kamera die macht was sie will...Geschwindigkeit steigt und sinkt jetzt übrigens. Cool

Edit: BeiCode: [AUSKLAPPEN]
EntityParent(r1,cam)
kam "Entity cannot be parented by itsself"
soll das heißen r1(Raumschiff1) und die cam werden als dasselbe Entity angesehen?
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185

biggicekey

BeitragDi, Mai 29, 2007 13:36
Antworten mit Zitat
Benutzer-Profile anzeigen
du versuchst das raumschiff an die camera zu hängen.
scheinbar hägt die kamera aber bereits am raumschiff.
deshalb wäre es dann "parented by itself".

wie gesagt einmal die kamera an das raumschiff hängen und ausrichten reicht. danach einfach nichtmehr die kamera extra bewegen.

das die kamera sich dann noch verschiebt ist nicht möglich.

ich frage mich wie du die kamera bei deiner autophysik positioniert hast.
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller
Nothing more to register - you've cleaned us out![/size]
 

gigi

Betreff: da klappts

BeitragDi, Mai 29, 2007 14:16
Antworten mit Zitat
Benutzer-Profile anzeigen
da klappts, kannst es ja ausprobieren.
Der gesamte(noch winzige)Code:Code: [AUSKLAPPEN]
Graphics3D 800,600,32,1
SetBuffer BackBuffer()
AppTitle ("Handel des Imperiums")
AmbientLight 155,155,165
hangar=LoadMesh("Haupthangar.3ds")
automat=LoadMesh("automat1.3ds")
s1=LoadMesh("S1.3ds")
r1=LoadMesh("R1.3ds")
s2=LoadMesh("S2.3ds")
s3=LoadMesh("S3.3ds")
p1=CreateSphere(15)
MoveEntity p1,0,0,-1500
ScaleEntity p1,100,100,100
EntityType p1,2
EntityAlpha s3,0.5
MoveEntity s3,-45,0,50
MoveEntity s2,30,-3,-150
RotateEntity s2,0,45,0
EntityType s2,2
MoveEntity r1,15,0,-75
ScaleEntity r1,3.5,3.5,3.5
RotateEntity r1,0,180,0
EntityType r1,1
MoveEntity s1,-30,-3,-150
RotateEntity s1,0,-45,0
EntityType s1,1
mx#=0
my#=0
MoveEntity automat,-13.5,-10,10
ScaleEntity automat,3,4,3
EntityType automat,2
MoveEntity hangar,0,-10,0
cam=CreateCamera()
EntityType hangar,2
EntityType cam,1
player=cam
licht=CreateLight(1)
MoveEntity licht,0,0,0
EntityRadius cam,3
LightRange licht,50
HideEntity r1
;--------------Hauptschleife--------------------------------------------------------------------------------------------
While Not KeyHit(1)


If EntityDistance(cam,r1)<10 And KeyDown(28) Then
Delay 500
EntityParent(cam,r1)
PositionEntity cam,EntityX(r1),EntityY(r1)+30,EntityZ(r1)
player=r1

EndIf

If player=r1 Then
EntityParent(cam,r1)
mx=mx-MouseXSpeed()/200.0
my=my+MouseYSpeed()/200.0
MoveMouse 1024/2,768/2
mx=mx*.99
my=my*.99
TurnEntity r1,my,mx,0
EndIf
If player=r1 Then
PositionEntity cam,EntityX(r1),EntityY(r1)+20,EntityZ(r1)
EndIf
If KeyDown(30) And player=r1 Then
TurnEntity player,0,1,0
EndIf
If KeyDown(32) And player=r1 Then
TurnEntity player,0,-1,0
EndIf
If KeyDown(31) And player=r1 Then
MoveEntity player,0,0,3
EndIf
If KeyDown(17) And player=r1 Then
MoveEntity player,0,0,3
EndIf
If EntityDistance(cam,hangar)<35 And player=cam Then
MoveEntity cam,0,-0.4,0
EndIf
If EntityDistance(cam,hangar)>100 Then
PositionEntity cam,0,0,0
EndIf
If KeyDown(30) And player=cam Then
TurnEntity player,0,1,0
EndIf
If KeyDown(32) And player=cam Then
TurnEntity player,0,-1,0
EndIf
If KeyDown(31) And player=cam Then
MoveEntity player,0,0,-0.4
EndIf
If KeyDown(17) And player=cam Then
MoveEntity player,0,0,0.4
EndIf
Collisions 1,2,2,2
UpdateWorld
RenderWorld
If EntityDistance(cam,automat)<10 Then
Text 100,100,"Kaufen?"
EndIf
If EntityDistance(cam,automat)<10 And KeyDown(28) Then
ShowEntity r1
Delay 200
EndIf
If EntityDistance(cam,hangar)>80 And player=cam Then
Text 100,100,"Sofort umkehren!Gefahr!!!"
EndIf
Flip
Wend
End

Ich finde das Problem nicht...
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185

biggicekey

BeitragDi, Mai 29, 2007 15:57
Antworten mit Zitat
Benutzer-Profile anzeigen
zunächst mal lässt sich dein code ohne die modelle schlecht testen. habe mal spheres erstellt als ersatz aber ich denke mal man soll im haupthanger drinn sein.

der code lässt sich ausführen und man kann sich bewegen.
ist dein problem nur das man das raumschiff nicht vor der kamera sieht bzw sich das nicht korrekt mitbewegt?

ist man mit dem raumschiff im hanger drinn?
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller
Nothing more to register - you've cleaned us out![/size]
 

gigi

Betreff: Der Hangar hat 3 Räume

BeitragMi, Mai 30, 2007 13:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Hangar hat 5 Räume(eigentlich 6), einmal das Treppenhaus das man auch auf dem Screen sieht, dann die vier Landeplätze und die große Verkaufs-Halle.
Man selbst befindet sich auf dem Gang vom Treppehaus zum Hauptraum,Blickrichtung Hauptraum. Das Raumschiff muss man kaufen, dann wird es sichtbar und kollidiert auch.

Das Problem hast du sehr treffend beschieben, bloß das sich die Kamera direkt in das Ding verpflanzt...und dann rechts,und links,und oben,und unten,und hier,und da...
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185

biggicekey

BeitragMi, Mai 30, 2007 14:58
Antworten mit Zitat
Benutzer-Profile anzeigen
zufälligerweise habe ich vor 2 wochen schon jemandem gezeigt wie man eine simple raumschiffsteuerung umsetzen könnte.
hier die abgespeckte version.
da siehst du auf jedenfall wie einfach das mit der kamera funktioniert


steuerung: pfeiltasten+a+y
Code: [AUSKLAPPEN]

Graphics3D 800,600,32,2
SetBuffer BackBuffer()


player=CreateCube();;;;;;;;;;;;;spieler/raumschiff erstellen


camera=CreateCamera(player);;;;;;;;camera erstellen und an spieler hängen
MoveEntity camera,0,3,-10;;;;;;;;;;;camera hinter den spieler positionieren




planet=CreateSphere() ;;;;;standartplaneten erstellen
HideEntity planet;;;;;;;;;;standartplaneten verstecken

For x=0 To 100             ;;;;;;;;;;;;;;in einer schleife von 0 bis 100

p=CopyEntity(planet)       ;;;;;;;;;;;;;; jeden schleifendurchgang den standartplaneten kopieren (damit man sieht das man sich bewegt)

PositionEntity p,Rnd(-500,500),Rnd(-500,500),Rnd(-500,500);;;;;;;;;;;; und zufällig positionieren

Next;;;;;;;;;;;;danach




While Not KeyHit(1);;;;;;;;; HAUPTSCHLEIFE                 ;solange nicht escape gedrückt wird




If KeyDown(30) And zspeed#<1   
zspeed#=zspeed#+.01
EndIf
If KeyDown(44) And zspeed#>0
zspeed#=zspeed#-.01
EndIf


If KeyDown(203)
TurnEntity player,0,1*zspeed#,0
EndIf
If KeyDown(205)
TurnEntity player,0,-1*zspeed#,0
EndIf
If KeyDown(200)
TurnEntity player,1*zspeed#,0,0
EndIf
If KeyDown(208)
TurnEntity player,-1*zspeed#,0,0
EndIf



MoveEntity player,0,0,zspeed# ;;; spieler entsprechend der zgeschwindigkeit bewegen





UpdateWorld
RenderWorld

Text 10,10,"Geschwindigkeit: "+zspeed#*100

Flip

Wend
End
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller
Nothing more to register - you've cleaned us out![/size]

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group