Person programmieren
Übersicht

Deerio22Betreff: Person programmieren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi Leute,
seit kurzem versuche ich mit BlitzBasic (der ersten normalen 2D-Version" zu programmieren. Leider kann ich jedoch nicht mehr als die Funktion "Print"! ![]() ich erstmal eine bewegbare Figur im Spiel haben: kann von mir aus auch nur ein Punkt oder sowas sein! Bitte helft mir!!!! |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was gibt es am Anfang zu beachten?
Wirf insbesondere einen Blick auf Die BB Hilfe und Tutorials. |
||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
www.robsite.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. |
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sieh dir die Links an, und damit es nicht allzu trocken wird, hier eine kleine Spielerei:
Code: [AUSKLAPPEN] Graphics 800,600
setBuffer BackBuffer() ovx# = 400; ovy# = 300; repeat cls ovx = ovx + (mousex()-ovx)/5 ovy = ovy + (mousey()-ovy)/5 oval ovx, ovy, 5, 5 flip until keyhit(1) Wenn du den Code vom Ablauf her richtig verstanden hast, hast du eigentlich den Anfang schon geschafft ![]() |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
dgxjerry |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du musst auch noch eine Bremse einbauen, damit die CPU-Auslastung nicht auf 100% geht. Dazu musst du am Anfang den Timer erstellen (z.B. wie hier mit 60 FPS) und dann später im Mainloop vor jedem Durchlauf warten, bis der Timer das Signal gibt.
Code: [AUSKLAPPEN] Graphics 800,600,16,2
SetBuffer BackBuffer() frametimer = CreateTimer(60) ovx# = 400 ovy# = 300 repeat WaitTimer(frametimer) Cls ovx = ovx + (mousex()-ovx)/5 ovy = ovy + (mousey()-ovy)/5 oval ovx, ovy, 5, 5 Flip Until KeyHit(1) |
||
I don't suffer from insanity - I enjoy every minute of it!
It's not a bug - It's a feature! |
Anassis |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo Deerio22,
Ich bin selbst noch ein Anfänger, und würde auch gerne endlich mal ein Spiel machen, aber es geht einfach nicht, es happert schon an den kleinsten sachen, deswegen werde ich auchzukünftig noch mit dem buch und den Tutorials von Robsite & Co. arbeiten. Wenn du schreibst du kannst bisher nur den Print befehl, dann nimm dies bitte nicht böse, aber dann gleich sagen ich will endlich ein Spiel programmieren und eine Bewegliche Figur zu machen, da bist du noch nicht soweit. BB ist nunmal einfach kein Gamemaker. Ich habe es nun selbst einmal probiert den Code meiner vorgänger auf Tastatur umzustellen und es klappt sogar: Code: [AUSKLAPPEN] Graphics 800,600,32,2
SetBuffer BackBuffer() Frametimer = CreateTimer(60) rectx = 400 recty = 300 Repeat WaitTimer(Frametimer) Cls If KeyDown(205) Then rectx = rectx +5 If KeyDown(203) Then rectx = rectx -5 If KeyDown(200) Then recty = recty -5 If KeyDown(208) Then recty = recty +5 Rect rectx,recty,20,20,1 Text 0,0, "rectx="+rectx Text 0,12,"recty="+rectY Flip Until KeyHit(1) Oben Links haste nun sogar ein kleinen Text der deine Spielerposition anzeigt. Man könnte das ganze nun noch erweitern damit das der Spieler nicht aus dem Bildschirmrand rausgeht. Gruß Lars |
||
dgxjerry |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Genau. So hab ich auch angefangen. Danach kannst du nach einer schönen Grafik für deinen Spieler suchen und die einbauen. Und dann hast du schon ein Grundgerüst, mit dem du einiges anstellen kannst. | ||
I don't suffer from insanity - I enjoy every minute of it!
It's not a bug - It's a feature! |
Anassis |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So ich will jetzt nicht extra ein Thema aufmachen, deswegen schreib ichs mal hierrein.
Ich habe die Steuerung nun nochmal um eine kleine sache erweitert, unzwar das das Viereck nichtmehr aus dem Bildschirm geht. Da ist mir gleich eine sache aufgefallen, anscheinend ist der Punkt den man Steuert nur ein Pixel von dem ganzen Rect. Weil wenn er bei 800,600 wäre würde er aus dem Bildschirm verschwinden. Daher hab ich es nun vorher stoppen lassen, das es genau am Bildschirmrand stehen bleibt. Ich weis nun schonmal garnicht wie ich das ändern kann, da ich nur Midhandle für ein Bild kenne und selbst dann würde er ja nur den Mittleren Punkt beachten und nicht die Wahre größe des Rect´s. Sicherlich hätte man das aber auch geschickter lösen könne, per Kolliosion oder so, aber das versteh ich noch nicht ganz. Code: [AUSKLAPPEN] Graphics 800,600,32,2
SetBuffer BackBuffer() Frametimer = CreateTimer(60) rectx = 400 recty = 300 Repeat WaitTimer(Frametimer) Cls ;Steuerung If KeyDown(205) Then rectx = rectx +5 If KeyDown(203) Then rectx = rectx -5 If KeyDown(200) Then recty = recty -5 If KeyDown(208) Then recty = recty +5 Rect rectx,recty,20,20,1 ;Bildschirm Stop If rectx >780 Then rectx = 780 If rectx <0 Then rectx = 0 If recty >580 Then recty =580 If recty <0 Then recty = 0 Text 0,0, "rectx="+rectx Text 0,12, "recty="+recty Flip Until KeyHit(1) End Gruß Lars |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
kollisionen zwichen rects kannst du mit rectsoverlap![]() ein "midhandle" für ein rect brauchst du nicht. Du kannst das rect ja einfach um eine halbe seitenlänge nach oben links versetzen ![]() Und wenn wir schonmal be idem Thema sind, kann ich ja auch nebenbei erwähnen, dass man sich angewöhnen sollte, alle werte, mit denen man arbeitet, vorher zu deklarieren und im Programm nur noch die variablen zu verwendne. Das macht kleinere änderungen leichter Code: [AUSKLAPPEN] width = 800 height =600 rectsize = 20 rectx = width/2 recty = height/2 rectspeed = 5 Graphics width, height,32,2 SetBuffer BackBuffer() Frametimer = CreateTimer(60) Repeat WaitTimer(Frametimer) Cls ;Steuerung If KeyDown(205) Then rectx = rectx + rectspeed If KeyDown(203) Then rectx = rectx - rectspeed If KeyDown(200) Then recty = recty - rectspeed If KeyDown(208) Then recty = recty + rectspeed Rect rectx-rectsize/2,recty-rectsize/2,rectsize,rectsize,1 ;Bildschirm Stop If rectx > width-rectsize/2 Then rectx = width-rectsize/2 If rectx < rectsize/2 Then rectx = rectsize/2 If recty > height-rectsize/2 Then recty =height-rectsize/2 If recty < rectsize/2 Then recty = rectsize/2 Text 0,0, "rectx="+rectx Text 0,12, "recty="+recty Flip Until KeyHit(1) End Da 'rectsize/2' recht häufig verwendet wird, könnte man vlt sogar darüber nachdenken, auch diesen wert vorzuberechnen ![]() cu, Smily0412 |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
Anassis |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok das stimmt, so kann man natürlich viel zeit Sparen später bei änderungen.
Vorallem rectspeed, macht es leichter da man dann nicht in allen 4 If zeilen die geschwindigkeit ändern muss. Aber ok, für mich war es mehr oder weniger nur eine kleine Übung, da ich mit meiner Buchaufgabe die ich da hab nicht weiterkomme -.-* Das mit den Werten deklarieren ist natürlich einfach nur Klug ![]() Gruß Lars |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group