2010-02-12 3 views
0

안녕 얘들 아 전합니다 ( // 외계인 alien1, alien2 요법 // 이미지 2 명명 된 기본 폼에 55 개 사진을 통해 루프에 콜리슨 객체 그것을있다 필요 총알)도움말은 다음과 충돌 감지 내 코드는

CODE 내가 소스 코드를 포맷 터보 델파이

procedure TForm1.TimeralienshotTimer(Sender: TObject) 
var 
    ax2 : integer; 
    bx2 : integer; 
    ay2 : integer; 
    by2 : integer; 
    alienX : array[1..55] of integer; 
    alienY : array[1..55] of integer; 
    Index: Integer; 
begin 
    for index := 1 to 55 do 
    alienX[index]:= alien([index]).left <--- the problem is this code here !!!! 
    ax2 := alienX + 21; 
    bx2 := Image2.left + 10; 
    ay2 := AlienY + 25; 
    by2 := Image2.top + 24; 
    if ax2 >= alienX then 
    if alienX <= bx2 then 
     if ay2 >= image2.top then 
     if alienY <= by2 then 
     begin 
      alien[index].Visible := false; 
      Image2.top := 875; 
      Image2.left := 648; 
      Timershotmovment.Enabled := false; 
     end; 
end; 
+0

어떤 언어 ??? – dusoft

+0

코드는 TURBO DELPHI –

+0

입니다. 코드를 실제로 포맷해야합니다. 코드 샘플 버튼을 사용하십시오. 게시물 서식 지정에 대한 자세한 내용은 여기를 참조하십시오. http://stackoverflow.com/editing-help –

답변

-1

입니다.

그것은 숙제처럼 보이는, 그래서 그것을 해결 얻을 수있는 몇 가지 힌트주지 :

  • 을 당신이 시작 ... 끝 부분을 사용하여 내부 및 루프 외부에서 바로 코드를 얻을 수 있는지 확인을 블록 (내면에서 가장 많이했듯이) if ... then).
  • 모든 외계인의 X 또는 Y 좌표를 가져 오는 데 별도의 배열이 필요하지 않습니다. 다만 하드 코딩 리터럴 (21, 10, 25, 24, 875, 648)를 사용하지 않는 외국인 [인덱스] .Left외국인 [색인] .Top
  • 를 사용한다. 그 중 하나를 상수로 만들거나 적절한 장소에서 해당 데이터를 가져옵니다 (아마도 해당 숫자를 정의하는 양식에 뭔가가 있습니다).
+0

나는 그가 배열에 별개의 변수 alien1 ... alien54를 색인하려고한다고 생각합니다. VB 구성 요소 배열은 비슷합니다. –

1
for index := 1 to 55 do 
    alienX[index]:= alien([index]).left <--- the problem is this code here !!!! 

두 가지 :

  1. "문제는이 코드가 여기에있다"- 어떤 문제? 주제 나 질문 자체에 언급하지 않았습니다.

  2. "문제"가 발생하는 곳에서하려는 유형 변환은 작동하지 않을 수 있습니다. 정수 배열 인덱스를 형식 alien으로 유형 변환 할 수 없습니다 (코드에서 아무 것도 존재하지 않습니다. btw - alienX 및 alienY라는 두 개의 정수 배열을 선언했지만 단순히 외계인으로 선언하지 않았습니다.). 당신의 의도가 alienX 배열로 alienY의 콘텐츠를 복사 단순히라면

, 당신이 사용할 수 있습니다

for i := 1 to 55 do 
    alienX[i] := alienY[i]; 

을 또는 더 나은 아직 경우에 배열의 한계는 향후 변경해야 :

for i := Low(alienX) to High(alienX) do 
    alienX[i] := alienY[i]; 

그러나 "왼쪽"속성이있는 항목에 액세스하려고하기 때문에 의도 한 것과 다를 수 있습니다. 그러나 "외계인"이 정확히 무엇인지, 그 내용이 무엇인지 모른 채 더 구체적이지는 않습니다.

미래를위한 제안? "문제"가 있다고 말하면, 사람들에게 "문제"가 정확히 무엇인지를 말하면 도움이됩니다.