Hallo,
diese Frage erscheint mir zwar einfach zu beantworten, aber ich habe mit Google trotzdem (oder deswegen?) keine Lösung gefunden.
Ich zeichne mittels OpenGL in einen OpenGL-View ein abgerundetes Viereck. Dies funktioniert auch. Nun möchte ich dieses Viereck mit den Pfeiltasten bewegen können (ja, das soll mal ein Spiel werden ). Aber wie bewerkstellige ich das?
Wie gesagt, ich habe weder hier im Forum noch im Internet allgemein einen einfachen Weg gefunden, ein Objekt zu benennen und per Namen auch zu bewegen.
Ich verwende Xcode Version 4.2, mein OSX Target is 10.7. Ich habe außerdem das OpenGL-Framework im Projekt eingebunden.
Der Code zum zeichnen sieht wie folgt aus (auch wenn ich nicht davon ausgehe dass er relevant ist, da er ja funktioniert):
(Die erste Funktion zeichnet den Charakter, ein abgerundetes Viereck; die zweite zeichnet ein simples Level)
diese Frage erscheint mir zwar einfach zu beantworten, aber ich habe mit Google trotzdem (oder deswegen?) keine Lösung gefunden.
Ich zeichne mittels OpenGL in einen OpenGL-View ein abgerundetes Viereck. Dies funktioniert auch. Nun möchte ich dieses Viereck mit den Pfeiltasten bewegen können (ja, das soll mal ein Spiel werden ). Aber wie bewerkstellige ich das?
Wie gesagt, ich habe weder hier im Forum noch im Internet allgemein einen einfachen Weg gefunden, ein Objekt zu benennen und per Namen auch zu bewegen.
Ich verwende Xcode Version 4.2, mein OSX Target is 10.7. Ich habe außerdem das OpenGL-Framework im Projekt eingebunden.
Der Code zum zeichnen sieht wie folgt aus (auch wenn ich nicht davon ausgehe dass er relevant ist, da er ja funktioniert):
Code:
-(void)characterWithPosX:(double)posx PositionY:(double)posy {
glColor3f(figure_red, figure_green, figure_blue);
posy = posy + 0.5;
posx = posx + 0.5;
glBegin(GL_LINE_LOOP);
{
//Top
glVertex2d(posx + -0.3, 0.5 + posy);
glVertex2d(posx + 0.3, 0.5 + posy);
//TopRight
glVertex2d(posx + 0.42, 0.42 + posy);
//Right
glVertex2d(posx + 0.5, 0.3 + posy);
glVertex2d(posx + 0.5, -0.3 + posy);
//BottomRight
glVertex2d(posx + 0.42, -0.42 + posy);
//Bottom
glVertex2d(posx + 0.3, -0.5 + posy);
glVertex2d(posx + -0.3, -0.5 + posy);
//BottomLeft
glVertex2d(posx + -0.42, -0.42 + posy);
//Left
glVertex2d(posx + -0.5, -0.3 + posy);
glVertex2d(posx + -0.5, 0.3 + posy);
//TopLeft
glVertex2d(posx + -0.42, 0.42 + posy);
}
glEnd();
glFlush();
}
-(void)blockAtPosX:(double)posx PosY:(double)posy North:(bool)north East:(bool)east South:(bool)south West:(bool)west {
glColor3f(block_red, block_green, block_blue);
if(north == true) {
glBegin(GL_LINES);
{
glVertex2d(posx, posy + 1);
glVertex2d(posx + 1, posy + 1);
}
}
if(east == true) {
glBegin(GL_LINES);
{
glVertex2d(posx + 1, posy + 1);
glVertex2d(posx + 1, posy);
}
}
if(south == true) {
glBegin(GL_LINES);
{
glVertex2d(posx, posy);
glVertex2d(posx + 1, posy);
}
}
if(west == true) {
glBegin(GL_LINES);
{
glVertex2d(posx, posy + 1);
glVertex2d(posx, posy);
}
}
glEnd();
glFlush();
}
(Die erste Funktion zeichnet den Charakter, ein abgerundetes Viereck; die zweite zeichnet ein simples Level)