cs2d Steuerung - Figur verhält sich seltsam

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Bei_den_Hohlbeins

Betreff: cs2d Steuerung - Figur verhält sich seltsam

BeitragDo, Aug 03, 2006 21:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leutz,
ich bin dabei eine cs2d Steuerung zu proggen.
Ich habs schon hingekriegt ein Bild mit der Maus zu drehen und mit den Pfeiltasten zu steuern (in 4 Richtungen). Mein Problem ist jedoch, das sich die Figur leider nicht immer richtig drehen lässt oder sich dreht, wenn sie sich gar nicht drehen soll. Letzteres geschieht immer dann, wenn ich das Bild, während sich der Cursor sich zwischen Rand und Bild befindet, auf den Rand zubewege. Am besten schaut ihr euch es selber an:

Mein Code

Code: [AUSKLAPPEN]
Graphics 1024,768,16,2
SetBuffer BackBuffer()
HidePointer
Cls
TFormFilter 1

crusor = LoadImage("crusor.bmp")
bground = LoadImage("unbenannt.bmp")
sp = LoadImage("stehend12.bmp")

MaskImage sp,255,0,0
MaskImage crusor,255,0,0
MidHandle crusor



;---------Variablen----------
richtung=1
x=512
y=384
mx=0              ;Variablen die die Maus beeinflussen sollen
my=0

;-----------Kuruno´s Drehung wird erstellt--------
Dim char(359)
For i = 0 To 359
char(i)=CopyImage(sp)
MidHandle char(i)
RotateImage char(i),i
MaskImage char(i),255,0,0
Next

SetBuffer BackBuffer()

;----------Hauptschleife----------------
Repeat

;-----------STEUERUNG-----------

;---------------Rechts-----------
If KeyDown(205) Then
richtung = 1
x=x+10
mx=mx+10
EndIf
;-------------Links--------------
If KeyDown(203) Then
richtung=1
x=x-10
mx=mx-10
EndIf

;-------------Oben-------------------
If KeyDown(200) Then
richtung=1
y=y-10
my=my-10
EndIf

;-------------Unten---------------
If KeyDown(208) Then
richtung=1
y=y+10
my=my+10
EndIf

DrawImage bground,0,60

DrawImage char((ATan2(MouseY()-y,MouseX()-x)+359)Mod 359),x,y
DrawImage crusor,MouseX()+mx,MouseY()+my
Flip
Cls
Until KeyHit(1)
End



Ich weiß, der Code ist nicht schön, trotzdem bitte keine Rolling Eyes s k? Die Variable richtung wird zwar z.Z. nicht benötigt, doch für die Animation ist sie wichtig. [/code]

Goodjee

BeitragFr, Aug 04, 2006 15:51
Antworten mit Zitat
Benutzer-Profile anzeigen
warum packst du zu mousex() noch mx dazu???
ich glaube, dein problem ist, das der cursor in wirklihkeit an einer anderen position ist, als du ihn malst...
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/
 

Bei_den_Hohlbeins

BeitragFr, Aug 04, 2006 19:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Goodjee hat Folgendes geschrieben:
warum packst du zu mousex() noch mx dazu???
ich glaube, dein problem ist, das der cursor in wirklihkeit an einer anderen position ist, als du ihn malst...


Zu deiner Frage: Es ist komfortabler für den Spieler, wenn die Maus beim Bewegen der Spielfigur automatisch folgt.

Danke Goodjee, du hast mich auf die richtige Fährte gebracht.
1. Selbst mit Hidepointer: Die Figur folgt der Maus, nicht dem Bild
2.Der Grund wegen dem Drehen am Rand: Die Maus kann den Bildschirm nicht verlassen, das Bild aber schon, das Bild dreht sich automatisch zur Maus hin.

Folgende Lösungsmöglichkeiten habe ich:

1.das Bild soll nun nur noch dem Bild des Cursors folgen, nicht der Maus selbst.
2.Bei der Maus kann man Koordinaten manipulieren (automatisch).

Ich würde lieber die 2. machen.
*malebeninderOHnachschau*
Yeahihahahaha, Blitz kann wirklich alles. mit ql:MoveMouse müsste es klappen. Ok, habs jetzt gelöst.
 

Bei_den_Hohlbeins

Betreff: Laden

BeitragMi, Aug 09, 2006 19:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab noch ne Frage: Warum ist cs2d so schnell mit dem Laden und bei mir dauerts so lange (rotateimage is Schuld). Muss ich rotateimage verwenden?

Thorsten

BeitragMi, Aug 09, 2006 20:10
Antworten mit Zitat
Benutzer-Profile anzeigen
du könntest auch auf einer 3d welt aufbauen und dann sprites benutzen

cya,
BlindGuy
 

Bei_den_Hohlbeins

BeitragMi, Aug 09, 2006 21:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber doch nicht mir blitz 2d oder?

Goodjee

BeitragMi, Aug 09, 2006 21:53
Antworten mit Zitat
Benutzer-Profile anzeigen
natürlich nicht...aber cs2d benutzt ja auch b3d
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/
 

Bei_den_Hohlbeins

BeitragDo, Aug 10, 2006 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Goodjee hat Folgendes geschrieben:
natürlich nicht...aber cs2d benutzt ja auch b3d


Da hast du Recht. Naja, mir wurde jetzt ein kleines Programm erstellt, mit dem ich Bilder, die ich mit Rotateimage drehe, speichern kann. So hab ich dann in 35s, 360 Bilder gespeichert, welche wesentlich schneller wieder hochgeladen werden können, da sie kein Rotateimage benötigen.

Lunatix

BeitragDo, Aug 10, 2006 19:27
Antworten mit Zitat
Benutzer-Profile anzeigen
360bilder????

360 mal (sagen wir mal 16KB) 16KB = 5760KB = 5,7mb
mach mal 8spielfiguren wie bei CS, dann haste 45mb!

Dann lieber berechnen und in 2er steps (180 bilder also, fällt nicht auf)
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...
 

Bei_den_Hohlbeins

BeitragFr, Aug 11, 2006 15:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich will es halt mit b2d probieren und hab keine Ahnung wie ich es sonst machen soll. Mit 180 Bildern funktioniert Code: [AUSKLAPPEN]
DrawImage bild((ATan2(MouseY()-240,MouseX()-320)+359)Mod 359),320,240
aber icht mehr. Und ich sag mal 45 MB auf 1024 MB Arbeitsspeicher ist doch nicht viel oder? Außerdem macht es keinen Unterschied ob ich die erst speichere und dann hochlade oder im Programm noch herstelle. Es bleibt bei 45 MB. Nur ist das 1. schneller.

Goodjee

BeitragFr, Aug 11, 2006 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
DrawImage bild((ATan2(MouseY()-240,MouseX()-320)+359)Mod 359)/2,320,240
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/
 

Bei_den_Hohlbeins

BeitragFr, Aug 11, 2006 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Goodjee, ich komm halt nicht auf solche Lösungen, da ich noch ein n00b bin (dies ist mein 1. Grafikprojekt) und denn Code (also das Atan-Gedöns da) nicht wirklich verstehe.

DerHase

BeitragFr, Aug 11, 2006 18:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke 32 bis 64 Bilder reichen auch aus.

Goodjee

BeitragSa, Aug 12, 2006 11:40
Antworten mit Zitat
Benutzer-Profile anzeigen
ich nehme immer 72, sprich geteilt durch 5
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group