o.k.
als ich gehe lieber näher auf 2 ein weil in 1 mehr zeug nicht funzt.
ich habe die 27 kleinen cubes in WED zu einem rubik's cube zusammengefügt [img]E:\Speicherdaten\cube\Grafik1.tga[/img]
[img]E:\Speicherdaten\cube\Grafik2.tga[/img]
(wenn die images net geklappt haben tut's mir leid ...
ich benutze sonst keine Foren)
die center von den Cubes sind :
ebene1,cube1 = X 256,00; Y-256,00; Z 256,00
ebene1,cube2 = X 256,00; Y 0,00; Z 256,00
ebene1,cube3 = X 256,00; Y 256,00; Z 256,00
ebene1,cube4 = X 0,00; Y-256,00; Z 256,00
ebene1,cube5 = X 0,00; Y 0,00; Z 256,00
ebene1,cube6 = X 0,00; Y 256,00; Z 256,00
ebene1,cube7 = X-256,00; Y-256,00; Z 256,00
ebene1,cube8 = X-256,00; Y 0,00; Z 256,00
ebene1,cube9 = X-256,00; Y 256,00; Z 256,00
ebene2,cube1 = X 256,00; Y-256,00; Z 0,00
ebene2,cube2 = X 256,00; Y 0,00; Z 0,00
ebene2,cube3 = X 256,00; Y 256,00; Z 0,00
ebene2,cube4 = X 0,00; Y-256,00; Z 0,00
ebene2,cube5 = X 0,00; Y 0,00; Z 0,00 (center-cube)
ebene2,cube6 = X 0,00; Y 256,00; Z 0,00
ebene2,cube7 = X-256,00; Y-256,00; Z 0,00
ebene2,cube8 = X-256,00; Y 0,00; Z 0,00
ebene2,cube9 = X-256,00; Y 256,00; Z 0,00
ebene3,cube1 = X 256,00; Y-256,00; Z-256,00
ebene3,cube2 = X 256,00; Y 0,00; Z-256,00
ebene3,cube3 = X 256,00; Y 256,00; Z-256,00
ebene3,cube4 = X 0,00; Y-256,00; Z-256,00
ebene3,cube5 = X 0,00; Y 0,00; Z-256,00
ebene3,cube6 = X 0,00; Y 256,00; Z-256,00
ebene3,cube7 = X-256,00; Y-256,00; Z-256,00
ebene3,cube8 = X-256,00; Y 0,00; Z-256,00
ebene3,cube9 = X-256,00; Y 256,00; Z-256,00
in meinem skript frage ich nun die position für die kleinen cubes ab:
while(1)
{
if(my.z>128 && key_pressed(72))
{
if(key8==0)
{
if(key_a)
{
my.pan-=90;
}
if(key_d)
{
my.pan+=90;
}
}
}
if(my.z<-128 && key_pressed(80))
{
if(key2==0)
{
if(key_a)
{
my.pan-=90;
}
if(key_d)
{
my.pan+=90;
}
}
}
if(my.x>128 && key_pressed(77))
{
if(key6==0)
{
if(key_a)
{
my.tilt+=90;
}
if(key_d)
{
my.tilt-=90;
}
}
}
if(my.x<-128 && key_pressed(75))
{
if(key4==0)
{
if(key_a)
{
my.tilt-=90;
}
if(key_d)
{
my.tilt+=90;
}
}
}
if(my.y>128 && key_pressed(76))
{
if(key5==0)
{
if(key_a)
{
my.roll+=90;
}
if(key_d)
{
my.roll-=90;
}
}
}
if(my.y<-128 && key_pressed(82))
{
if(key0==0)
{
if(key_a)
{
my.roll-=90;
}
if(key_d)
{
my.roll+=90;
}
}
}
wait(1);
}
das steht so in jedem würfel-code (27 actions)
die if(key0==0) - Abfrage ist dafür da das die taste nicht automatisch wiederhohlt gedrückt wird
(kann man aber auch irgendwo abschalten glaub ich)
die key_pressed(xx) abfrage ist zum anwählen der ebenen (front,back,up,down,left,right)
und key_a und key_d sind für die drehung der angewählten
ebene gegen und mit dem uhrzeigersinn
so... mein problem ist jetzt dass ich es nicht schaffe die würfel bei, zum beispiel ebene up & und drehung mit dem uhrzeigersinn die gesamte ebene als ebene zu drehen...
es drehen sich immer nur die kleinen cubes um ihre eigenen achsen (hier x-achsen der cubes)
daraus folgt dann dass die einzel-cubes ihre inneren ebenen nach aussen zeigen lassen
(und das ist ech doof!)
also ich brauch eine funktion die automatisch den drehpunkt der entity in das zentrum des würfels setzt(wie es bei 1. der fall ist)
mfg LPF
ps: meiner meinung nach ist der code viel zu lang und unübersichtlich... kann man da drann noch was ändern?