GTA Steuerung / Map Scrolling (oder so?)
Übersicht

ChrisKringelBetreff: GTA Steuerung / Map Scrolling (oder so?) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi
also da ich mich nun ein wenig in Blitz max Eingearbeitet habe, versuche ich mich nun am OOP. Also versuche ich mal ein Auto mit den Pfeiltasten rauf und runterfahren zu lassen. So jetzt solls aber ned nur rauf und runter sondern auch Links- und Rechts- kurven machen können. Jetzt sieht das mit der Sinus/Cosinus Methode ein wenig komisch aus. Den Quelltext und dei Datein gibt es hier webspace200.we.funpic.de/Forum_Sachen/ Meine Zweite Frage: wenn ich die Steuerung nun klappt soll man ja auch irgendwo rumfahren können. auf 1024 x 768 Pixeln is dafür ein bisschen zu wenig Platz. Wenn man sich mal so ein 2D Rollenspiel anschaut fährt man da ja mit einem Sichtfeld über eine viel größere Map. Gibts dafür ein Tutorial wie man das macht? MfG Chris €dit: So noch eine Frage: Wie macht man einen Ladebalken? Falls eine große Datei geladen wird und das Programm nix macht, damit der Benutzer ned denkt, dass es sich aufgehängt hat? |
||
![]() |
Rone |
![]() Antworten mit Zitat ![]() |
---|---|---|
moin,
zum Thema OO in BlitzMax, gibt es hier im Forum tutorials. Einfach mal in der Tutorial Sektion von BlitzMax gucken:https://www.blitzforum.de/forum/viewforum.php?f=40 Zitat: Jetzt sieht das mit der Sinus/Cosinus Methode ein wenig komisch aus. Den Quelltext und dei Datein gibt es hier
Kann kein Sin oder Cos in deinem Source finden. Aber generell geht das so: Code: [AUSKLAPPEN] XPos :+ ( Speed*Sin(Winkel) )
YPos :- ( Speed*Cos(Winkel) ) Demnach könnte die Player Klasse folgendermaßen aussehen: Code: [AUSKLAPPEN] Type TPlayer
Field XPos:Float Field Ypos:Float Field rotation:Float Method Create:TPlayer() Return Self End Method Method Deatroy() 'Speicher freigeben End Method Method Move() If KeyHit (KEY_UP) Speed :+1 ElseIf KeyHit (KEY_DOWN) Speed :-1 EndIf If KeyDown (KEY_RIGHT) Rotation :+1 ElseIf KeyDown (KEY_LEFT) Rotation :-1 EndIf If Speed > 10 Then Speed = 10 ElseIf Spped < -10 Then Speed = -10 EndIf XPos :+ ( Speed*Sin(Rotation) ) YPos :- ( Speed*Cos(Rotation) ) End Method Method Render() End Method End Type Zum Thema Scrolling gibt es glaube ich genug im Forum. Einfach mal die Suche benutzen. Das mit dem Ladebalken kannst du erstmal knicken, da BlitzMax kein MultiThreading unterstützt. Ein einfacher "Loading" -Text reicht ja erstmal... mfg Rone |
||
![]() |
Horst der Biber |
![]() Antworten mit Zitat ![]() |
---|---|---|
da hast nen ladebalken
Code: [AUSKLAPPEN] SuperStrict
Framework BRL.Max2D Import BRL.GLMax2D Import BRL.Retro Type TLadebalken Field realpos:Float,realwidth:Float Method sync(rpos:Float) realpos=rpos If realpos>realwidth Then realpos=realwidth If realpos<0 Then realpos=0 End Method Method draw() Local pos:Float,width:Float width=GraphicsWidth()-16 pos=realpos*(width/realwidth) SetColor 255,255,255 DrawRect 2,GraphicsHeight()*0.5-24+2,width+12,48-4 SetColor 0,0,0 DrawRect 5,GraphicsHeight()*0.5-24+5,width+6,48-10 SetColor 255,255,255 DrawRect 8,GraphicsHeight()*0.5-24+8,pos,48-16 End Method Function create:TLadebalken(realwidth:Float) Local created:TLadebalken=New TLadebalken created.realwidth=realwidth Return created End Function End Type Type TLevel Field tilemap:Int[1,1] Field loading:Byte,stream:TStream Field ladebalken:TLadebalken,progress:Int Method load(url:String) loading=True ladebalken=TLadebalken.create(FileSize(url)) progress=0 stream=OpenFile(url) End Method Method update() If loading Then Print ReadByte(stream) progress:+1 ladebalken.sync(progress) If Eof(stream) Then CloseFile(stream) ladebalken=null loading=False EndIf EndIf End Method Method draw() If loading Then ladebalken.draw() End Method End Type SetGraphicsDriver GLMax2DDriver() Graphics 640,480,0,60 Local level:TLevel=New TLevel level.load("ladebalken.bmx") Repeat level.update() Cls level.draw() Flip 0 Until AppTerminate() End |
||
ChrisKringel |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Rone hat Folgendes geschrieben: Zitat: Jetzt sieht das mit der Sinus/Cosinus Methode ein wenig komisch aus. Den Quelltext und dei Datein gibt es hier
Kann kein Sin oder Cos in deinem Source finden. Aber generell geht das so: Code: [AUSKLAPPEN] XPos :+ ( Speed*Sin(Winkel) )
YPos :- ( Speed*Cos(Winkel) ) ^^ upps da hab ich wohl den falschen sourcecode hochgeladen. ![]() MfG Chris € zu dem Map zeugs hab ich noch kein Chris geeignetes gefunden ![]() |
||
Ticha |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ladebalken is ja auch nich ganz so grosses Tennis ![]() ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group