KeyDown - Pfeiltasten - Mehrere Tasten gleichzeitig

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

alliswrong

Betreff: KeyDown - Pfeiltasten - Mehrere Tasten gleichzeitig

BeitragMi, Jul 08, 2009 12:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, habe ein Problem mit Keydown. Hier der Code:

Code: [AUSKLAPPEN]

If KeyDown(KEY_UP) Then
      p1\z = p1\z + 1
   Else If KeyDown(KEY_DOWN) Then
      p1\z = p1\z - 1
   Else If KeyDown(KEY_LEFT) Then
      p1\x = p1\x - 1
   Else If KeyDown(KEY_RIGHT) Then
      p1\x = p1\x + 1
   End If


Das ganze soll als bewegung dienen. Wenn ich nun aber zwei Tasten gleichzeitig drücke (beispielsweise hoch und rechts) soll die "figur" sich seitlich-vorwärts bewegen. stattdessen bewegt sie sich nur vorwärts. wie kann ich bezwecken, dass die figur sich verhält wie gewollt? gibs da nen trick bei b3d? selbst wenn ich ne abfrage einbaue wie:

if keydown(KEY_UP) and keydown(KEY_RIGHT) then
p1\x = p1\x + 1
p1\z = p1\z + 1
end if

klappts nicht. scheinbar kann b3d nur einzelne die tasten abfragen. das wäre sehr schade Sad
vielen dank euch allen

Tankbuster

BeitragMi, Jul 08, 2009 12:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Einfach so:


Zitat:
If KeyDown(KEY_UP) Then p1\z = p1\z + 1
If KeyDown(KEY_DOWN) Then p1\z = p1\z - 1
If KeyDown(KEY_LEFT) Then p1\x = p1\x - 1
If KeyDown(KEY_RIGHT) Then p1\x = p1\x + 1


Aber überlegen, warum das so ist, darfst du selber Wink
Twitter
Download Jewel Snake!
Windows|Android
  • Zuletzt bearbeitet von Tankbuster am Mi, Jul 08, 2009 13:22, insgesamt einmal bearbeitet
 

alliswrong

BeitragMi, Jul 08, 2009 12:58
Antworten mit Zitat
Benutzer-Profile anzeigen
ah ja hast recht!
der bricht die bedingung ja nach jeder abfrage ab. man habe scheuklappen auf den augen. so ein blöder fehler. danke dir
 

alliswrong

BeitragMi, Jul 08, 2009 13:40
Antworten mit Zitat
Benutzer-Profile anzeigen
das klappt soweit super. doch nun möchte ich nen schritt weiter gehen. undzwar kann ich nun den würfel mithilfe von den pfeiltastet bewegen und die kamera bleibt immer hinter dem würfel. das ist soweit korrekt. wenn ich nun aber die maus z.b. an den linken bildschirmrand bewege, möchte ich, dass sich der wüfel in diese richtung dreht und die kamera dabei immer hinter dem würfel bleibt. die würfeldrehung habe ich bereits:

Code: [AUSKLAPPEN]

If MouseX() < 100 Then
      p1\yaw = p1\yaw + 1
   Else If MouseX() > 700 Then
      p1\yaw = p1\yaw - 1
   End If   
RotateEntity p1\model, p1\pitch, p1\yaw , p1\roll
RotateEntity p1\camera, p1\pitch, p1\yaw , p1\roll


habe die camera auch mit pointentity auf den würfel gesetzt. beim erreichen des bildschirmrands dreht sich der würfel auch wie erhofft, allerdings folgt die kamera nicht. wenn ich die kamera "mit" drehe per rotateentity, so dreht die sich aber nicht um den würfel, sondern um sich selbst. obwohl sie gepointed ist. was mache ich falsch?

Tankbuster

BeitragMi, Jul 08, 2009 13:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Ehm, da könnte dir EntityParent weiterhelfen. Du kannst die Kamera an den Würfel hängen, und wenn du diesen dann rotierst, dreht die Kamera sich um den Würfel.
Twitter
Download Jewel Snake!
Windows|Android
 

alliswrong

BeitragMi, Jul 08, 2009 14:05
Antworten mit Zitat
Benutzer-Profile anzeigen
hey das klappt ja super! jetzt muss ich nur noch rausfinden wie ich das mit den pfeiltasten mache, dass diese dann auch "richtig" bewegen. wenn ich mich jetzt nämlich mit der maus nach links drehe und dann auf "vorwärts" drücke, geht der in ne andere richtung. da muss ich irgendwie die camerarichtung mit einbauen.

Tankbuster

BeitragMi, Jul 08, 2009 14:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein. Dafür gibt es den Befehl MoveEntity Wink

Ich denke, du bist grad aus 2D zu 3D gekommen. Bei 3D musst du nicht zwingend immer mit PositionEntity dein Objekt positionieren, wie in 2D, sondern kannst es auf einfach nach Vorne, hinten, ect bewegen lassen. Die Position bekommst du dann wieder Mit EntityX, ect, falls du sie mal brauchst ^^
Twitter
Download Jewel Snake!
Windows|Android
 

alliswrong

BeitragMi, Jul 08, 2009 14:36
Antworten mit Zitat
Benutzer-Profile anzeigen
das ist ja einfach. hätt ich das gewusst wäre ich schon früher zu 3d gewechselt. das ist ja sowas von geil.
hast mir wirklich sehr weiter geholfen!
eine frage hätte ich aber noch. gibt es vielleicht irgendwo kostenlose 3d objekte die ich benutzen könnte? erstmal nur zu testzwecken. bräuchte z.B. ein raumschiff mit und ohne animationen etc.

Nicdel

BeitragMi, Jul 08, 2009 14:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Auf www.turbosquid.com gibt es viele Modelle.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

ozzi789

BeitragMi, Jul 08, 2009 14:38
Antworten mit Zitat
Benutzer-Profile anzeigen
-C:\Programme\Blitz3D\Media\geometricks_models
-https://www.blitzforum.de/scene/links/3d-grafik/
-google



mfg Smile
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

alliswrong

BeitragMi, Jul 08, 2009 16:34
Antworten mit Zitat
Benutzer-Profile anzeigen
super danke sehr! echt brauchbares zeug dabei.
allerdings bin ich wieder nen schritt weiter Wink
ich bin grad am überlegen wie ich die maps am besten erstelle. soweit ich das mitbekommen habe gibt es mehrere möglichkeiten:

1) höhen terrains
2) bsp maps
3) alles in b3d selbst zeichnen (sehr aufwändig)

ich möchte eigentlich erstmal versuchen ein "begehbares haus" zu basteln. höhen terrains ungeeignet, nur als "boden". bsp maps wären ne gute sache, doch wie sieht es da mit bewegten "türen" in nem haus aus?
alles alleine in b3d zu rendern ist sehr aufwändig also fällt schonmal weg. wie macht ihr sowas?

[edit]
da habe ich direkt noch ne frage: wie kriegt man so schöne explosionen und "schüsse" hin wie auf diesem screenshot: https://www.blitzforum.de/gallery/1198/
werden die in nem 3d programm gerendert oder in b3d direkt erstellt? will wissen wie =)

ozzi789

BeitragMi, Jul 08, 2009 17:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Zu den Effekten
Schau dir mal Particle Candy
Wenns nicht kosten soll must so was selber bauen (Mit Types und Surfaces)
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

alliswrong

BeitragMi, Jul 08, 2009 21:07
Antworten mit Zitat
Benutzer-Profile anzeigen
so nun habe ich nen richtig blödes problem.
habe mir nen raumschiff als 3d modell runtergeladen. allerdings ist dies viel zu groß.
ich würde gerne das raumschiff per scaleentity verkleinern. habe einen planeten erstellt mit der größe 2. will das raumschiff also viel kleiner haben. doch woher weiß ich wie groß das raumschiff wirklich ist? wenn ich nun im 3d programm nen mini raumschiff mache, und dies verkleiner ist es zu klein. mach ich ein zu großes und verkleiner es, ist es ok.

muss also der 3d designer immer wissen wie groß er die models machen muss? ist doch nen bissl doof oder?

[edit]
oder noch besser gesagt: wenn nen modeler das raumschiff zur kamera hin baut muss ich es drehen. wenn er es andersrum baut dann nicht. woher soll man denn sowas rausbekommen wierum er das nun gebaut hat ohne sich vorher abzusprechen?
 

TerrorMachine

BeitragDo, Jul 09, 2009 15:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst den Drehwinkel der Kamera und des Objekts mit EntityPitch = x-Winkel, EntityYaw = y-Winkel und EntityRoll = z-Winkel. Dann nur rechnen und drehen.
 

alliswrong

BeitragDo, Jul 09, 2009 15:24
Antworten mit Zitat
Benutzer-Profile anzeigen
das ist mir schon bewusst, dennoch bleibt das problem der größenzuordnung. wenn ein modeler einen planeten der größe 100 baut und ein raumschiff mit der größe 200 wie kann ich das im code erkennen? immerhin muss ich das schiff verkleinern oder den planeten vergrößern damit das ganze auch entsprechend ausseht.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group