AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hippes Spiel für Infomartik GK 11 Problem

Ein Thema von Hauerdom.exe · begonnen am 2. Jan 2017 · letzter Beitrag vom 2. Jan 2017
Antwort Antwort
Hauerdom.exe

Registriert seit: 2. Jan 2017
1 Beiträge
 
#1

Hippes Spiel für Infomartik GK 11 Problem

  Alt 2. Jan 2017, 12:33
Hallo, liebe Community

Wir haben ein Problem bei unserem Spiel, welches wir für den Informatikunterricht programmieren sollen.
Unser Ziel ist es, dass ein Punkt gutgeschrieben wird, wenn eine Figur die andere berührt.

Hier ist unser Programm:
Code:
unit uTrumpAttackRemastered;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, jpeg;

type
  TForm1 = class(TForm)
    ImMauer: TImage;
    LabelTacoAnzahl: TLabel;
    ImMex1: TImage;
    ImMex2: TImage;
    ImMex3: TImage;
    ImMex4: TImage;
    ImMex5: TImage;
    ImMex6: TImage;
    Timer1: TTimer;
    Timer2: TTimer;
    Timer3: TTimer;
    Timer4: TTimer;
    Timer5: TTimer;
    Timer6: TTimer;
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    Image6: TImage;
    ImTrump: TImage;
    Image7: TImage;
    Image8: TImage;
    Image9: TImage;
    Image10: TImage;
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure Timer3Timer(Sender: TObject);
    procedure Timer4Timer(Sender: TObject);
    procedure Timer5Timer(Sender: TObject);
    procedure Timer6Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

const
 Grenze = 1000;

var
  Form1: TForm1;
  Taco : integer;

implementation

{$R *.dfm}


procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin

  if key = 'd' then
   begin
    if ImTrump.Left > Form1.Width
    then
      ImTrump.Left:= -ImTrump.Width
     else
      ImTrump.Left := ImTrump.Left + 105;
   end;

  if key = 'a' then
   begin
  if ImTrump.Left > Form1.Width
    then
     ImTrump.Left:= -ImTrump.Width
    else
    ImTrump.Left := ImTrump.Left - 105;
   end;

end;


procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var Taco, i : integer;
begin
 if key = vk_space then
  begin
    ImMauer.Visible:=true;
    Image6.Visible:=true;
  end;

  if Form1.ImMex1.Top >= Form1.ImTrump.Top then
   begin
    Form1.ImMex1.Top := 0;
    Taco := Taco + 1;
    LabelTacoAnzahl.Caption:= inttostr(Taco);
   end;

    if Form1.ImMex2.Top >= Form1.ImTrump.Top then
   begin
    Form1.ImMex2.Top := 0;
    Taco := Taco + 1;
    LabelTacoAnzahl.Caption:= inttostr(Taco);
   end;

     if Form1.ImMex3.Top >= Form1.ImTrump.Top then
   begin
    Form1.ImMex3.Top := 0;
    Taco := Taco + 1;
    LabelTacoAnzahl.Caption:= inttostr(Taco);
   end;

     if Form1.ImMex4.Top >= Form1.ImTrump.Top then
   begin
    Form1.ImMex4.Top := 0;
    Taco := Taco + 1;
    LabelTacoAnzahl.Caption:= inttostr(Taco);
   end;

     if Form1.ImMex5.Top >= Form1.ImTrump.Top then
   begin
    Form1.ImMex5.Top := 0;
    Taco := Taco + 1;
    LabelTacoAnzahl.Caption:= inttostr(Taco);
   end;

     if Form1.ImMex6.Top >= Form1.ImTrump.Top then
   begin
    Form1.ImMex6.Top := 0;
    Taco := Taco + 1;
    LabelTacoAnzahl.Caption:= inttostr(Taco);
   end;

end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = vk_space then
  begin
   ImMauer.Visible:=false;
   Image6.Visible:=false;
  end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var i: integer;
begin;
  ImMex1.Visible:=true;
  ImMex1.Top := ImMex1.Top + 5;
  if ImMex1.Top > Form1.Height then
     begin
      ImMex1.Top := 0;
     end;
  if (ImTrump.Left > ImMex1.Left) and (ImTrump.Left < ImMex1.Left + ImMex1.Width) then
   for i := 1 to Grenze -1  do
    begin
     Taco:= i+1;
     LabelTacoAnzahl.Caption := inttostr(Taco);
    end;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
  ImMex2.Visible:=true;
  ImMex2.Top := ImMex2.Top + 5;
  if ImMex2.Top > Form1.Height then
     begin
      ImMex2.Top := 0;
     end;
end;

procedure TForm1.Timer3Timer(Sender: TObject);
begin
  ImMex3.Visible:=true;
  ImMex3.Top := ImMex3.Top + 5;
  if ImMex3.Top > Form1.Height then
     begin
      ImMex3.Top := 0;
     end;
end;

procedure TForm1.Timer4Timer(Sender: TObject);
begin
  ImMex4.Visible:=true;
  ImMex4.Top := ImMex4.Top + 5;
  if ImMex4.Top > Form1.Height then
     begin
      ImMex4.Top := 0;
     end;
end;

procedure TForm1.Timer5Timer(Sender: TObject);
begin
  ImMex5.Visible:=true;
  ImMex5.Top := ImMex5.Top + 5;
  if ImMex5.Top > Form1.Height then
     begin
      ImMex5.Top := 0;
     end;
end;

procedure TForm1.Timer6Timer(Sender: TObject);
begin
  ImMex6.Visible:=true;
  ImMex6.Top := ImMex6.Top + 5;
  if ImMex5.Top > Form1.Height then
     begin
      ImMex6.Top := 0;
     end;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
 LabelTacoAnzahl.Caption := inttostr(0);
end;

end.
Hier ein Screenshot:
trumpattack.png

Das Problem: Immer wenn die Figuren auf der Höhe des Hauptcharakters sind, erscheint eine sehr hohe Zahl anstatt einem Punkt. Könntet ihr uns helfen?

Nicht wundern, es ist ein satirisch angehauchtes Projekt

Geändert von Hauerdom.exe ( 2. Jan 2017 um 12:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli
Online

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Hippes Spiel für Infomartik GK 11 Problem

  Alt 2. Jan 2017, 12:50
Hallo Hauerdom,

herzlich willkommen erstmal.

Ein Problem sollte daran liegen, dass Ihr Taco nochmal lokal deklariert habt, also nicht auf die globale Variable zugegriffen wird.

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
   Shift: TShiftState);
 var ->Taco<-, i : integer;
 begin
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#3

AW: Hippes Spiel für Infomartik GK 11 Problem

  Alt 2. Jan 2017, 13:08
Hat zwar nix mit dem Problem zu tun, aber tut Euch selbst den Gefallen und greift nicht innerhalb einer Methode einer Formularklasse auf die globale Form-Variable zu. Spätestens wenn Ihr mal (wieso auch immer) eine 2. Instanz des Formulars benötigt, greift Ihr auf die falsche zu.
Zitat:
if ImTrump.Left > Form1.Width
->
if ImTrump.Left > Width oder auch
if ImTrump.Left > self.Width
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Hippes Spiel für Infomartik GK 11 Problem

  Alt 2. Jan 2017, 14:13
[OT]
.... des Hauptcharakters.....

Nicht wundern, es ist ein satirisch angehauchtes Projekt
Oha, und ich hatte schon vermutet, daß hier wieder einmal Sprachlegastheniker am Werk sind.

Gruß
K-H
[/OT]
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz