360° Sample gesucht

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

scratsch

Betreff: 360° Sample gesucht

BeitragMo, Nov 05, 2007 16:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute,
währe vielleicht jemand hier so nett mir ein kleines Smaple für eine 360° Steuerung + Schuss zu geben?
Ich verzweifele ehrlich gesagt total daran -_-
Kann ganz einfach gehalten sein - so das selbst ich es auch verstehe.
Währe echt nett - Dankeschön!


Mfg.
scratsch

FreakForFreedom

BeitragMo, Nov 05, 2007 17:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Du, ich will dir nichts ausreden oder sonst was, aber wenn du daran verzweifelst, solltest du lieber mit was Kleinerem anfangen. Sonst hast du am Ende zwar den gewünschten Code, wirst aber damit nicht viel anfangen können.
Fang leicht an, lerne das hinzu, was du wissen willst und dann kannst du deine spezifischen Fragen stellen, auf die wir gerne antworten werden.
Wink
Mfg
F.F.F.
"Try and ERROR!"

scratsch

BeitragMo, Nov 05, 2007 17:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein das ist nicht unbedingt das Problem.
Nur das mit der 360° Steuerung habe ich irgendwie im erernen von BlitzMax ausgelassen ^^
Ich hab z.B. schon nen kleines Jump & Run geproggt und ein paar diverse kleine Ball Spiele.
Nur weil ich neu im Board bin bedeutet das nicht das ich keine Erfahrung habe

Währe echt supi wenn mir jemand ma nen Beispiel geben könnte! Wink

Lunatix

BeitragMo, Nov 05, 2007 18:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Auf Blitzbase.de oder der Robsite gabs mal "gta steuerung" oder auch hier im forum. Das ist was du suchst denke ich Smile
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

scratsch

BeitragMo, Nov 05, 2007 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
ich kann mit dem BlitzBasic Syntax leider nicht umgehen, ich habe das hier bewusst in BlitzMax gepostet!? Was soll ich machen?

Blitzcoder

Newsposter

BeitragMo, Nov 05, 2007 18:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab mal was altes Rausgekramt. Es ist noch für BB und lausig gecodet, ist aus meiner Anfangszeit.

Code: [AUSKLAPPEN]
Graphics 800,600,0,2



Global x#=400

Global y#=300

Global winkel#=0

Global speed#=2

Global linie_x2, linie_y2

Global mauswinkel

Global autopilot

Global automaxspeed=10

Global feuerdichte=3

Global feuer_length=25

Global feuer_winkel=20



;Type für den Feuerstrahl-----

Type Tline                   

   Field x, y                 

   Field zeit                 

   Field Length               

   Field winkel               

End Type                     

;-----------------------------



;Zufall und Puffer------

SeedRnd MilliSecs();    |

SetBuffer BackBuffer(); |

;-----------------------



;#########--Hauptschleife--####################################################################################

While Not KeyDown(1)



   ;Tasten abfragen-----------------------

   If KeyDown(203) Then winkel=winkel-4;Drehen

   If KeyDown(205) Then winkel=winkel+4;Drehen

   

   If KeyDown(200) Then speed=speed+0.1;Speed ändern

   If KeyDown(208) Then speed=speed-0.03;Speed ändern

   ;Tasten abfragen-----------------------

   

   ;Winkel korrigieren----------------------

   If winkel>360 Then winkel=winkel-360

   If winkel<0 Then winkel=360+winkel

   ;Winkel korrigieren----------------------

   

   ;Feuerstreifen zeichnen-----

   If KeyDown(200) Then

      gas(x,y,winkel)

   EndIf

   ;Feuerstreifen zeichnen-----

   

   ;Feuerstreifen zeichnen-----------------------------------------

   For tmp.Tline = Each Tline

      Color 200,200,0

      linie tmp\x, tmp\y, tmp\Length, tmp\winkel+90

      Color 200,0,0

      linie linie_x2, linie_y2, tmp\Length, tmp\winkel+90

      tmp\zeit=tmp\zeit+1

      If tmp\zeit=6 Then Delete tmp

   Next

   ;Feuerstreifen zeichnen-----------------------------------------

   

   ;Speed anpassen--------------------

   If speed>0 Then speed=speed-0.03

   If speed<0 Then speed=0

   ;Speed anpassen--------------------

   

   ;Schiff zeichnen------------

   Color 255,255,255

   rechteck x,y,10,30,winkel

   ;Schiff zeichnen------------

   

   ;Schiffspositionen anpassen----

   y=y+Sin(winkel-90)*speed

   x=x+Cos(winkel-90)*speed

   ;Schiffspositionen anpassen----

   

   ;Abprallen an den Wänden----------

   If x<10 Then winkel=360-winkel

   If x>790 Then winkel=360-winkel

   

   If y>590 Then winkel=180-winkel

   If y<10 Then winkel=180-winkel

   ;Abprallen an den Wänden----------

   

   ;Autopilot bei Maustaste----------------------------------------------------------------------

   autopilot=mousedown(1)



   If autopilot=1 Then

      

      ;Speed anpassen----------------

      speed=speed+0.03

      If speed<automaxspeed Then

         speed=speed+0.1

         gas(x,y,winkel)

      EndIf

      ;Speed anpassen----------------

      

      

      mauswinkel=ATan2(MouseX()-x,y-MouseY())+360;Winkel berechnen

      

      ;Winkel korrigieren---------------------------------

      If mauswinkel>360 Then mauswinkel=mauswinkel-360

      If mauswinkel<0 Then mauswinkel=360+mauswinkel

      ;Winkel korrigieren---------------------------------

      

      ;Winkel anpassen---------------------------

      If winkel>mauswinkel Then

         If Abs(winkel-mauswinkel)>180 Then

            winkel=winkel+4

         Else

            winkel=winkel-4

         EndIf

      EndIf

      

      If winkel<mauswinkel Then

         If Abs(winkel-mauswinkel)>180 Then

            winkel=winkel-4

         Else

            winkel=winkel+4

         EndIf

      EndIf

      ;Winkel anpassen---------------------------



   EndIf

   ;Autopilot bei Maustaste----------------------------------------------------------------------

   

   ;---Infos anzeigen

   Text 0,0,"Speed: "+speed

   Text 0,15,"X: "+x

   Text 0,30,"Y: "+y

   Text 0,45,"Winkel: "+winkel

   ;---Infos anzeigen

   

   ;----------------------

   Flip;Puffer vertauschen

   Cls;Bildschirm löschen

   ;-----------------------

Wend

;#########--Hauptschleife--####################################################################################



End;Beenden











;##################################---Funktionen---############################################################

Function Linie(linie_x1,linie_y1,linie_length, linie_winkel=0)

   linie_x2=cos(linie_winkel)*linie_length+linie_x1

   linie_y2=sin(linie_winkel)*linie_length+linie_y1

   Line linie_x1,linie_y1,linie_x2,linie_y2

End Function



Function rechteck(rechteck_x,rechteck_y,rechteck_width,rechteck_height,rechteck_winkel#)

   rechteck_x1=-rechteck_width/2*Cos(rechteck_winkel)-(-rechteck_height/2)*Sin(rechteck_winkel)+rechteck_x

   rechteck_y1=-rechteck_width/2*Sin(rechteck_winkel)+(-rechteck_height/2)*Cos(rechteck_winkel)+rechteck_y



   rechteck_x2=+rechteck_width/2*Cos(rechteck_winkel)-(-rechteck_height/2)*Sin(rechteck_winkel)+rechteck_x

   rechteck_y2=+rechteck_width/2*Sin(rechteck_winkel)+(-rechteck_height/2)*Cos(rechteck_winkel)+rechteck_y



   rechteck_x3=+rechteck_width/2*Cos(rechteck_winkel)-(rechteck_height/2)*Sin(rechteck_winkel)+rechteck_x

   rechteck_y3=+rechteck_width/2*Sin(rechteck_winkel)+(rechteck_height/2)*Cos(rechteck_winkel)+rechteck_y



   rechteck_x4=-rechteck_width/2*Cos(rechteck_winkel)-(rechteck_height/2)*Sin(rechteck_winkel)+rechteck_x

   rechteck_y4=-rechteck_width/2*Sin(rechteck_winkel)+(rechteck_height/2)*Cos(rechteck_winkel)+rechteck_y



   Line rechteck_x1,rechteck_y1,rechteck_x2,rechteck_y2

   Line rechteck_x2,rechteck_y2,rechteck_x3,rechteck_y3

   Line rechteck_x4,rechteck_y4,rechteck_x3,rechteck_y3

   Line rechteck_x4,rechteck_y4,rechteck_x1,rechteck_y1

End Function



Function gas(gas_x,gas_y,gas_winkel)

   For tmp2=1 To feuerdichte

      tmp.Tline = New Tline

      tmp\x=gas_x

      tmp\y=gas_y

      tmp\Length=feuer_length+Rand(-5,5)

      tmp\zeit=0

      tmp\winkel=gas_winkel+Rand(-feuer_winkel,feuer_winkel)

   Next

End Function
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)

skey-z

BeitragMo, Nov 05, 2007 20:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Also es hat nichts mit BB oder BM Syntax zu tun, sondern es ist reine Mathematik und ich glaube nicht, dass Sinus und Cosinus in den beiden Sprachen 2 verschiedene Sachen machen.

Als einfaches Beispiel, ohne irgendwelchen Code zu verwenden:

- mit dem Winkel richtest du den Spieler aus
- auf Tastendruck erstellst du einen Schuss und übergibst diesen den Winkel des Spielers
- mit Sinus und Cosinus bewegst du den Schuss um dessen Geschwindigkeit, bis er kollidiert oder aus dem Bildschirm fliegt
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

Markus2

BeitragMi, Nov 07, 2007 14:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich meine aber ATan2 wäre in BMax nun ganz anders ...
wofür Mark Silby Schläge verdient hat ... Smile

D2006

Administrator

BeitragMi, Nov 07, 2007 17:13
Antworten mit Zitat
Benutzer-Profile anzeigen
http://www.chaos-interactive.de/tuts/winkel.html

Nicht viel Code, und bei dem ist ganz offensichtlich was geändert werden muss. (Draw vor Text, Line und Oval, Keycodes und den Graphicsbefehl anpassen)
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

beanage.johannes

BeitragMo, Nov 26, 2007 20:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]


x = x + speed * cos(rotation)
y = y + speed * sin(rotation)

'das ist erstmal das Laufen



hoffe das klappt Very Happy

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group