TurnEntity Problem
Übersicht

![]() |
juse4proBetreff: TurnEntity Problem |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
Ich meinem neustem Spiel geht es darum, dass man mit einer Kugel ins Ziel rollen muss, aber es gibt Probleme mit dem Drehen der Kugel Code: [AUSKLAPPEN] RollSpeed = 32
Code: [AUSKLAPPEN] TurnEntity Player,PlayerZSpeed*RollSpeed,0,-PlayerXSpeed*RollSpeed Das sieht auch ganz nett aus, aber nur von der Position 0,0,0 aus bei 0,0,32 dreht sich die Kugel vollkommen unerwartet, da die Drehachsen ja mit gedreht werden. Wie kann ich erreichen, das die Drehachsen nicht mit gedreht werden, oder gibt es noch eine bessere Variante? Gruß, Mortus |
||
Portfolio |LinkedIn |XING |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also du hast eine Kugel mit Eigendrehung, die sich aber in Z Richtung bewegen soll?
1. Statt Moveentity immer die absolute Position errechnen und Positionentity benutzen. 2. Einfach die Textur anstatt den Körper drehen. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
juse4pro |
![]() Antworten mit Zitat ![]() |
---|---|---|
Textur drehen, wie soll das denn funktionieren?
ich benutzte nicht positionentity aber auch nicht moveentity, sondern translateentity ![]() |
||
Portfolio |LinkedIn |XING |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
du könntest einen pivot bewegen und daran die kugel hängen und die kugel rotieren...wenn ich mich nich irre und wenn ich dein problem verstanden habe sollte das funktionieren ![]() aber erklär das nochmal ausführlicher was du willst pls |
||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
- Zuletzt bearbeitet von Goodjee am Mo, Apr 13, 2009 0:58, insgesamt 2-mal bearbeitet
![]() |
juse4pro |
![]() Antworten mit Zitat ![]() |
---|---|---|
dann den pivot drehen, oder die kugel?
und funktionier dann das mit der kollision immernoch? |
||
Portfolio |LinkedIn |XING |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mit PositionTexture![]() Code: [AUSKLAPPEN] Graphics3D(800, 600, 0, 2)
SetBuffer BackBuffer() Local timer = CreateTimer(60) Local camera = CreateCamera() Local kugel = CreateSphere() Local Tex = CreateTex() PositionEntity(kugel, 0, 0, 3) EntityTexture(kugel, Tex) Local texpos# Repeat texpos# = (texpos# + 0.01) Mod 1.0 PositionTexture(Tex, texpos#, 0) RenderWorld Flip(0) WaitTimer(timer) Until KeyHit(1) Function CreateTex() Local t = CreateTexture(64, 64) SetBuffer TextureBuffer(t) For i=0 To 50 Color(Rand(128,255), Rand(128,255), Rand(128,255)) Oval(Rand(0,64),Rand(0,64), Rand(1,8),Rand(1,8)) Next SetBuffer BackBuffer() Return t End Function |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
juse4pro |
![]() Antworten mit Zitat ![]() |
---|---|---|
nun sieht es so aus, als ob die kugel sich auf der Y Achse dreht, und das kann niemals im spiel passieren ![]() |
||
Portfolio |LinkedIn |XING |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
mortus hat Folgendes geschrieben: dann den pivot drehen, oder die kugel?
und funktionier dann das mit der kollision immernoch? Den Pivot benutzt du für die Kollision (EntityRadius) und Positionierst die Kugel immer an der Stelle des Pivot (eventuell kannst du sie als Child deklarieren), und dann kann sie sich ja nach belieben drehen, weil nur die Ausrichtung des Pivot für die Bewegungen wichtig sein wird. Du bewegst einfach den Pivot, nicht die Kugel. Dann wird der Pivot anders positioniert, und die Kugel ist natürlich auf der selben Stelle. |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
juse4pro |
![]() Antworten mit Zitat ![]() |
---|---|---|
aber jetzt passiert immernoch das selbe, die Drehachsen werden mit gedreht...
ich drehe jetzt die Kugel, ein Pivot steht für Kollision und Bewegung, aber es funktioniert immernoch nicht... |
||
Portfolio |LinkedIn |XING |
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann nimm doch einfach RotateEntity mit absoluten Winkelangaben, dann hast du auch kein Problem mehr mit den Drehachsen. | ||
![]() |
AnniXa |
![]() Antworten mit Zitat ![]() |
---|---|---|
am besten ist es wenn du wirklich ein pivot erstellst.
die kugel immer an die position des pivot setzt. die kugel selbst dreht sich wenn sie bewegt wird um die Z achse, und steuern tust du nun den pivot mit drehung um die Y achse. |
||
|moonForge|
Ich bin Pokémon Meisterin seit 1998! |
![]() |
juse4pro |
![]() Antworten mit Zitat ![]() |
---|---|---|
oh, ich glaube ihr habt mich falsch verstanden, mein spiel ist so aufgebaut:
Code: [AUSKLAPPEN] ;Update Player If PlayerHealth>0 If KeyDown(29) PositionEntity CameraPivot,EntityX(Player,1),EntityY(Player,1)+24,EntityZ(Player,1)-4 Else PositionEntity CameraPivot,EntityX(Player,1),Abs(EntityY(Player,1))+6,EntityZ(Player,1)-12 If KeyDown(200) PlayerZSpeed#=PlayerZSpeed#+0.02 ElseIf KeyDown(208) PlayerZSpeed#=PlayerZSpeed#-0.02 EndIf If KeyDown(203) PlayerXSpeed#=PlayerXSpeed#-0.02 ElseIf KeyDown(205) PlayerXSpeed#=PlayerXSpeed#+0.02 EndIf EndIf EndIf dcx#=PlayerLastX-PlayerXNow dcz#=PlayerLastZ-PlayerZNow dcy#=PlayerLastY-PlayerYNow TranslateEntity PlayerPivot,PlayerXSpeed#,PlayerYSpeed#,PlayerZSpeed# TurnEntity PlayerPivot,-dcz*RollSpeed,0,dcx*RollSpeed If EntityY(PlayerPivot,1)<.1 And PlayerHealth>0 Splash(EntityX(Player,1),EntityZ(Player,1)) PlayerHealth=0 EndIf If KeyHit(28) PositionEntity PlayerPivot,0,40,0 ResetEntity PlayerPivot PlayerHealth=100 EndIf PlayerZSpeed#=PlayerZSpeed#*0.93 PlayerXSpeed#=PlayerXSpeed#*0.93 If PlayerYSpeed#>-6 PlayerYSpeed#=PlayerYSpeed#-Gravity# EndIf If EntityCollided(PlayerPivot,2) PlayerYSpeed#=0 TranslateEntity PlayerPivot,0,-.3,0 EndIf das heißt, ich drehe die kugel nichtauf Y, niemals ![]() |
||
Portfolio |LinkedIn |XING |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Weil ich dein Problem kurz nachvollziehen wollte, hab ich mir grad selber was geschrieben. Und die Lösung des Problems ist eigentlich simpel:
RotateMesh ![]() Hier noch der Code, mit dem ich gearbeitet habe: Code: [AUSKLAPPEN] Graphics3D 800,600,0,2
Global TIMER = CreateTimer(60) SetBuffer BackBuffer() Type TPlayer Field x#, y#, z# Field xSpeed#, zSpeed# Field xRoll#, zRoll# Field Pivot Field Mesh End Type Local Texture = RandomTexture() Local Player.TPlayer = New TPlayer Player\Pivot = CreatePivot() Player\Mesh = CreateSphere( 8, Player\Pivot ) EntityTexture Player\Mesh, Texture EntityColor Player\Mesh, 255,128,128 Player\y = 1 Local Ground = CreatePlane() EntityTexture Ground, Texture EntityColor Ground, 96,204,96 Local Cam = CreateCamera() PositionEntity Cam, 0,20,0 AlignToVector Cam, 0,-1,0, 0 CameraZoom Cam, 2 Local Light = CreateLight() AlignToVector Light, 2,-3,-5, 0 While Not KeyDown(1) Cls ; Kugel steuern (Pfeiltasten) Player\zSpeed = Player\zSpeed +0.002 *( KeyDown(200) -KeyDown(208) ) Player\xSpeed = Player\xSpeed +0.002 *( KeyDown(205) -KeyDown(203) ) ; Position berechnen Player\x = Player\x +Player\xSpeed Player\z = Player\z +Player\zSpeed While Not (Player\x>-8 And Player\x<=8) If Player\x>8 Player\x=Player\x-16 If Player\x<-8 Player\x=Player\x+16 Wend While Not (Player\z>-6 And Player\z<=6) If Player\z>6 Player\z=Player\z-12 If Player\z<-6 Player\z=Player\z+12 Wend ; Positionieren PositionEntity Player\Pivot, Player\x, Player\y, Player\z ; Mesh drehen Player\xRoll = Player\xSpeed *55 Player\zRoll = Player\zSpeed *55 RotateMesh Player\Mesh, Player\zRoll, 0, -Player\xRoll RenderWorld() Flip 0 WaitTimer( TIMER ) Wend End Function RandomTexture() Local Buffer = GraphicsBuffer() Local Texture = CreateTexture( 64,64 ) SetBuffer TextureBuffer( Texture ) Local x, y For y = 0 To 63 For x = 0 To 63 WritePixel x,y, Rand(4,12) *$00111111 Next Next SetBuffer Buffer Return Texture End Function uU wärs auch möglich, mit AlignToVector ![]() mfG |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
juse4pro |
![]() Antworten mit Zitat ![]() |
---|---|---|
jo, danke, funktioniert jetzt richtig gut ![]() das war auch nur das ws ich wollte, naja, wieder um einen befehl reicher ![]() |
||
Portfolio |LinkedIn |XING |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group