Himmel von links nach rechts fliegen lassen

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

Bassmaster

Betreff: Himmel von links nach rechts fliegen lassen

BeitragSa, Jan 12, 2008 23:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ich hab ein Problem und zwar fliegt der himmel von links nach rechts und nicht von rechts nach links deshalb sieht es nicht realistisch aus wenn meine Figur durch den Weltraum rennt.

Hier ist mal ein Screen von meinem Programm: http://img-up.net/?up=sterneMyWIuZ.JPG

Code: [AUSKLAPPEN]

.begin

Graphics 640, 480

SetBuffer BackBuffer()

; Bilder laden.
Global stars = LoadImage("stars.png") ; Sterne
Global runner = LoadAnimImage ("runner.png", 48, 56, 0, 12) ;figur
Global frame


;figur bewegen
For frame = 0 To 11 Step 1
Cls
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


;sterne bewegen 

   x_star = x_star + 3
   If x_star = 201 Then x_star = 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Zeichnen
TileImage stars, x_star, 1
DrawImage runner, 0, 425, frame


Flip
  Delay 50
Next

Gosub begin

Xeres

Moderator

BeitragSa, Jan 12, 2008 23:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Du brauchst offenbar noch wesentliche Grundlagen...
Kleiner Tipp: wenn Code: [AUSKLAPPEN]
x_star = x_star + 3
den Hintergrund von links nach rechts verschiebt, was müsste man ändern um das umzukehren?
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

BigMaexle

BeitragSa, Jan 12, 2008 23:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
 x_star=x_star + 3


Du hast deinen eigenen Code nicht verstanden Confused
Wenn du verstanden hast wofür diese Zeile Code steht, müsstest du auch erkennen wie man dein Problem lösen kann

EDIT: Ich werde alt und langsam
--------------------------------------
Ich bin unfreiwillig ein Mitglied dieser kapitalistischen Gesellschaft, wo jeder Geldgeile Unternehmer an mein Geld will und ich selbst bei meinen Entscheidungen so gut wie willenlos bin...... und ich bin glücklich drüber
 

Bassmaster

BeitragSo, Jan 13, 2008 1:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab echt kp Embarassed

The_Nici

BeitragSo, Jan 13, 2008 2:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann lass programmieren sein und geh wieder in die erste Klasse.
Was ist das gegenteil von + ?

Eingeproggt

BeitragSo, Jan 13, 2008 2:15
Antworten mit Zitat
Benutzer-Profile anzeigen
ähm.. sry... Ich glaub, die Richtung in die die Sterne fliegen ist echt dein geringstes Problem. Auch wenn das jetzt vlt etwas zuviel für dich ist, aber schau dir bitte Schleifenkonstrukte wie ql:Repeat und ql:While an.

Wenn du daraus eine Schleife zustande gebracht hast, setze Graphics und die Load-Befehle davor. So wie du das machst, glaub ich nicht an sehr hohen Spielspass. Das Graphikfenster wird etwa alle halben Sekunden neu erstellt... Denke dir mal ein Spiel, was alle halben Sekunden "abstürzt" und sich neu aufbaut.

gn8, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
 

Bassmaster

BeitragSo, Jan 13, 2008 3:38
Antworten mit Zitat
Benutzer-Profile anzeigen
ok thx jetzt hab ich´s aber dein dummes Kommentar The_Nici das hättest du dir auch sparen können du kannst sich auch nicht alles und siehst auch nichts alles n/c Ich glaub du solltest er in die erste Klassen gehen bei deinem Verhalten das nur so neben bei ich will jetzt kein flame war anfang ich hab nähmlich kb auf so kiddy sachen.

Hier ist mein neuer Source Code:

Code: [AUSKLAPPEN]

Graphics 640, 480

SetBuffer BackBuffer()

; Bilder laden.
Global stars = LoadImage("stars.png") ; Sterne
Global runner = LoadAnimImage ("runner.png", 48, 56, 0, 12) ;figur
Global frame


While Not KeyHit(1)

;figur bewegen
For frame = 0 To 11 Step 1
Cls
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


;sterne bewegen 

   x_star = x_star - 3   ;mit + und - kann man bestimmen ob das bild von rechts oder links kommen soll
   If x_star = 201 Then x_star = 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Zeichnen
TileImage stars, x_star, 1
DrawImage runner, 0, 425, frame


Flip
  Delay 50
Next

Wend   

The_Nici

BeitragSo, Jan 13, 2008 10:25
Antworten mit Zitat
Benutzer-Profile anzeigen
So wie du dich anstellst gleichst mehr du einem kiddy, aber gut. Lassen wir das flamen und seien wir nette Menschen.

TileImage solltest du vor der Schleife aufrufen, soweit ich weiss.
Hinter Graphics solltest du noch den Modus anhängen.

Code: [AUSKLAPPEN]

Graphics Breite,Höhe,Farbtiefe,Vollbild/Fenster/Skalierbar

Da es sonst beim kompilieren etwas anders rauskommen kann. Wink
Mehr dazu unter BlitzBase.

MfG
 

BlackError

BeitragSo, Jan 13, 2008 11:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey zusammen,

An dieser stelle würde ich dir noch den Befehl "maskimage" ans herz legen. dabei gibts du an, welche farbe bei deinem soldatenmännchen transparent sein soll. In deinem Fall das Rot oder was es nochmal ist. Sieht so ja ein wenig doof aus Smile

Und ein Boden wäre net schlecht.

Was mir jedoch unlogisch erscheint, ist, dass du ein laufendes männchen und ein Himmel, hat, der sich bewegt.
Läuft dein Soldat erst bei einem bestimmten Tastendruck, oder soll er mit dem Hintergrund einfach mitrennen`?

Sonst würde ich es nämlich so machen:


Code: [AUSKLAPPEN]

If KeyDown(203) Then                                                                                   ; Wenn links gedrückt wird
           Soldat nach links bewegen
   If [Position des Soldaten] am linken Rand des Bildschirms Then
      x_star = x_star - 1                                                 ;Sterne nach links bewegen
   End If
End If


If KeyDown(205) Then                                                                                   ;Wenn rechts gedrückt wird
            Soldat nach rechts bewegen
   If [Position des Soldaten] am rechten Rand des Bildschirms Then
      x_star = x_star + 1                                                  ;Sterne nach rechts bewegen
   End If
End If


Eventuell noch die Figur (wenn du nach links läufst) spiegeln (damit sie nach links schaut)

Hoffe das sind nützliche Anregungen für dein "Game"

Falls du mal Fragen hast, kannst mir auch ne pm schreiben.

Gruss BlackError

BladeRunner

Moderator

BeitragSo, Jan 13, 2008 12:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Ihr (The_nici und bassmaster) seid hiermit beide ermahnt - bleibt nett.
Daqs gilt insbesondere für Dich, The_Nici, wir hatten die Diskussion ja schonmal. Auch wenn es ihm an Grundlagen mangelt ist das kein Grund ausfallend zu werden. Wenn es Dir nicht passt: schweige.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Bassmaster

BeitragSo, Jan 13, 2008 14:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja eigentlich soll der laufen aber ich hab bisher nur das Robsite Tutorial gemacht und da steht halt so etwas nicht erklärt.

und mit dem MaskImage da weiss ich halt net welche Zahl für welche Farbe und so steht -.-

Hat vielleicht wer ein Tutorial wo genau steht wie das mit diesme KeyDown und so funktioniert

Der Eisvogel

BeitragSo, Jan 13, 2008 14:58
Antworten mit Zitat
Benutzer-Profile anzeigen
www.blitzbase.de
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.
 

Bassmaster

BeitragSo, Jan 13, 2008 15:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Das bringt mir auch nichts -.-

If KeyDown(203) Then

das weiss ich das dass für die linke taste is aber woher soll ich wissen was für rechts ist -.-

Code: [AUSKLAPPEN]

If KeyDown(203) Then

;und was jetzt hierzwischen soll um die figur zu bewegen weiss icht net -.-

End If


Also die Tutorials bei C++ sind irgendwie verständlicher^^


Solche Sachen stehen hier in einem Tutorial

If KeyDown(links) Then
tile = GetTile (LAYER_Level1_Map1, (Player_pos_x + scroll_x) /32, (Player_pos_y +16 + scroll_y) /32)


da hab ich kp was das heissen soll

Der Eisvogel

BeitragSo, Jan 13, 2008 15:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Entweder du gehst bei www.blitzbase.de auf Tabellen und dann Scancodes oder du nimmst das Programm https://www.blitzforum.de/upload/file.php?id=2555. Wenn du es öffnest musst du die gewünschte Taste drücken und dann wird dir der Scancode der Taste angezeigt.

EDIT: Du musst dein Bild z.B. an "pos_x" zeichnen und dann wenn eine Taste gedrückt wird musst du "pos_x" vergrösern um nach Rechts zugelangen und verkleinern um nach Links zu gelangen.
z.B. so:
Code: [AUSKLAPPEN]
If KeyDown(203) Then pos_x=pos_x-1 ;-->Links
;oder
If KeyDown(205) Then pos_x=pos_x+1 ;-->Rechts
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.
  • Zuletzt bearbeitet von Der Eisvogel am So, Jan 13, 2008 15:55, insgesamt einmal bearbeitet

Willi die Rübe

BeitragSo, Jan 13, 2008 15:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Marc-Peter schrieb schon den Link www.blitzbase.de . Da findest du auch eine Übersicht über die Scancodes mit denen man die Taste angibt.

Und nunja, Programmieren basiert immer auf einer logischen Denkweise. Du hast also ein Bild, dass du an einer festen Position malst:

Code: [AUSKLAPPEN]
DrawImage runner, 0, 425, frame


Das Bild mit dem Handle runner wird nun also an der Position 0 der X-Achse und an der Position 425 der Y Achse angegeben. Da du ja sicher auf www.Blitzbase.de die Befehle nachgeschaut hast, weisst du das ja schon Wink

So und du willst durch einen Tastendruck auf den Linkspfeil die Figur nach links bewegen. Und die Position des Bildes wird ja - wie oben geschrieben - durch den 2. und 3. Parameter von Drawimage angegeben. Da du ja weißt, dass die X Achse die horinzontale Achse ist, musst du du wohl den 2. Parameter irgendwie verändern. Die Lösung liegt auf der Hand, oder besser gesagt, in dem 3 Kapitel von Rob's BB Kurs: "Variablen und Felder" Das heißt du brauchst eine Integer(Ganzzahl) Variable, die die X Position beinhaltet. Diese gibst du dann in dem Drawimage Befehl als X Position an und jene Variable veränderst du auch mithilfe der Keydown Befehlen. Klingt doch eigenlitch einfach? Wink

Edit: Ok Marc-Peter war wieder schneller Very Happy
Ich habe keine Lösung, aber ich bewundere das Problem.
Tehadon
Q6600, MSI Neo2-FR, 4GB Ram, nVidia 7800 GTX

At the Farewell Party visit: MySpace | Homepage
 

Bassmaster

BeitragSo, Jan 13, 2008 16:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok das hab ich jetzt verstanden^^

Aber irgendwie klappt das net mit diesen Farbcodes der Farbcode für die Farbe die ich brauche ist so:

660066

Aber man kann da ja nur 3 verschiedene Zahlen eingeben.

Und wie geht das jetzt das mit dem laufen -.-


Code: [AUSKLAPPEN]


Graphics 640, 480 , 32, 0

SetBuffer BackBuffer()


; Bilder laden.

Global stars = LoadImage("stars.png") ; Sterne
Global runner = LoadAnimImage ("runner.png", 48, 56, 0, 12) ;figur
Global frame

MaskImage runner ,6,6,0
   


While Not KeyHit(1)



   ;figur laufen lassen
   For frame = 0 To 11 Step 1
   Cls
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


;sterne bewegen 

   x_star = x_star - 3   ;mit + und - kann man bestimmen ob das bild von rechts oder links kommen soll
   If x_star = 201 Then x_star = 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Zeichnen
TileImage stars, x_star, 1
DrawImage runner, 0, 425, frame


;figur bewegen
If KeyDown(203) Then

; was muss nu hier rein -.-
End If



Flip
  Delay 50
Next



Wend   ;das ist für die While Not KeyHit(1) Schleife

 

ChristianK

BeitragSo, Jan 13, 2008 16:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Dein Farbcode ist Hexdezimal, Blitz braucht die RGB-Werte. In deinem Fall wäre das 102, 0, 102
Damit kannst du die Werte umrechen -> http://www.homepage-total.de/t...erter.php#
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

Der Eisvogel

BeitragSo, Jan 13, 2008 16:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Also:
Code: [AUSKLAPPEN]
Graphics 640, 480 , 32, 0

SetBuffer BackBuffer()


; Bilder laden.

Global stars = LoadImage("stars.png") ; Sterne
Global runner = LoadAnimImage ("runner.png", 48, 56, 0, 12) ;figur
Global frame,player_pos_x

MaskImage runner ,102,0,102

While Not KeyHit(1)
   For frame = 0 To 11
   Delay 50
   Next

   TileImage stars, x_star, 1
   DrawImage runner, player_pos_x, 425, frame

   x_star = x_star - 3
   If x_star = 201 Then x_star = 1

   ;figur bewegen
   If KeyDown(203) Then player_pos_x=player_pos_x-1 ;-->Links
   If KeyDown(205) Then player_pos_x=player_pos_x+1 ;-->Rechts

   Flip
Wend

So, jetzt aber.
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.
 

Bassmaster

BeitragSo, Jan 13, 2008 16:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Jetzt meint der Compiler wieder Image frame out of range Crying or Very sad Crying or Very sad Crying or Very sad Crying or Very sad

egal was ich hier eingebe

DrawImage runner, player_pos_x, 425, frame

ich habs auch schon ohne die 425 ausprobiert aber dann ruckelt der himmel und so.

Der Eisvogel

BeitragSo, Jan 13, 2008 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry ich hatte es nicht ausprobiert, aber des:
Code: [AUSKLAPPEN]
Graphics 640, 480 , 32, 0

SetBuffer BackBuffer()


; Bilder laden.

Global stars = LoadImage("stars.png") ; Sterne
Global runner = LoadAnimImage ("runner.png", 48,56, 0, 12) ;figur
Global frame,player_pos_x,WarteZeit

MaskImage runner ,102,0,102

While Not KeyHit(1)
Cls

TileImage stars, x_star, 1
DrawImage runner, player_pos_x, 300, frame
If MilliSecs()-WarteZeit=>100 Then
frame=frame+1
If frame=12 Then frame=0
WarteZeit=MilliSecs()
EndIf

x_star = x_star - 3
If x_star = 201 Then x_star = 1

;figur bewegen
If KeyDown(203) Then player_pos_x=player_pos_x-1 ;-->Links
If KeyDown(205) Then player_pos_x=player_pos_x+1 ;-->Rechts

Flip
Wend

bei mir funzt des aufjedenfall.
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group