![]() |
Re: break it problem
achsoo
dann muss ich mal nochn bissl rumodivizieren hfftl bekomm ichs hin |
Re: break it problem
erstmal: VERGiß das CONST.
du brauchst Variablen, welche veränderbar sein müssen. lege sie in das PRIVATE der Form.
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, sSkinManager, Buttons, sBitBtn, StdCtrls, sButton, jpeg, ExtCtrls, sPanel; type TForm1 = class(TForm) sSkinManager1: TsSkinManager; MainMenu1: TMainMenu; Datei1: TMenuItem; Hilfe1: TMenuItem; NeuesSpiel1: TMenuItem; Beenden1: TMenuItem; Image1: TImage; Startknopf: TsButton; Pauseknopf: TsBitBtn; reflektor: TImage; Shape1: TShape; Timer1: TTimer; procedure PauseknopfClick(Sender: TObject); procedure StartknopfClick(Sender: TObject); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); procedure NeuesSpiel1Click(Sender: TObject); private { Private-Deklarationen } dx, dy: Integer; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.PauseknopfClick(Sender: TObject); begin {Spiel pausieren und button pause unsichtbar --> Start sichtbar} pauseknopf.visible:=false; timer1.enabled:=false; end; procedure TForm1.StartknopfClick(Sender: TObject); begin {macht den pauseknopf sichtbar, setzt spiel fort} timer1.Enabled:=true; pauseknopf.Visible:=True; dx := 5; dy := 5; end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin case ord(key) of vk_left: if reflektor.left > 110 then reflektor.left:=reflektor.left-14; vk_right: if (reflektor.left < 426) then reflektor.left:=reflektor.left+14; end; end; procedure TForm1.Timer1Timer(Sender: TObject); begin if (Shape1.Top <= image1.Top) or (Shape1.Top >= image1.Top + image1.Height - Shape1.Height) then begin dy := -dy; end; if (Shape1.Left <= image1.Left ) or (Shape1.Left >= image1.Left + image1.Width - Shape1.Width) then begin dx := -dx; end; Shape1.Left := Shape1.Left + dx; Shape1.Top := Shape1.Top + dy; end; procedure TForm1.FormCreate(Sender: TObject); begin timer1.Enabled:=false; end; procedure TForm1.NeuesSpiel1Click(Sender: TObject); begin timer1.enabled:=true; end; end. |
Re: break it problem
Zitat:
Ein bißchen mußt auch selbst machen sonst macht es keinen Spass mehr und es bleibt nichts hängen. gruss |
Re: break it problem
habs tauuuusend dank... ich hoffe ich bin euch nicht zusehr auf die nerven gefallen :(
ich melde mich wieder wenn ich noch fragen habe, ist ja noch lange nicht fertig das projekt (wenn ch noch darf ;) ) |
Re: break it problem
kennt ihr das break it spielsystem... meine frage ist gerade... ich habe ja dann oben die steine...
die müssen alle reflektieren und dann unsichtbar werden und nichtmehr reflektieren(nach kollision)... was aber passiert wenn ich alle steine abgeräumt habe und ich will nen neues level? das programm läuft dann ja einmal...ich kann ja nicht wärend der laufzeit neue steine erstellen oder? blöd formuliert, aber wisst ihr wie ich meine? |
Re: break it problem
Zitat:
Zudem würde ich dx/dy nicht als absolute Deltawerte nehmen, sondern als Maxwert. Bei Kollision mit Steinen könnte man diese dann ändern. |
Re: break it problem
stimmt das ist ne gute idee, danke dir :)
i hab auch gerade überlegt die reflektion am schläger müsste ja eigentlich nur wenn beim shape linke obere ecke - höhe (quasi dann linke untere ecke) <= die ebene(linie) als y wert begrenzt durch die horizintale ausdehnung des schlägers sein, oder bin ich falsch? es geht mir nur um den ansatz |
Re: break it problem
Es besteht halt nur die Gefahr, dass der Ball dann durch den Schläger "springt"
|
Re: break it problem
stimmt... hmm... äähm... aber mit "gleich" geht das doch nicht oder ? besteht dann nicht die möglichkeit das es nie zu einer übereinstimmung kommt?
|
Re: break it problem
Eine Gleichheit wird sehr selten zustandekommen, deshalb muss es auf jedenfall <= >= heißen. Da der Schläger aber so dünn ist, könnte es trotzdem geschehen, dass keine Kollision erkannt wird
|
Re: break it problem
du hast evtl noch mein projekt... ist der schläger zu dünn?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz